Перейти к содержанию

DebeziumMetricsMissing

Что означает алерт

Метрики Kafka Connect из namespace debezium не собираются 10 минут. Severity: warning.

Сам коннектор при этом может работать. Не работают алерты, построенные на метриках Connect: DebeziumConnectorNotRunning, DebeziumTaskNotRunning, DebeziumConnectorNotRegistered, DebeziumNotConnectedToPostgres, DebeziumErroneousEvents. Алерты по слоту репликации берут данные из postgres-exporter и продолжают работать.

Метрики отдаёт JMX-экспортер внутри процесса Kafka Connect на порту 9404. Собирает их vmagent через Service debezium-connect-metrics и VMServiceScrape debezium-connect.

Диагностика (по шагам)

  1. Проверить под. Если пода нет или он не Ready, действовать по DebeziumConnectNotReady: метрик нет, потому что нет процесса.
kubectl --context yc-sarex-stage -n debezium get pods
  1. Проверить, что экспортер отвечает:
POD=$(kubectl --context yc-sarex-stage -n debezium get pods -l app=debezium-connect -o jsonpath='{.items[0].metadata.name}')
kubectl --context yc-sarex-stage -n debezium exec $POD -- curl -s -m 10 localhost:9404/metrics | grep -c '^kafka_connect_'
Результат Значение Действие
число больше нуля экспортер работает, не работает сбор шаг 3
ошибка соединения экспортер не запущен шаг 4
ноль экспортер запущен, правила в metrics.yaml не совпадают с именами MBean «Как починить», пункт 3
  1. Проверить объекты сбора:
kubectl --context yc-sarex-stage -n debezium get svc debezium-connect-metrics
kubectl --context yc-sarex-stage -n debezium get vmservicescrape debezium-connect
kubectl --context yc-sarex-stage -n debezium get endpoints debezium-connect-metrics

У VMServiceScrape состояние должно быть operational, у Endpoints должен быть адрес пода. Если объекты на месте, проверить vmagent в namespace vm-stack.

  1. Проверить, что экспортер включён:
kubectl --context yc-sarex-stage -n debezium exec $POD -- bash -c 'echo "ENABLE_JMX_EXPORTER=$ENABLE_JMX_EXPORTER"; ls /kafka/libs/jmx_prometheus_javaagent*.jar /kafka/config/metrics.yaml'

Как починить

  1. Нет Service или VMServiceScrape. Перезапустить пайплайн deploy_stage в infra/debezium: объекты создаёт шаблон .helm/templates/monitoring.yaml при metrics.enabled: true.
  2. Экспортер не включён или нет файлов в образе. Проверить ENABLE_JMX_EXPORTER в .helm/values.yaml и шаги установки jar и metrics.yaml в Dockerfile, пересобрать образ.
  3. Экспортер отвечает, метрик kafka_connect_* нет. После обновления версии Debezium или Kafka Connect имена MBean могли измениться. Сверить правила в metrics.yaml репозитория infra/debezium с выводом localhost:9404/metrics.

Критерий закрытия

  1. Запрос up{namespace="debezium"} в VictoriaMetrics возвращает 1.
  2. Алерт перешёл в inactive.