Для чего нужен Spring Boot Actuator?

«Для чего нужен Spring Boot Actuator?» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Spring Boot Actuator — это модуль, который добавляет в приложение готовые production-ready эндпоинты для мониторинга, аудита и управления.

Ключевые возможности:

  • Мониторинг здоровья (Health): GET /actuator/health – статус приложения и внешних систем (БД, очереди).
  • Сбор метрик (Metrics): GET /actuator/metrics – JVM, системные метрики, кастомные метрики.
  • Информация о приложении (Info): GET /actuator/info – произвольная статическая информация (версия, сборка).
  • Просмотр конфигурации (Env, Configprops): Отображение свойств окружения и бинов @ConfigurationProperties.

Базовая настройка в application.properties:

# Включение конкретных эндпоинтов через HTTP
management.endpoints.web.exposure.include=health,info,metrics,prometheus
# Детализация health check'а
management.endpoint.health.show-details=always
# Кастомная информация
info.app.name=My Service
info.app.version=2.1.0

Пример кастомного HealthIndicator:

@Component
public class CustomHealthIndicator implements HealthIndicator {
    @Override
    public Health health() {
        boolean isHealthy = checkExternalService();
        return isHealthy ? Health.up().build() : Health.down().withDetail("Error", "Service unavailable").build();
    }
}

Actuator также поддерживает JMX и позволяет создавать собственные эндпоинты через аннотацию @Endpoint.