Kafka Consumer - JMX Properties

Я включил JMX на брокерах kafka на порту 8081. Когда я просматриваю свойства MBean в jConsole, я вижу только следующее для kafka.consumer-

kafka.consumer:type=FetchRequestAndResponseMetrics,name=FetchRequestRateAndTimeMs,clientId=ReplicaFetcherThread-2-413

kafka.consumer:type=FetchRequestAndResponseMetrics,name=FetchResponseSize,clientId=ReplicaFetcherThread-0-413

Но ни одна из других, которые определены здесь в разделе "Метрики потребительских показателей Kafka", не генерируется JMX.

Кафка Версия # 0.8.2.1

Я особенно заинтересован в - kafka.consumer:type=ConsumerFetcherManager,name=MaxLag,clientId=([-.\w]+)

Какие-нибудь мысли?

3 ответа

Порт JMX, который вы слушаете, является портом брокера. Но Mbean kafka.consumer: это метрики потребительского jvm. Так что, если у вас есть другая JVM, которая использует тему, вы можете увидеть kafka.consumer Mbeans.

ConsumerLag - перегруженный термин в Kafka, он может обозначать:

  1. Метрика потребителя: Расчетная разница между текущим смещением журнала потребителя и текущим смещением журнала производителя. Вы можете найти его в компоненте JMX, если вы используете потребитель на основе Java/Scala (например, потребитель pykafka не экспортирует метрики):

    • Кафка v0.8.2.x:

      kafka.consumer:type= ConsumerFetcherManager, name=MaxLag, clientId=([-.\w]+) 
      
    • Кафка v0.9+:

      kafka.consumer:type=consumer-fetch-manager-metrics,client-id=([-.w]+)
      

    В ZooKeeper (Кафка) раньше сохранялось потребительское отставание <= v0.8), более новые версии Kafka имеют специальную тему __consumer_offsets что хранит отставание каждого потребителя. Существуют инструменты (например, kafka-manager), которые могут вычислить задержку, используя сообщения из этой темы и вычисляя задержку. В kafka-manager Вы должны включить эту функцию для каждого кластера:

    [] Опрос информации о потребителе (не рекомендуется для большого количества потребителей)

  2. Метрика брокера: представляет разницу между лидерами разделов и их последователями. Вы можете найти этот показатель под JMX bean:

    kafka.server:type=FetcherLagMetrics,name=ConsumerLag,clientId=([-.\w]+),topic=([-.\w]+),partition=([0-9]+)
    

Это может помочь найти его за 0.8, но в настоящее время у меня работает брокер и потребитель Kafka 0.10. При использовании консольного потребителя я указал jconsole для этого потребителя и нашел на вкладке MBeans: kafka.consumer-> consumer-fetcher-manager-metric -> consumer-1 -> Attributes -> records-max-lag,

Другие вопросы по тегам