Получить доступ

Actuator и наблюдаемость

Production-эндпоинты, health-проверки и probes, метрики через Micrometer, трассировка и безопасность эндпоинтов.

Что такое Actuator

spring-boot-starter-actuator добавляет готовые production-эндпоинты под /actuator: health (состояние), info (метаданные), metrics (метрики), env (свойства), beans, mappings, threaddump, heapdump, loggers и др. Это «приборная панель» приложения без написания кода.

По умолчанию наружу (по HTTP) выставлен минимум; что показывать, настраивают через management.endpoints.web.exposure.include — выставлять всё подряд небезопасно.

Health checks и probes

/actuator/health — составной статус из отдельных HealthIndicator'ов (БД, диск, брокер, внешние сервисы); можно писать свои. Статус агрегируется в UP/DOWN.

Для Kubernetes Actuator отдаёт liveness и readiness probes: liveness («жив ли процесс» — иначе перезапуск) и readiness («готов ли принимать трафик» — иначе исключают из балансировки). Их разделение критично для корректного деплоя без потери запросов.

Метрики и Micrometer

Метрики Boot собирает через Micrometer — это фасад метрик (как SLF4J для логов): код пишет метрики против Micrometer, а экспортёр отправляет их в конкретную систему (Prometheus, Graphite, CloudWatch).

Основные типы: counter (монотонный счётчик), gauge (мгновенное значение), timer (длительность + частота). Из коробки собираются JVM/HTTP/датасорс-метрики; свои добавляют через MeterRegistry или аннотацию @Timed.

@Timed("orders.create") // длительность и частота вызова как метрика
@PostMapping("/orders")
Order create(@RequestBody NewOrder req) { /* ... */ }

Логи и трассировка

Actuator позволяет менять уровни логирования в рантайме (эндпоинт loggers) — удобно для диагностики без перезапуска. Это часть наблюдаемости вместе с метриками.

Третий столп — распределённая трассировка: Micrometer Tracing (с OpenTelemetry/Zipkin) проставляет trace/span id и связывает запрос через цепочку сервисов. Логи + метрики + трейсы вместе дают полную картину поведения системы.

Безопасность эндпоинтов

Actuator-эндпоинты содержат чувствительное: env раскрывает свойства (включая возможные секреты), heapdump/threaddump — внутренности процесса. Их нельзя выставлять в публичный интернет без защиты.

Практика: наружу отдавать только health (и то ограниченно), остальное — на отдельном порту/сети и под аутентификацией (Spring Security). Управляют экспозицией и доступом раздельно для web и для отдельных эндпоинтов.

Как отвечать на собеседовании

Назовите Actuator как набор production-эндпоинтов и подчеркните управление экспозицией. Разберите health + разницу liveness/readiness probes (перезапуск vs балансировка) для Kubernetes. Объясните Micrometer как фасад метрик (counter/gauge/timer, экспортёр Prometheus) и упомяните трассировку (trace/span). Обязательно — безопасность: env/heapdump не выставлять наружу.

Вопросы по теме

Читайте также

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем