【问题标题】:Kafka on Kubernetes using Strimzi : monitoring/exposing all JMX metrics to prometheusKubernetes 上的 Kafka 使用 Strimzi:监控/向 prometheus 公开所有 JMX 指标
【发布时间】:2021-03-07 09:12:09
【问题描述】:

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

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

对于 Kafka 集群部署,我使用了 srimzi 存储库中的以下模板。 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 性能下降?

【问题讨论】:

    标签: kubernetes apache-kafka kafka-consumer-api strimzi


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 假设我想从kafka.apache.org/documentation/#monitoring 中通过适当的关联来抓取某个指标,例如: rebalance-latency-max 组重新平衡所花费的最长时间 kafka.consumer:type=consumer-coordinator-metrics, client-id=([-.\w]+) 我应该在 : data: kafka-metrics-config.yml: | 中添加什么小写输出名称:真
    • 我认为,在 Kafka 文档中,您需要首先找出谁提供了这个指标……快速浏览一下,文档表明 rebalance-latency-max 是一个消费者指标。所以你必须从消费者那里而不是从经纪人那里得到。
    猜你喜欢
    • 1970-01-01
    • 2019-12-13
    • 2019-01-08
    • 2020-06-19
    • 1970-01-01
    • 2022-07-19
    • 2021-02-12
    • 2020-09-13
    • 1970-01-01
    相关资源
    最近更新 更多