7 监控/报警
优质
小牛编辑
126浏览
2023-12-01
为了全面了解系统状态以及用户使用情况,Talos提供了比较完善的Counter系统,Counter系统设计的初衷为了了解以下方面的信息:
系统性能、负载状况;例如latency,qps等
数据存储情况;例如Topic数据量,Partition当前的offset range情况: [start, end]
数据消费情况;例如consumer group消费记录的checkpoint,消费数据堆积情况等
为此,Talos系统提供的Metrics大致分为: 这5种metrics,本节主要介绍用户关心的Topic级别和Consumer级别的信息,用户可以配置相关的报警来监控自己Topic的状态和数据消费情况;
Metrics (蓝色字体为MetricName)
1) Topic/Partition:
- StartOffset: topic/partition的起始offset,由于数据保留过期的原因,这个数值会一直增加
- EndOffset: 同上,是终止offset
- MessageBytes: topic/partition目前的Message总字节数
MessageNumber: topic/partition目前的Message条数
此外,对于所有Operation(API),都有Latency和QPS两种Metrics指标,这些指标对应的MetricName举例如下:
Latency:
API | MetricName Set |
---|---|
putMessage | putMessage.Time.75thPercentile |
-- | putMessage.Time.95thPercentile |
-- | putMessage.Time.98thPercentile |
-- | putMessage.Time.999thPercentile |
getMessage | getMessage.Time.75thPercentile |
-- | getMessage.Time.95thPercentile |
-- | getMessage.Time.98thPercentile |
-- | getMessage.Time.999thPercentile |
注意,所有Percentile的计算取样都是最近5分钟内的数据
QPS:
API | MetricName Set |
---|---|
putMessage | putMessage.60sRate |
-- | putMessage.300sRate |
-- | putMessage.900sRate |
getMessage | getMessage.60sRate |
-- | getMessage.300sRate |
-- | getMessage.900Rate |
其中,QPS MetricName中的60s/300s/900s指的是计算QPS的时间窗口,最近1分钟的QPS,最近5分钟QPS,最近15分钟的数据
2) Consumer
- ConsumerCommitOffset: 某个consumerGroup最近消费并成功commit的offset记录
- ConsumerOffsetLag: 用户commitOffset和该Topic/Partition最新的消息offset之间的差值,用于检测消费时消息堆积情况
Alert
目前报警系统我们正在Web服务化,现支持后台配置,如果用户想要设置上述Metrics的监控报警(邮件/短信),请发邮件到talos-help@xiaomi.com
邮件格式请填写申请表格,如下是一个例子(由于排版原因,把表拆成2个了),如下
Cluster | TopicName | MetricName | Alert-Value |
---|---|---|---|
azbjsrv-talos | testTopic | putMessage.Time.95thPercentile | 100ms |
azbjsrv-talos | testTopic | ConsumerOffsetLag | 10000 |
Email | Phone | ConsumerGroup |
---|---|---|
alert@xiaomi.com | 1877777777 | 无 |
alert@xiaomi.com | 1877777777 | myConsumerGroupName |