jmx_prometheus_javaagent Kafka Connect 的配置?

jmx_prometheus_javaagent configuration for Kafka Connect?

Prometheus jmx_exporter项目在这里给出了Kafka的官方示例配置:

https://github.com/prometheus/jmx_exporter/blob/master/example_configs/kafka-0-8-2.yml

Kafka Connect 是否有类似的配置将 Kafka Connect JMX 指标导出到 Prometheus?

我正在寻找同样的东西并在下面找到了。希望有所帮助:)

https://raw.githubusercontent.com/zenreach/docker-kafka-connect/master/jmx_exporter.yaml

lowercaseOutputName: true
rules:
  - pattern: kafka.connect<type=connect-node-metrics, client-id=(.+), node-id=(.+)><>([a-z-]+)
    name: kafka_connect_node_
    labels:
      clientId: ""
      nodeId: ""
  - pattern: kafka.connect<type=connect-coordinator-metrics, client-id=(.+)><>([a-z-]+)thu
    name: kafka_connect_coordinator_
    labels:
      clientId: ""
  - pattern: kafka.consumer<type=consumer-node-metrics, client-id=(.+), node-id=(.+)><>([a-z-]+)
    name: kafka_connect_consumer_node_
    labels:
      clientId: ""
      nodeId: ""
  - pattern: kafka.consumer<type=consumer-fetch-manager-metrics, client-id=(.+), topic=(.+)><>([a-z-]+)
    name: kafka_connect_consumer_fetch_manager_
    labels:
      clientId: ""
      topic: ""
  - pattern: kafka.producer<type=producer-topic-metrics, client-id=(.+), topic=(.+)><>([a-z-]+)
    name: kafka_connect_producer_topic_
    labels:
      clientId: ""
      topic: ""
  - pattern: kafka.producer<type=producer-node-metrics, client-id=(.+), node-id=(.+)><>([a-z-]+)
    name: kafka_connect_producer_node_
    labels:
      clientId: ""
      nodeId: ""

我目前使用的解决方案是官方的 Confluent Helm Charts 和 Docker 具有内置 Prometheus 指标导出的图像:

https://github.com/confluentinc/cp-helm-charts/tree/master/charts/cp-kafka-connect

作为参考,如果您想要一个非Docker、非 Kubernetes 解决方案,以前 100% 有效的方法如下:

1) 定义这个文件kafka-connect-jmx.yaml。我将此配置文件存储在 /usr/share/ 中,您可以将其放在其他位置,但您需要更改下面的路径引用。

whitelistObjectNames: ["kafka.connect:*"]
lowercaseOutputName: false
lowercaseOutputLabelNames: false

rules:
  - pattern: 'status: running'
    value: 1
  - pattern: 'status: *'
    value: 0
  - pattern: ".*"

2) 下载https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar。我放在/usr/share/里面,你可以放在别的地方,但是需要在第3步更新路径

3) 当你 运行 Kafka Connect connect-distributed 确保设置了这个环境变量并且路径与步骤 1+2

中使用的路径匹配
KAFKA_OPTS=-javaagent:/usr/share/jmx_prometheus_javaagent-0.12.0.jar=7072:/usr/share/kafka-connect-jmx.yaml