Програмування — це не тільки писати код і фіксувати баги. Це ще й моніторинг додатків у реальному часі, щоб зрозуміти, хто гальмує систему, які ресурси працюють з перевантаженням і куди зникають дорогоцінні байти пам’яті в 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
- Легкість інтеграції: достатньо додати одну залежність.
- Гнучкість налаштувань: можна вмикати лише потрібні ендпоінти.
- Розширюваність: легко додавати кастомні метрики.
- Ефективна діагностика: допомагає швидко зрозуміти, чому додаток "глючить".
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ