Урок 08 из 18 · 2 минуты чтения

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

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования