第 8 章 为 AMQ Streams 设置指标和仪表板
您可以使用 Prometheus 和 Grafana 监控 AMQ Streams 部署。
您可以通过查看仪表板上的密钥指标并设置在特定条件下触发的警报来监控 AMQ Streams 部署。对于 AMQ Streams 的每个组件,指标数据都可用。
您还可以收集特定于 oauth 身份验证和 opa 或 keycloak 授权的指标。您可以通过在 Kafka 资源的监听程序配置中将 enableMetrics 属性设置为 true。例如,在 spec.kafka.listeners.authentication 和 spec.kafka.authorization 中将 enableMetrics 设置为 true。同样,您可以在 KafkaBridge,KafkaConnect, 和 自定义资源中启用 KafkaMirrorMaker 2oauth 身份验证的指标。
为提供指标数据,AMQ Streams 使用 Prometheus 规则和 Grafana 仪表板。
当为 AMQ Streams 组件配置一组规则时,Prometheus 会消耗集群中运行的 pod 中的关键指标。然后,Grafana 会在仪表板中视觉化这些指标。AMQ Streams 包括 Grafana 仪表板示例,您可以自定义以适合您的部署。
AMQ Streams 为用户定义的项目(一个 OpenShift 功能)使用监控 来简化 Prometheus 设置过程。
根据您的要求,您可以:
使用 Prometheus 和 Grafana 设置,您可以使用 AMQ Streams 提供的示例 Grafana 仪表板进行监控。
另外,您可以通过设置 分布式追踪功能,将部署配置为跟踪消息端到端。
AMQ Streams 为 Prometheus 和 Grafana 提供示例安装文件。您可以在尝试监控 AMQ Streams 时将这些文件用作起点。要获得进一步的支持,请尝试与 Prometheus 和 Grafana 开发人员社区互动。
支持指标和监控工具的文档
如需有关指标和监控工具的更多信息,请参阅支持文档:
- Prometheus
- Prometheus 配置
- Kafka Exporter
- Grafana Labs
- Apache Kafka Monitoring 描述了 Apache Kafka 公开的 JMX 指标
- zookeeper JMX 描述了 Apache ZooKeeper 公开的 JMX 指标
8.1. 使用 Kafka 导出器监控消费者 复制链接链接已复制到粘贴板!
Kafka Exporter 是一个开源项目,用于增强对 Apache Kafka 代理和客户端的监控。您可以配置 Kafka 资源,以使用 Kafka 集群部署 Kafka 导出器。Kafka Exporter 从与偏移、消费者组、消费者群和主题相关的 Kafka 代理中提取额外的指标数据。例如,使用指标数据来帮助识别缓慢的消费者。lag 数据作为 Prometheus 指标公开,然后可在 Grafana 中进行分析。
Kafka Exporter 从 __consumer_offsets 主题中读取,该主题存储了消费者组的提交偏移信息。要使 Kafka 导出器能够正常工作,需要使用使用者组。
Kafka Exporter 的 Grafana 仪表板是 AMQ Streams 提供的很多 Grafana 仪表板 之一。
Kafka Exporter 只提供与消费者 lag 和 consumer offsets 相关的其他指标。对于常规 Kafka 指标,您必须在 Kafka 代理 中配置 Prometheus 指标。
消费者滞后表示消息的速度与消息的消耗的差别。具体来说,给定使用者组的使用者 lag 指示分区中最后一条消息之间的延时,以及当前由该使用者获取的消息之间的延迟。
lag 反映了与分区日志末尾相关的使用者偏移位置。
生产者和消费者偏移量之间
这种区别有时被称为制作者偏移和使用者偏移之间的 delta :在 Kafka 代理主题分区中读取和写入位置。
假设主题流 100 条消息。生产偏移(主题分区头)和最后的偏移量之间是 1000 条消息的 lag 表示 10 秒的延迟。
监控消费者的重要性
对于依赖于实时数据的处理的应用程序,监控消费者来判断其是否不会变得太大。整个过程越好,流程从实时处理目标中得到的增长。
例如,消费者滞后可能是消耗太多的旧数据(这些数据尚未被清除)或出现计划外的关闭。
减少消费 lag
使用 Grafana 图表来分析 lag,并检查是否对受影响的消费者组产生影响。例如,如果对 Kafka 代理进行了调整以减少滞后,仪表板将显示 Lag by consumer group 图表下降,Messages consumed per minute 图表增加。
减少 lag 的典型操作包括:
- 通过添加新消费者扩展消费者
- 为在主题中保留消息的保留时间
- 增加更多磁盘容量以增加消息缓冲区
减少消费者 lag 的操作取决于底层基础架构和 AMQ Streams 的支持。例如,分发的消费者不太可能从其磁盘缓存中获取请求的服务从代理服务。在某些情况下,在消费者发现之前,自动丢弃消息可能可以接受。