Метрики и 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). Без него пробы не проходят и под интеграции перезапускается.