отставание потребителя kafka от метрики jmx против сценария consumer-groups.sh - PullRequest
0 голосов
/ 22 января 2019

Я нахожусь в процессе настройки мониторинга для потребителей и брокеров кафки. Мониторинг серверных метрик кажется довольно тривиальным, но я запутался с определенными задержками в метриках потребителей kafka.

Изначально я получил отставание потребителя по теме на раздел, на котором в файле consumer-groups.sh программно описан сценарий группы. Есть также тема consumer_offsets, которая, как мне кажется, также показывает отставание. Но мне сообщили, что это значение задержки не является точным, и я должен получить его через метрики jmx на хосте потребителя. Может кто-нибудь проверить, правильно ли это и почему? По сути, я хочу знать, какое из них было бы наиболее надежным способом найти правильное отставание для потребителя.

Это то, что мне сказали, что я должен получить: kafka.consumer: type = consumer-fetch-manager-metrics, client-id = {client-id} Атрибут: records-lag-max

Проблема в том, что вы не знаете, как получить доступ к клиентскому клиентскому серверу, если не указан порт или для этого есть порт по умолчанию? Также все ли потребительские клиенты kafka регистрируют метрики jmx?

Спасибо

1 Ответ

0 голосов
/ 24 января 2019

Ну, не все потребители будут Java-клиентами, но для тех, которые будут представлены, метрики JMX, показанные там, будут обновлены наиболее немедленно, так как потребитель знает, какие данные потребляются и когда. Кроме того, используемые смещения могут блокировать синхронные или асинхронные операции и только в этом случае могут оказаться в теме смещений.

Но если вы хотите отслеживать все группы потребителей всех клиентов, вы можете использовать тему смещения и инструменты, такие как Burrow LinkedIn, чтобы легко получить REST API для этой информации. Telegraf также имеет плагин для экспорта этих данных в хранилище метрик

как получить доступ к клиентскому клиентскому серверу, если порт не указан или для этого есть порт по умолчанию

Вы бы включили JMX на клиентах Java так же, как на серверах и других процессах JVM. Порт - это то, что вы бы выбрали

...