У меня работает раковина Kafka Connect. Я хотел бы контролировать отставание для этого.
Я могу вручную получить задержку, добавив брокера и используя инструмент kafka-consumer-groups
, например:
unset JMX_PORT; /usr/bin/kafka-consumer-groups --bootstrap-server localhost:9092 --group connect-<my-kafka-connect-connector> --describe
, который даст мне что-то вроде:
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
connect-<my-kafka-connect-connector> <my-topic> 0 1414248272 2775658553 1361410281 connector-consumer-<my-kafka-connect-connector>-<uuid> /<my-host-ip> connector-consumer-<my-kafka-connect-connector>-0
это запаздывающая информация, которую я хочу, но я хочу это в метрике Prometheus, которую я могу поставить на приборную панель, отслеживать и включать оповещения.
Я принимаю метрики брокера Kafka и Kafka Connectметрики, ни один из которых, кажется, не имеет этой информации. Я пролил через выход метрики Прометея curl
и grep
, и этой информации там нет.
Я запускаю Kafka Connect через официальный график Confluent Helm (https://github.com/confluentinc/cp-helm-charts/tree/master/charts/cp-kafka-connect)с экспортом метрик Prometheus по умолчанию. Это работает, я могу получить базовые метрики, но нет информации о задержке:
kubectl -n kafka exec -it kafka-connect-cp-kafka-connect-<id> -c cp-kafka-connect-server /bin/bash
# This will show exactly one metric with simple "running" status.
curl localhost:5556/metrics | grep <my-topic-name-or-connector-name>
cp_kafka_connect_connect_connector_metrics{connector="<my-connector-name>",status="running",task="0",} 1.0
Я вижу сторонние надстройки, такие как: https://github.com/lightbend/kafka-lag-exporter
Thisкажется, делает именно то, что я хочу, но я бы предпочел не добавлять другой сторонний компонент в мои производственные настройки, если это не является абсолютно необходимым. Есть ли подобные сторонние утилиты, которые я должен оценить или рассмотреть?