Экспортер Kafka для Prometheus. Другие метрики Kafka можно найти в экспортере JMX.
Поддержка Apache Kafka версии 0.10.1.0 (и более поздних версий).
Бинарный файл можно загрузить со страницы «Релизы».
make
make docker
docker pull danielqsj/kafka-exporter:latest
Его можно использовать напрямую, вместо того, чтобы создавать образ самостоятельно. (Docker Hub danielqsj/kafka-exporter)
kafka_exporter --kafka.server=kafka:9092 [--kafka.server = another-server ...]
docker run -ti --rm -p 9308:9308 danielqsj/kafka-exporter --kafka.server=kafka:9092 [--kafka.server=another-server ...]
сделать docker-compose.yml
летающим
services:
kafka-exporter:
image: danielqsj/kafka-exporter
command: ["--kafka.server=kafka:9092", "[--kafka.server=another-server ...]"]
ports:
- 9308:9308
затем запусти его
docker-compose up -d
Это изображение можно настроить с использованием различных флагов
Название флага | По умолчанию | Описание |
---|---|---|
Кафка.сервер | Кафка: 9092 | Адреса (хост:порт) сервера Kafka |
Кафка.версия | 2.0.0 | Версия брокера Kafka |
sasl.включен | ЛОЖЬ | Подключайтесь с помощью SASL/PLAIN |
sasl.рукопожатие | истинный | Установите значение false только в том случае, если вы используете прокси-сервер SASL, отличный от Kafka. |
sasl.имя пользователя | Имя пользователя SASL | |
sasl.пароль | Пароль пользователя SASL | |
sasl.механизм | Механизм SASL может быть простым, scram-sha512, scram-sha256. | |
sasl.имя-сервиса | Имя службы при использовании Kerberos Auth | |
sasl.kerberos-config-path | Путь конфигурации Kerberos | |
sasl.realm | Область Kerberos | |
sasl.keytab-путь | Путь к файлу таблицы ключей Kerberos | |
sasl.kerberos-тип аутентификации | Тип аутентификации Kerberos. Либо «keytabAuth», либо «userAuth». | |
tls.enabled | ЛОЖЬ | Подключитесь к Кафке с помощью TLS. |
tls.имя-сервера | Используется для проверки имени хоста в возвращаемых сертификатах, если не указан tls.insecure-skip-tls-verify. Должно быть указано имя сервера Kafka. | |
файл tls.ca | Необязательный файл центра сертификации для аутентификации клиента Kafka TLS. | |
tls.cert-файл | Необязательный файл сертификата для аутентификации клиента Kafka. | |
tls.key-файл | Необязательный файл ключа для аутентификации клиента Kafka. | |
tls.insecure-skip-tls-verify | ЛОЖЬ | Если true, сертификат сервера не будет проверяться на достоверность. |
server.tls.enabled | ЛОЖЬ | Включить TLS для веб-сервера |
server.tls.mutual-auth-включен | ЛОЖЬ | Включить взаимную аутентификацию клиентов TLS |
файл server.tls.ca | Файл центра сертификации для веб-сервера | |
файл server.tls.cert | Файл сертификата для веб-сервера | |
server.tls.key-файл | Ключевой файл для веб-сервера | |
тема.фильтр | .* | Регулярное выражение, определяющее, какие темы собирать. |
тема.исключить | ^$ | Регулярное выражение, определяющее, какие темы исключить |
группа.фильтр | .* | Регулярное выражение, определяющее, какие группы потребителей собирать. |
группа.исключить | ^$ | Регулярное выражение, определяющее, какие группы потребителей следует исключить. |
web.listen-адрес | :9308 | Адрес для прослушивания веб-интерфейса и телеметрии |
web.telemetry-путь | /метрики | Путь для предоставления метрик |
log.enable-сарама | ЛОЖЬ | Включите ведение журнала Sarama |
использовать.consumelag.zookeeper | ЛОЖЬ | если вам нужно использовать группу от Zookeeper |
Zookeeper.сервер | локальный хост: 2181 | Адрес (хосты) сервера Zookeeper |
Кафка.labels | Имя кластера Kafka | |
обновить.метаданные | 30-е годы | Интервал обновления метаданных |
offset.show-all | истинный | Показывать ли смещение/задержку для всей группы потребителей, в противном случае показывать только подключенные группы потребителей. |
concurrent.enable | ЛОЖЬ | Если это правда, все очистки будут запускать операции Kafka, в противном случае они будут делиться результатами. ВНИМАНИЕ: это следует отключить в больших кластерах. |
тема.работники | 100 | Количество тематических работников |
многословие | 0 | Уровень журнала подробностей |
Логические значения уникально управляются Kingpin. Каждый логический флаг будет иметь отрицательное дополнение: --
и --no-
.
Например:
Если вам нужно отключить sasl.handshake
, вы можете добавить флаг --no-sasl.handshake
Документы об открытых метриках Prometheus.
Подробную информацию об основных метриках см. в Apache Kafka.
Подробности о метриках
Имя | Открытая информация |
---|---|
kafka_brokers | Количество брокеров в кластере Kafka |
Пример вывода показателей
# HELP kafka_brokers Number of Brokers in the Kafka Cluster.
# TYPE kafka_brokers gauge
kafka_brokers 3
Подробности о метриках
Имя | Открытая информация |
---|---|
kafka_topic_partitions | Количество разделов для этой темы |
kafka_topic_partition_current_offset | Текущее смещение брокера в теме/разделе |
kafka_topic_partition_oldest_offset | Самое старое смещение брокера в теме/разделе |
kafka_topic_partition_in_sync_replica | Количество синхронизированных реплик для этой темы/раздела |
kafka_topic_partition_leader | Идентификатор лидера-брокера этой темы/раздела |
kafka_topic_partition_leader_is_preferred | 1, если тема/раздел использует предпочтительный брокер |
kafka_topic_partition_replicas | Количество реплик для этой темы/раздела |
kafka_topic_partition_under_replicated_partition | 1, если тема/раздел находится в разделе «Реплицировано». |
Пример вывода показателей
# HELP kafka_topic_partitions Number of partitions for this Topic
# TYPE kafka_topic_partitions gauge
kafka_topic_partitions{topic="__consumer_offsets"} 50
# HELP kafka_topic_partition_current_offset Current Offset of a Broker at Topic/Partition
# TYPE kafka_topic_partition_current_offset gauge
kafka_topic_partition_current_offset{partition="0",topic="__consumer_offsets"} 0
# HELP kafka_topic_partition_oldest_offset Oldest Offset of a Broker at Topic/Partition
# TYPE kafka_topic_partition_oldest_offset gauge
kafka_topic_partition_oldest_offset{partition="0",topic="__consumer_offsets"} 0
# HELP kafka_topic_partition_in_sync_replica Number of In-Sync Replicas for this Topic/Partition
# TYPE kafka_topic_partition_in_sync_replica gauge
kafka_topic_partition_in_sync_replica{partition="0",topic="__consumer_offsets"} 3
# HELP kafka_topic_partition_leader Leader Broker ID of this Topic/Partition
# TYPE kafka_topic_partition_leader gauge
kafka_topic_partition_leader{partition="0",topic="__consumer_offsets"} 0
# HELP kafka_topic_partition_leader_is_preferred 1 if Topic/Partition is using the Preferred Broker
# TYPE kafka_topic_partition_leader_is_preferred gauge
kafka_topic_partition_leader_is_preferred{partition="0",topic="__consumer_offsets"} 1
# HELP kafka_topic_partition_replicas Number of Replicas for this Topic/Partition
# TYPE kafka_topic_partition_replicas gauge
kafka_topic_partition_replicas{partition="0",topic="__consumer_offsets"} 3
# HELP kafka_topic_partition_under_replicated_partition 1 if Topic/Partition is under Replicated
# TYPE kafka_topic_partition_under_replicated_partition gauge
kafka_topic_partition_under_replicated_partition{partition="0",topic="__consumer_offsets"} 0
Подробности о метриках
Имя | Открытая информация |
---|---|
kafka_consumergroup_current_offset | Текущее смещение ConsumerGroup в теме/разделе |
kafka_consumergroup_lag | Текущее приблизительное отставание группы потребителей в теме/разделе |
kafka_consumergroupzookeeper_lag_zookeeper | Текущая приблизительная задержка (смотритель зоопарка) группы потребителей в теме/разделе |
Чтобы иметь возможность собирать метрики kafka_consumergroupzookeeper_lag_zookeeper
, необходимо установить следующие флаги:
use.consumelag.zookeeper
: включить сбор задержки потребления от Zookeeper.zookeeper.server
: адрес для подключения к Zookeeper.server: адрес для подключения к ZooKeeper.Пример вывода показателей
# HELP kafka_consumergroup_current_offset Current Offset of a ConsumerGroup at Topic/Partition
# TYPE kafka_consumergroup_current_offset gauge
kafka_consumergroup_current_offset{consumergroup="KMOffsetCache-kafka-manager-3806276532-ml44w",partition="0",topic="__consumer_offsets"} -1
# HELP kafka_consumergroup_lag Current Approximate Lag of a ConsumerGroup at Topic/Partition
# TYPE kafka_consumergroup_lag gauge
kafka_consumergroup_lag{consumergroup="KMOffsetCache-kafka-manager-3806276532-ml44w",partition="0",topic="__consumer_offsets"} 1
Идентификатор информационной панели Grafana: 7589, имя: Обзор Kafka Exporter.
Подробную информацию о панели управления см. в разделе Обзор Kafka Exporter.
Если вам нравится Kafka Exporter, поставьте мне звездочку. Это поможет большему количеству людей узнать Kafka Exporter.
Пожалуйста, не стесняйтесь присылать мне запросы на включение.
Спасибо этим замечательным людям:
Ваше пожертвование побудит меня продолжать совершенствовать Kafka Exporter. Поддержите пожертвование Alipay.
Код лицензируется по лицензии Apache 2.0.