监控 pub/sub 项服务

Monitoring pub/sub services

对于 read/write from/to 主题 Kafka/Redis 中的每个服务,我们希望在 Prometheus 中拥有一些基本指标:

  1. 每个主题的写入有多“快”
  2. 每个主题的阅读速度有多“快”
    • 在 Kafka 中,我可能想确定每个组 ID 的读取速度。

要确定从主题读取的“速度”,可以考虑一种机制,其中某人以 10 秒的间隔发布相同的消息,并且消费者在完全处理完该消息后发送给 Prometheus .如果图表显示每 12 秒读取一次消息,则意味着我们在读取 any 条消息时有 2 秒的延迟。

看起来系统上的每个主题都有很多重复的手动工作

问题

我的提议有意义吗? best-practice/tools 是否有关于如何从 redis/kafka/... 中的每个主题确定 reading/writing 的“滞后”/“速度”的任何信息?

我曾经遇到过完全相同的问题。

手动维护每个主题指标非常累人,而且根本无法扩展。

我转而使用 kafka_exporter 中的 kafka_consumergroup_lag 指标 这与消费者组一起,主题标签足以让我们知道哪个主题没有被 read/lagging 落后以及被哪个消费者组落后。

还有其他指标,例如消息的阅读率。

至于根据时间转换这个滞后,要么将生成时间附加到 kafka 消息并在 kafka 管道的另一端读取它,然后通过千分尺将时间差从应用程序导出到 Prometheus。

或者更好的是:- 使用 OpenTracing 工具(例如 Jaeger

)使用跟踪来跟踪管道中的每条消息

使用this进行Redis监控。

所有这些出口商都以普罗米修斯格式发送数据,可以直接集成。