对于在 Kafka/Redis 中读取/写入主题的每个服务,我们希望在 Prometheus 中拥有一些基本指标:
要确定从主题读取的“速度”,可以考虑一种机制,某人以 10
秒的间隔发布相同的消息,消费者在完全处理完该消息后将其发送给 Prometheus。如果图表显示每 12 秒读取一次消息,则意味着我们在读取任何消息时有 2 秒的延迟。
对于系统上的每个主题,它看起来像是大量重复的手动工作。
我的提议有意义吗?在普罗米修斯中,是否有关于如何确定 redis/kafka/... 中每个主题的读/写“滞后”/“速度”的最佳实践/工具?
答案 0 :(得分:1)
我曾经遇到过完全相同的问题。
手动维护每个主题的指标非常累人,而且根本无法扩展。
我改用 kafka_exporter 中的 kafka_consumergroup_lag 指标 这与消费者群体一起,主题标签足以让我们知道哪个主题没有被阅读/落后以及哪个消费者群体。
还有其他指标,例如消息读取率。
至于在时间方面转换这种滞后,要么将生产时间附加到 kafka 消息,并在 kafka 管道的另一端读取它,然后通过千分尺将时间差从应用程序导出到 Prometheus。
或者更好:- 使用 OpenTracing 工具(如 Jaeger
)使用跟踪来跟踪Piepline 中的每条消息使用 this 进行 Redis 监控。
所有这些导出器都以 Prometheus 格式发送数据,并且可以直接集成。