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

Метрики и health

Сбор метрик

Чарт создаёт два PodMonitor для kube-prometheus-stack:

  • для интеграций: поды с метками provider=neomsa-esb и group=neomsa-esb;
  • для dev-подов: метка org.apache.camel.karavan/type=devmode.
monitoring:
  podMonitor:
    enabled: true
    releaseLabel: kube-prometheus-stack   # имя Helm-релиза kube-prometheus-stack
    interval: 30s
    devmode: true

releaseLabel должно совпадать с именем релиза kube-prometheus-stack: его podMonitorSelector отбирает PodMonitor по метке release. Если имя не совпадает, Prometheus не увидит интеграции.

Метки provider и group ставит на поды сборка, из параметров jkube.enricher.jkube-project-label.* в application.properties интеграции. Они уже есть в шаблоне проекта.

Метрики интеграции

Интеграция отдаёт метрики по адресу /observe/metrics на порту 9876. Этот порт слушает management-сервер Camel, в deployment.jkube.yaml он называется observability, и PodMonitor чарта собирает метрики с него. В application.properties для этого нужны:

camel.management.enabled=true
camel.management.port=9876
camel.metrics.enabled=true
camel.metrics.binders=file-descriptor,jvm-gc,jvm-heap-pressure,jvm-info,jvm-memory,jvm-thread,processor,uptime
camel.metrics.enableMessageHistory=true

Метрики JVM (jvm_*) и история сообщений (camel_message_history_*) появляются только при camel.metrics.binders и camel.metrics.enableMessageHistory=true.

Дашборды Grafana

В комплект поставки входят два дашборда Grafana, настроенные на метрики интеграций. Импортируйте файлы с суффиксом -neomsa из каталога observability-config/grafana:

Дашборд Что показывает
16764 Состояние интеграций и JVM. Источник данных выбирается в переменной ${datasource}
16354 Маршруты и обработка сообщений Camel

Используйте дашборды из комплекта поставки. Одноимённые дашборды с grafana.com рассчитаны на другой источник данных и на метрики Camel 3.

Health

Пробы Deployment интеграции обращаются к:

  • /observe/health/live: проверяет только контекст Camel и не падает, если недоступен брокер или база;
  • /observe/health/ready: готовность принимать запросы.

Health обеспечивает зависимость camel-cli-connector из шаблона проекта. Зависимость camel-health добавлять не нужно.

В Camel 4.22 адреса /observe/* работают только при включённом management-сервере (camel.management.enabled=true). Без него пробы не проходят и под интеграции перезапускается.