问题描述
我正在使用 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 示例中的现有规则中。