Есть ли способ настроить метрики jmx kafka-connect для захвата с помощью jmx_exporter / prometheus?

Я настраиваю мониторинг Kafka connect в нашей экосистеме Kafka. Я включил экспортер JMX для брокеров kafka и работает нормально. Теперь я пытаюсь включить экспортер JMX для подключения kafka. Однако непонятно, с чего начать.

Я могу изменить только connect-distributed.sh, чтобы изменения вступили в силу. Любые указатели были бы отличным дополнением.

kafka-run-class.sh был изменен, чтобы разрешить jmx_exporter генерировать метрики jmx на http://<host>:9304/metrics

Я ожидаю, что kafka-connect будет выдавать метрики на http://<host>:19000/metrics после включения jmx_exporter.


person floating_hammer    schedule 01.07.2019    source источник


Ответы (2)


Крайне не рекомендуется изменять сценарий в каталоге bin. При обновлении Kafka до следующей версии извлечение новых двоичных файлов переопределит изменения, внесенные в сценарий.

Предпочтительный способ - установить переменную среды KAFKA_JMX_OPTS вне сценария:

export KAFKA_JMX_OPTS = "- javaagent: /opt/kafka/libs/jmx_prometheus_javaagent-0.12.0.jar=127.0.0.1: 10902: /etc/kafka-connect/jmx_exporter.yaml"

Если переменная установлена ​​перед запуском Kafka через скрипт, она будет использовать переменную вместо значений по умолчанию, определенных в /bin/kafka-server-start.sh

Этот ответ проверяет Как установить параметры Java для Kafka?

person Iskuskov Alexander    schedule 26.02.2020

Покопавшись, я нашел решение проблемы. Java-агент может быть добавлен в connect-distributed.sh, и он начнет нормально генерировать метрики.

Итак, включите jmx_exporter на платформе Kafka Connect.

  1. Открыть connect-distributed.sh
  2. Измените последнюю строку, которая вызывает kafka-run-class.sh
exec $(dirname $0)/kafka-run-class.sh $EXTRA_ARGS org.apache.kafka.connect.cli.ConnectDistributed "$@"

к следующему

exec $(dirname $0)/kafka-run-class.sh $EXTRA_ARGS -javaagent:/path/to/jmx_prometheus_javaagent-0.11.0.jar=9408:/path/to/config/file/prometheus.yml org.apache.kafka.connect.cli.ConnectDistributed "$@"
person floating_hammer    schedule 02.07.2019
comment
Хороший вопрос, но неоднозначный ответ - извините за голосование против - person Iskuskov Alexander; 26.02.2020
comment
Добавление jar агента Apm таким же образом, как описано выше .. сработало хорошо !! Благодарность - person Francis John; 08.06.2021