Есть ли способ настроить метрики jafx kafka-connect для захвата с помощью jmx_exporter/prometheus?
Я настраиваю мониторинг подключения Kafka в нашей экосистеме Kafka. Я включил экспортер JMX для брокеров кафки и работает нормально. Сейчас я пытаюсь включить экспортер JMX для kafka connect. Тем не менее, немного неясно, с чего начать.
Я могу только изменить connect-distributed.sh
чтобы включить изменения. Любые указатели будут отличным дополнением.
kafka-run-class.sh
был изменен, чтобы включить jmx_exporter
испускать JMX метрики на http://<host>:9304/metrics
Я ожидаю, что kafka-connect будет генерировать метрики на http://<host>:19000/metrics
однажды jmx_exporter
был включен.
1 ответ
Изменение скрипта в 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?
Покопавшись, я нашел решение проблемы. Агент Java может быть добавлен к connect-distributed.sh
и начинает излучать метрики приятно.
Так что включите jmx_exporter
на фреймворке Kafka Connect
- открыто
connect-distributed.sh
- Изменить последнюю строку, которая вызывает
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 "$@"