监控Doris BE部分重要指标的Prometheus Alert Rule

Apache Doris是一个分布式的MPP分析型数据库,它简单易用,支持MySQL协议,仅需压秒级就可以获取查询结果,有效的支持实时数据分析。Doris目前广泛应用于生产环境,因此对其监控必不可少。本文主要提供了部分通过Prometheus监控Doris的Alert rules供大家参考。

1.up

表明Doris中FE和BE节点的状态,值为1说明是alive状态。

up{group="be",job="pro-doris"}  == 0 
2.doris_be_memory_allocated_bytes

采集自 TcMalloc 的 generic.total_physical_bytes 属性。表示 TcMalloc 占用的虚拟内存的大小,并不代表实际的物理内存占用。

doris_be_memory_allocated_bytes / 1024 / 1024 / 1024 > 80
3.doris_fe_tablet_max_compaction_score

各BE节点汇报的 compaction core。Doris数据写入模型采用了 LSM-Tree 数据结构,数据是以追加(Append)的方式写入磁盘,这种写入方式,可以提高写入的吞吐量。但在读逻辑中,如果采用Merge-on-Read 的方式,那么数据的读取效率就会降低。因此,为了降低读取时数据的合并量,提高读取效率,系统在后台会引入一定的策略定期对数据进行合并操作。在Doris中,这种机制称为Compaction。当前Doris提供了两种Compaction机制,一种是Base Compaction ,另一种是 Cumulative Compaction。这里反映的是集群中每个 BE 节点,所有 Tablet 中数据版本最多的那个 Tablet 的版本数量,可以反映出当前版本堆积情况。 通常版本数量维持在100以内可以视为正常。而在大部分批量导入或低频导入场景下,版本数量通常为10-20甚至更低。

max by(instance, backend, job) (doris_fe_tablet_max_compaction_score) > 80
4.doris_be_add_batch_task_queue_size

Doris开启导入任务后,接收导入batch的线程池队列大小。当队列长度大于1时,说明有导入积压。如果可以容忍有少部分积压任务,可以适当增大预警值。

doris_be_add_batch_task_queue_size{group="be"} > 0
5.doris_be_disks_compaction_num

Doris每个be节点每个挂载数据目录下当前正在执行compaction任务的任务数。

case 1:如果想监控每个目录下的compaction任务数,那么可以通过以下规则监控be01节点下/hdd_data01/doris.HDD 目录下的任务数。

doris_be_disks_compaction_num{group="be" ,instance="be01:8040", path="/hdd_data01/doris.HDD"} > 10 

case2: 如果想监控每个BE节点所有目录下的compaction任务总数,那么可以通过以下规则实现:

sum by(instance) (doris_be_disks_compaction_num{group="be",job="pro-doris"}) > 15
6.doris_be_load_channel_count

该指标是当前BE节点打开导入任务的Channel数。值越大,说明当前正在执行的导入任务越多。

doris_be_load_channel_count{group="be",job="pro-doris"} > 10
7.doris_be_tablet_version_num_distribution

每次开启一个导入任务,都会形成一个version,而一个tablet可能会由多次导入的数据组成,因此一个tablet会有多个版本号。通过这个指标可以比较直观的反应集群中的tablet版本分布情况,从侧面反应集群导入任务的密集度。

doris_be_tablet_version_num_distribution{group="be",job="pro-doris",quantile="0.99"}
8.doris_be_streaming_load_requests_total

该指标是每个BE节点所有streamload导入任务请求总数。从当前Doris官方提供的指标来看,好像并没有一个单独的指标表示当前streamload导入任务数。因此,可以通过每个BE实例的streamload任务变化斜率来反应当前BE节点的任务提交频率。

sum by(instance) (rate(doris_be_streaming_load_requests_total{group="be",job="pro-doris"}[1m])) > 5
说明:

当前监控指标告警值,是目前我们生产环境的一些告警阈值,不同规模的集群或者不同使用场景下,所有指标均会有误差,可以根据实际情况调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值