簡體   English   中英

如何通過jmx監控卡夫卡的消費者滯后?

[英]How to monitor consumer lag in kafka via jmx?

我有一個kafka設置,包括prometheus的jmx導出器。 我正在尋找一個指標,根據主題和groupid給出偏移滯后。 我正在運行kafka 2.2.0。

一些在線資源指向一個名為kafka.consumer的指標,但我的設置中沒有這樣的指標。

從我的jmxterminal:

$>domains
#following domains are available
JMImplementation
com.sun.management
java.lang
java.nio
java.util.logging
jdk.management.jfr
kafka
kafka.cluster
kafka.controller
kafka.coordinator.group
kafka.coordinator.transaction
kafka.log
kafka.network
kafka.server
kafka.utils

但是,我可以使用以下命令查看我需要的數據:

root@kafka-0:/kafka# bin/kafka-consumer-groups.sh --describe --group benchmark_consumer_group --bootstrap-server localhost:9092
Consumer group 'benchmark_consumer_group' has no active members.

TOPIC               PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
benchmark_topic_10B 2          2795128         54223220        51428092        -               -               -
benchmark_topic_10B 9          4               4               0               -               -               -
benchmark_topic_10B 6          7               7               0               -               -               -
benchmark_topic_10B 7          5               5               0               -               -               -
benchmark_topic_10B 0          2834028         54224939        51390911        -               -               -
benchmark_topic_10B 1          15342331        54222342        38880011        -               -               -
benchmark_topic_10B 4          5               5               0               -               -               -
benchmark_topic_10B 5          6               6               0               -               -               -
benchmark_topic_10B 8          8               8               0               -               -               -
benchmark_topic_10B 3          4               4               0               -               -               -


但這無濟於事,因為我需要從指標中跟蹤。 此外,此命令執行大約需要25秒,因此將其用作指標的來源是不合理的。

我的猜測是,版本2.2.0中不存在度量標准kafka.consumer ,而是替換為另一個。 雖然,我在網上找不到任何有關如何以及在何處獲得該指標的最新信息的資源

kafka.consumer JMX指標僅出現在消費者流程本身,而不是Kafka經紀人流程上。 請注意,您不會使用除Java之外的使用者庫從消費者那里獲得kafka.consumer指標。

目前,Kafka經紀商本身沒有可用的消費者滯后JMX指標。 還有其他常用於監控消費者滯后的解決方案,例如LinkedIn的Burrow 還有一些開源項目,例如kafka9.offsets ,它們通過JMX公開消費者滯后指標,但可能無法更新以使用最新的Kafka。

您可以試試Kafka Minion( https://github.com/cloudworkz/kafka-minion )。 雖然Kafka Minion內部的工作方式與Burrow類似(消費群組偏移消耗__consumer_offsets主題),但它對您的用例有幾個優點

Kafka Minion優於Burrow的優勢:

  • 具有原生prometheus支持(無需額外部署即可向prometheus公開指標)
  • 有一個示例Grafana儀表板
  • 具有其他度量標准(例如,使用者組的上次提交時間戳:主題:分區組合,提交,有關清除策略的信息,您可以列出給定主題的所有使用者組等)
  • 不包含zookeeper依賴項(這也意味着不支持仍然向zookeeper提交偏移量的消費者)
  • 高可用性支持(!!)。 Burrow的問題是它總是暴露度量標准,當它剛剛開始使用__consumer_offsets主題時就會出錯。 因此,您無法在HA模式下運行它。 如果要根據使用者組滯后設置警報,則會出現此問題
  • Kafka Minion不支持多個集群,這降低了代碼和最終用戶的復雜性。 顯然,您仍然可以為每個群集部署Kafka Minion

免責聲明:我是Kafka Minion的作者,我仍在尋找其他用戶的更多反饋。 我打算為我的項目,我為公司工作的公司和社區積極維護和發展出口商。

使用kafka-consumer-groups.sh shell腳本回答有關您所看到的問題。 這不起作用,因為它無法報告非活動消費者的滯后,這有點適得其反。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM