第 16 章 使用 Kafka Exporter
Kafka Exporter 是一个开源项目,用于增强对 Apache Kafka 代理和客户端的监控。
Kafka Exporter 由 AMQ Streams 提供,用于部署使用 Kafka 集群,从 Kafka 代理中提取与偏移、消费者组、消费者滞后和主题相关的额外指标数据。
例如,使用指标数据来帮助识别较慢的用户。
滞后数据作为 Prometheus 指标公开,然后可在 Grafana 中显示进行分析。
如果您已经使用 Prometheus 和 Grafana 监控内置 Kafka 指标,您可以将 Prometheus 配置为提取 Kafka Exporter Prometheus 端点。
Kafka 通过 JMX 公开指标数据,然后导出为 Prometheus 指标。如需更多信息,请参阅使用 JMX 监控集群。
16.1. 消费者滞后 复制链接链接已复制到粘贴板!
消费者滞后表示消息的速度与消息的消耗的差别。具体来说,给定消费者组的消费者滞后表示分区中最后一次消息与该消费者当前获取的消息之间的延迟。lag 反映了与分区日志结尾相关的消费者偏移的位置。
这种差异有时被称为制作者偏移和消费者偏移之间的 delta,Kafka 代理主题分区中的读取和写入位置。
假设一个主题将 100 个消息流一秒钟。制作者偏移(主题分区头)和消费者读取的最后偏移之间的 1000 个消息意味着 10 秒的延迟。
监控消费者滞后的重要性
对于依赖于实时数据的处理的应用程序,监控消费者来判断其是否不会变得太大。整个过程越好,流程从实时处理目标中得到的增长。
例如,消费者滞后可能是消耗太多的旧数据(这些数据尚未被清除)或出现计划外的关闭。
减少消费者滞后
减少滞后操作的典型操作包括:
- 通过添加新消费者扩展消费者组
- 增加消息的保留时间以保留在主题中
- 添加更多磁盘容量以增加消息缓冲
减少消费者滞后的操作取决于底层的基础架构,而 AMQ Streams 支持用例。例如,分发的消费者不太可能从其磁盘缓存中获取请求的服务从代理服务。在某些情况下,可能需要自动丢弃信息,直到消费者发现为止。