使用 Strimzi 的 Kubernetes 上的 Kafka:monitoring/exposing 所有 JMX 指标到普罗米修斯
Kafka on Kubernetes using Strimzi : monitoring/exposing all JMX metrics to prometheus
我是 运行 Kubernetes 上的 kafka,使用的是 Strimzi 运算符。为了进行监控,我使用的是 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 的指标在同一文件的配置映射中定义。
我的问题是,如果我希望 Prometheus 从 Kafka 抓取所有 JMX 指标;是否有任何现成的 JMX 配置文件可以传递给 configmap 而不是当前的。 请注意,我对消费者组指标(rebalance-latency-avg、rebalance-rate-per-hour 等)特别感兴趣。
通过JMX/prometheus监控kafka是否会导致Kafka性能下降?
当您将 JMX Exporter 配置文件定义为空时,例如:
kind: ConfigMap
apiVersion: v1
metadata:
name: kafka-metrics
labels:
app: strimzi
data:
kafka-metrics-config.yml: |
lowercaseOutputName: true
它将以 raw 格式导出所有指标。这使您可以看到所有这些。但是,它们看起来与您在 Strimzi 示例中得到的完全不同,因为它们没有翻译它们、提取某些部分作为标签等的规则。
所以在大多数情况下,您会希望将这些添加到规则中 => 您必须定义 pattern 以匹配您感兴趣的指标,定义它应该是什么类型以及它应该如何转化为指标名称和标签。这可以添加到 Strimzi 示例中的现有规则中。
我是 运行 Kubernetes 上的 kafka,使用的是 Strimzi 运算符。为了进行监控,我使用的是 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 的指标在同一文件的配置映射中定义。
我的问题是,如果我希望 Prometheus 从 Kafka 抓取所有 JMX 指标;是否有任何现成的 JMX 配置文件可以传递给 configmap 而不是当前的。 请注意,我对消费者组指标(rebalance-latency-avg、rebalance-rate-per-hour 等)特别感兴趣。
通过JMX/prometheus监控kafka是否会导致Kafka性能下降?
当您将 JMX Exporter 配置文件定义为空时,例如:
kind: ConfigMap
apiVersion: v1
metadata:
name: kafka-metrics
labels:
app: strimzi
data:
kafka-metrics-config.yml: |
lowercaseOutputName: true
它将以 raw 格式导出所有指标。这使您可以看到所有这些。但是,它们看起来与您在 Strimzi 示例中得到的完全不同,因为它们没有翻译它们、提取某些部分作为标签等的规则。
所以在大多数情况下,您会希望将这些添加到规则中 => 您必须定义 pattern 以匹配您感兴趣的指标,定义它应该是什么类型以及它应该如何转化为指标名称和标签。这可以添加到 Strimzi 示例中的现有规则中。