Для чего используется Spring Boot Actuator
Что проверяют
Знаете ли вы, что это готовая эксплуатационная обвязка, и понимаете ли, что её нельзя открывать наружу как есть.
Как отвечать
Actuator добавляет приложению служебные HTTP-эндпоинты, по которым его состояние видно снаружи без своего кода.
Что даёт из коробки:
/actuator/health: жив ли сервис и его зависимости. Отдельноlivenessиreadiness, которые напрямую подключаются к пробам Kubernetes;/actuator/metricsи/actuator/prometheus: метрики через Micrometer, память, пулы соединений, время ответа, свои счётчики. Забираются Prometheus без единой строки кода;/actuator/info: версия сборки и коммит;/actuator/env,/beans,/configprops,/mappings: что именно поднялось и с какой конфигурацией. Незаменимо при разборе, почему бин не тот;/actuator/loggers: уровень логирования меняется на лету, без перезапуска;/actuator/threaddumpи/heapdump: снимки для разбора зависаний и утечек.
Главное про безопасность: наружу по умолчанию открыт только health, остальное включается явно. И включать env, heapdump или loggers без авторизации нельзя, там переменные окружения, содержимое памяти и возможность менять поведение. Обычно их выносят на отдельный порт, закрытый от внешней сети.
Где спотыкаются
Открывают все эндпоинты через management.endpoints.web.exposure.include=* в проде.
Считают Actuator системой мониторинга. Он источник данных, а собирают и рисуют Prometheus и Grafana.
Не различают liveness и readiness, из-за чего Kubernetes перезапускает сервис вместо того, чтобы убрать его из балансировки.
Не знают, что свои проверки в health добавляются реализацией HealthIndicator.