JavaRush /Курси /Модуль 5. Spring /Лекція 111: Вступ до Spring Boot Actuator

Лекція 111: Вступ до Spring Boot Actuator

Модуль 5. Spring
Рівень 19 , Лекція 0
Відкрита

Програмування — це не тільки писати код і фіксувати баги. Це ще й моніторинг додатків у реальному часі, щоб зрозуміти, хто гальмує систему, які ресурси працюють з перевантаженням і куди зникають дорогоцінні байти пам’яті в JVM. Уяви, що ти — пілот літака, і тобі потрібно бачити приладову панель твого корабля, інакше це буде політ у сліпу. І от тут заходить Spring Boot Actuator! Це інструмент, який надає широкі можливості для моніторингу й керування Spring Boot-додатками. Він дозволяє:

  • Відстежувати стан твого додатка.
  • Отримувати ключові метрики (CPU, пам’ять, продуктивність запитів).
  • Перевіряти операційні характеристики системи.
  • Отримувати доступ до діагностики та інформації про стан додатка.

Як інтегрувати Actuator у Spring Boot проект?

Для початку потрібно додати залежність Actuator у твій проект. Адже Spring Boot дозволяє вмикати готові інструменти через Maven або Gradle. Все, як завжди, максимально просто.

Додавання залежності Maven: Додай наступну залежність у твій pom.xml:


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Додавання залежності в Gradle: Якщо ти використовуєш build.gradle, то підключи:


implementation 'org.springframework.boot:spring-boot-starter-actuator'

Готово! Тепер Actuator вже вбудований у твоє додаток.


Огляд стандартних ендпоінтів

Spring Boot Actuator надає безліч готових ендпоінтів для моніторингу й керування твоїм додатком. Ось кілька найпопулярніших:

Ендпоінт Опис
/health Показує стан додатка (здоровий чи ні)
/info Показує інформацію про додаток, наприклад, версію, опис
/metrics Показує метрики, такі як CPU, пам’ять, виконання запитів
/env Містить властивості середовища (environment variables)
/loggers Надає інформацію про поточні налаштування логування
/beans Виводить список усіх бінів, зареєстрованих у твоєму контексті
/threaddump Дамп стану потоків всередині JVM, що допомагає знаходити блокування

Тепер уяви: ти запускаєш додаток, заходиш на http://localhost:8080/actuator/health, а там тебе вітає чарівне слово UP. Це означає, що твоє додаток працює. Ура!


Увімкнення та налаштування Actuator

Як і все в Spring Boot, Actuator зручно конфігурується. Для цього використовуються звичні файли для керування конфігурацією: application.properties або application.yml.

Налаштування базового шляху ендпоінтів: за замовчуванням всі ендпоінти Actuator знаходяться за шляхом /actuator. Але що, якщо ти хочеш змінити його, щоб, наприклад, сховати їх від сторонніх очей? Просто вкажи новий шлях у application.properties:


management.endpoints.web.base-path=/management

Тепер ендпоінти будуть доступні за шляхом /management.

Увімкнення та вимкнення ендпоінтів: Можливість вмикати або вимикати певні ендпоінти — це теж частина магії Actuator. Наприклад:


management.endpoint.health.enabled=true
management.endpoint.beans.enabled=false

Таким чином, ти вмикаєш /health і вимикаєш /beans.

Які ендпоінти доступні? Для цього можна налаштувати загальний доступ (за замовчуванням доступні лише деякі ендпоінти):


management.endpoints.web.exposure.include=*

Або дозволити доступ лише до 2–3 обраних:


management.endpoints.web.exposure.include=health,info

Це корисно, коли хочеш мінімізувати ризики, пов’язані з безпекою.


Короткий практичний приклад

Давай увімкнемо Actuator і перевіримо його функціональність на простому Spring Boot-додатку. Створимо навчальне REST API і додамо Actuator для його моніторингу.

Крок 1: Додамо залежність у pom.xml (або build.gradle):


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Крок 2: Налаштуємо файл application.properties:


management.endpoints.web.exposure.include=health,info,metrics
management.endpoint.health.show-details=always

Крок 3: Створюємо REST API: Створимо стандартний HelloController:


@RestController
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Привіт, Spring Boot Actuator!";
    }
}

Крок 4: Запустимо додаток: Після запуску додатку заходиш у браузер або Postman і відкриваєш ендпоінти:

  • http://localhost:8080/actuator/health — стан додатка.
  • http://localhost:8080/actuator/info — інформація про додаток.
  • http://localhost:8080/actuator/metrics — метрики CPU, пам’яті і запитів.

Результати:
На /health ти побачиш таку магію:


{
  "status": "UP",
  "details": {
    "diskSpace": {
      "status": "UP",
      "details": {
        "total": 500000000000,
        "free": 400000000000,
        "threshold": 10485760
      }
    }
  }
}

Це означає, що твій додаток працює, а твій диск ще не заповнений котиками.


Ключові особливості Actuator

  1. Легкість інтеграції: достатньо додати одну залежність.
  2. Гнучкість налаштувань: можна вмикати лише потрібні ендпоінти.
  3. Розширюваність: легко додавати кастомні метрики.
  4. Ефективна діагностика: допомагає швидко зрозуміти, чому додаток "глючить".
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ