我正在运行一个Kafka Connect接收器。我想对此进行监控。
我可以通过炮轰经纪人并像这样使用kafka-consumer-groups
工具来手动获得延迟:
unset JMX_PORT; /usr/bin/kafka-consumer-groups --bootstrap-server localhost:9092 --group connect-<my-kafka-connect-connector> --describe
那会给我类似的东西
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
connect-<my-kafka-connect-connector> <my-topic> 0 1414248272 2775658553 1361410281 connector-consumer-<my-kafka-connect-connector>-<uuid> /<my-host-ip> connector-consumer-<my-kafka-connect-connector>-0
这是我想要的滞后信息,但是我希望以Prometheus指标来提供此信息,我可以将其放在仪表板上并监视和设置警报。
我正在摄取Kafka经纪人指标和Kafka Connect指标,它们似乎都没有此信息。我已经使用curl
和grep
浏览了Prometheus度量标准输出,但是此信息不存在。
我正在通过官方的Confluent Helm图表(https://github.com/confluentinc/cp-helm-charts/tree/master/charts/cp-kafka-connect)运行Kafka Connect,并默认使用Prometheus指标导出。这行得通,我可以获得基本指标,但没有滞后信息:
kubectl -n kafka exec -it kafka-connect-cp-kafka-connect-<id> -c cp-kafka-connect-server /bin/bash
# This will show exactly one metric with simple "running" status.
curl localhost:5556/metrics | grep <my-topic-name-or-connector-name>
cp_kafka_connect_connect_connector_metrics{connector="<my-connector-name>",status="running",task="0",} 1.0
我看到第三方加载项如下: https://github.com/lightbend/kafka-lag-exporter
这似乎完全符合我的要求,但是除非绝对必要,否则我不希望在生产设置中添加其他第三方组件。我真的需要第三方实用程序来获得如此基本的东西吗?如果需要第三方工具,是否应该评估或考虑使用类似的第三方工具?