Kafka on Kubernetes 使用 Strimzi:监控/公开所有 JMX 指标给 prometheus

问题描述

我正在使用 Strimzi 运算符在 Kubernetes 上运行 kafka。为了进行监控,我使用 Prometheus,并按照 Strimzi 部署指南中所述的安装指南进行操作。

https://strimzi.io/docs/operators/master/deploying.html

对于 Kafka 集群部署,我使用了来自 strimzi 存储库的以下模板。 https://github.com/strimzi/strimzi-kafka-operator/blob/master/examples/metrics/kafka-metrics.yaml。要向 Prometheus 公开的指标在同一文件的 configmap 中定义。

我的问题是,如果我希望 Prometheus 从 Kafka 中抓取所有 JMX 指标;是否有任何准备好的 JMX 配置文件传递给 configmap 而不是当前的配置文件请注意,我对消费者组指标(rebalance-latency-avg、rebalance-rate-per-hour 等)特别感兴趣。

通过 JMX/prometheus 监控 kafka 是否会导致 Kafka 性能下降?

解决方法

当您将 JMX 导出器配置文件定义为空时,例如:

kind: ConfigMap
apiVersion: v1
metadata:
  name: kafka-metrics
  labels:
    app: strimzi
data:
  kafka-metrics-config.yml: |
    lowercaseOutputName: true

它将以 raw 格式导出所有指标。这使您可以看到所有这些。但是,它们看起来与您在 Strimzi 示例中得到的完全不同,因为它们没有翻译它们的规则,将某些部分提取为标签等。

因此,在大多数情况下,您需要将这些添加到规则中 => 您必须定义 pattern 以匹配您感兴趣的指标,定义它应该是什么类型以及它应该如何翻译进入度量名称和标签。这可以添加到Strimzi 示例中的现有规则中。