Метрики Prometheus

Тема дорожной карты · Spring Boot

Метрики с Micrometer и Prometheus в Spring Boot обеспечивают вендор-нейтральный слой инструментирования, который предоставляет данные о производительности приложения в Prometheus — ведущую систему мониторинга временных рядов с открытым исходным кодом. Spring Boot Actuator автоматически настраивает Micrometer при наличии spring-boot-starter-actuator и micrometer-registry-prometheus в classpath, публикуя эндпоинт сбора данных на /actuator/prometheus, который Prometheus опрашивает с настраиваемым интервалом. Разработчики используют MeterRegistry для записи пользовательских счётчиков, индикаторов и таймеров — например, registry.counter("orders.created") — тогда как встроенные биндеры Micrometer автоматически инструментируют память JVM, потоки Tomcat, пулы соединений HikariCP и задержки запросов Spring MVC. Собранные метрики естественно поступают в дашборды Grafana и правила Alertmanager, формируя полный стек наблюдаемости наряду с агрегацией логов и распределённой трассировкой в средах Kubernetes или Docker Compose. Micrometer также поддерживает размерную маркировку через Tags.of(), что позволяет выполнять детальные запросы Prometheus с rate() и histogram_quantile() для мониторинга SLA.

Как это работает

Метрики Prometheus: Spring Boot Actuator экспонирует operational endpoints (/actuator/health, /info, /metrics, /prometheus, /env, /loggers). Health checks (liveness + readiness probes для K8s). Metrics через Micrometer (vendor-neutral metrics facade) → Prometheus, Datadog и т.п. Logging через Logback (дефолт) с JSON output для production (Logstash encoder); structured logging делает log aggregation реально полезным. Сочетайте с Micrometer Tracing для traces, OpenTelemetry SDK для полного o11y-сигнала.

Когда применять

Всегда включайте Actuator + Prometheus scraping + structured JSON logs в prod. Раздельные liveness/readiness probes — liveness рестартует залипший pod, readiness роутит трафик только когда ready. Тэгируйте метрики консистентно (service, version, env) — спасает от dashboard хаоса. Ограничивайте exposed-наружу endpoints; защищайте их.

Типичные ошибки

Ловушки Метрики Prometheus: публично выставленный /actuator/env (показывает env vars включая секреты); только liveness-probe (трафик роутится в not-ready pods); plain-text logs в prod (нефильтрабельно на масштабе); нет конвенции имён метрик (каждая команда изобретает свою).

Связанные понятия

Полезные ресурсы