У меня есть установка kafka, которая включает экспортер jmx в prometheus. Я ищу метрику, которая дает отставание смещения на основе темы и идентификатора группы. У меня кафка 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 секунд, что делает нецелесообразным ее использование в качестве источника метрик.
Я предполагаю, что метрика kafka.consumer
не существует в версии 2.2.0 и была заменена на другую. Хотя я не могу найти какие-либо ресурсы в Интернете с актуальной информацией о том, как и где получить эту метрику.
Метрики kafka.consumer
JMX присутствуют только в самих процессах-потребителях, а не в процессах брокера Kafka. Обратите внимание, что вы не получите метрику kafka.consumer
от потребителей, использующих потребительскую библиотеку, отличную от библиотеки Java.
В настоящее время нет доступных метрик JMX для потребительского отставания от самого брокера Kafka. Существуют и другие решения, которые обычно используются для мониторинга отставания потребителей, например Нора от LinkedIn. Есть также несколько проектов с открытым исходным кодом, таких как kafka9.offsets, которые предоставляют метрики потребительской задержки через JMX, но могут не обновляться для работы с последней версией Kafka.
Правильно, вы увидите отставание группы потребителей в выводе kafka-consumer-groups.sh
. Это внутренне вычисляет отставание через тему __consumer_offsets
. Хотя вы можете видеть такие метрики, как задержка, из инструментов командной строки, это не означает, что метрики предоставляются брокером через JMX.
Ок понял. Есть ли способ выполнить те же вычисления kafka-consumer-groups.sh
быстрее? Скрипт выполняется 25 секунд. Если я смогу получить тот же результат менее чем за секунду, я смогу отправить эти данные в прометей самостоятельно (нет необходимости в jmx)
@Tom Как уже упоминалось, Burrow будет использовать тему смещения, и вы можете объединить это с Telegraf, у которого есть парсер для Burrow (при условии, что Burrow не выполняет метрики Prometheus) для отправки этих значений в хранилище метрик.
@Tom есть еще этот проект github.com/zalando-incubator/remora/issues/58
Я уже видел Нору, и она выглядит неплохо. Однако на данный момент принято стратегическое решение не усложнять систему и использовать только то, что доступно из коробки. Поэтому я просто ищу способ запросить у kafka задержку смещения для каждой группы потребителей по теме.
@TomKlino Я бы посоветовал проверить этот проект; похоже, он делает то, что вы ищете, и, поскольку он имеет открытый исходный код, вы можете изменить его по своему вкусу. github.com/braedon/prometheus-kafka-consumer-group-exporter
Вы можете попробовать Kafka Minion ( https://github.com/cloudworkz/kafka-миньон ). Хотя Kafka Minion внутренне работает аналогично Burrow (использует тему __consumer_offsets для смещений группы потребителей), у него есть несколько преимуществ для вашего варианта использования.
Преимущества Kafka Minion перед Burrow для вашего случая:
Отказ от ответственности: Я автор Kafka Minion и все еще жду отзывов от других пользователей. Я намерен активно поддерживать и развивать экспортер для своих проектов, компании, в которой я работаю, и для сообщества.
Чтобы ответить на ваш вопрос о том, что вы видите, используйте сценарий оболочки kafka-consumer-groups.sh
. Это не сработает, поскольку не может сообщать о задержках для неактивных потребителей, что несколько контрпродуктивно.
было бы неплохо иметь поддержку кластеров kafka с Kerberized
@AshikaUmangaUmagiliya Мы работаем над этим, скоро будет пиар. Обзор и тестирование приветствуются. Есть открытая проблема на гитхабе, давайте обсудим там
@kentor Я пытаюсь интегрировать Minions с AWS MSK, вот ссылка, не могли бы вы помочь stackoverflow.com/questions/61641056/kakfa-minions-with-aws-msk
То, что вы говорите, очень маловероятно, учитывая, что я запросил брокера с помощью скрипта
kafka-consumer-groups.sh
, когда не было подключенных потребителей, и получил данные. Смотрите мой вопрос, выход есть