Xiaomi Galaxy Talos Book

Talos监控与报警


为了全面了解系统状态以及用户使用情况,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),都有LatencyQPS两种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