Якщо Prometheus — це бібліотекар метрик, то Grafana — це художник, який перетворює ці метрики на шедеври.
Глибоке занурення в Grafana: створення інформативних дашбордів
Перш ніж ми почнемо: переконайся, що в тебе вже встановлені й налаштовані Prometheus і Grafana згідно з інструкцією з попередньої лекції. Якщо ні — повертайся до розділу "Настройка Grafana" у лекції "Інтеграція Actuator з моніторинговими системами".
Сьогодні ми навчимося перетворювати сухі метрики на красиві й інформативні дашборди. Пірнаємо у світ візуалізації даних!
Створення дашборда
Почнемо з найпростішого — створення дашборда для моніторингу базових метрик, таких як завантаження CPU і використання пам'яті.
1. Створюємо новий дашборд
- Зайди в Grafana і натисни "Create" -> "Dashboard".
- Натисни "Add new panel". Тут ми будемо додавати графіки і діаграми.
2. Налаштовуємо графік для завантаження CPU
- В полі "Query" вибери джерело даних (Prometheus).
- Введи наступний PromQL-запит для моніторингу процесорних ресурсів:
rate(process_cpu_seconds_total{job="spring-boot-app"}[1m])
Цей запит показує CPU usage додатка в реальному часі.
- Налаштуй візуалізацію. У правому меню вибери тип графіка (наприклад, "Graph").
- Натисни "Apply", щоб зберегти зміни.
Тепер ти маєш бачити графік, що показує завантаження CPU твого Spring Boot-додатка.
3. Налаштовуємо графік для використання пам'яті Додай ще один графік, використовуючи аналогічні кроки, але зміни запит:
jvm_memory_used_bytes{area="heap", job="spring-boot-app"}
Цей запит відображає використання heap пам'яті (Java Virtual Machine).
- Переконайся, що джерело даних вибране правильно.
- Налаштуй візуалізацію (Graph або інший тип за твоїм вибором).
- Збережи зміни.
4. Додаємо панель для числа оброблених запитів Ти можеш додати ще одну панель з запитом для моніторингу HTTP-запитів:
rate(http_server_requests_seconds_count{status="200", job="spring-boot-app"}[1m])
Цей запит показує кількість успішних HTTP-запитів з кодом 200 за останню хвилину.
Практичне завдання: налаштування дашборда
На цьому етапі у тебе повинен бути дашборд як мінімум з трьома метриками:
- Завантаження процесора.
- Використання пам'яті.
- кількість оброблених HTTP-запитів.
Спробуй самостійно:
- Додати ще одну панель, наприклад, для моніторингу помилок:
rate(http_server_requests_seconds_count{status="500", job="spring-boot-app"}[1m])
- Зробити кольорове налаштування для різних рівнів метрик (наприклад, зелений — все нормально, червоний — проблеми).
Візуальна магія: кастомізація дашбордів
Grafana дозволяє налаштувати дашборд так, щоб він був зручним і легко читався. Ось кілька порад:
- Групуй графіки, що відносяться до однієї категорії (наприклад, продуктивність, пам'ять, запити).
- Додай заголовок і опис до кожної панелі, щоб було зрозуміло, що вона відстежує.
- Використовуй опцію "Repeat Panel" для створення динамічних графіків (наприклад, по кожному методу контролера HTTP).
Реальний кейс: моніторинг аномалій
Припустимо, твій додаток раптово почав працювати повільніше. Як ти можеш використати Grafana для діагностики?
- Перевіряєш графік завантаження CPU. Якщо графік показує різкий ріст, можливо, якийсь процес перевантажує процесор.
- Дивишся на графік використання пам'яті. Якщо пам'ять майже заповнена, варто перевірити витік пам'яті.
- Порівнюєш успішні запити і запити з помилками. Якщо кількість помилок різко зросла, це може бути наслідком змін у коді.
Grafana допомагає швидко локалізувати проблему і вжити заходів.
Підсумкова перевірка
Після завершення налаштування твого дашборда:
- Переглянь всі панельки для виявлення можливих помилок або неточностей.
- Переконайся, що твої дані оновлюються в реальному часі.
- Перевір, що налаштована коректна тимчасова шкала (наприклад, останні 15 хвилин).
Завершальні поради і типові помилки
Часті помилки:
- Неправильний PromQL-запит: Деякі метрики можуть бути недоступні через помилки в запитах.
- Недостатній захист: Переконайся, що доступ до Grafana обмежений, особливо якщо ти працюєш у продакшені.
- Занадто багато графіків: Дашборди повинні бути лаконічними й інформативними. Не потрібно додавати занадто багато панелей, інакше ти потонеш у даних.
Поступово ти опануєш створення більш складних запитів PromQL і зможеш візуалізувати практично будь-які аспекти роботи свого додатка. Тепер ти — архітектор дашбордів, а твій додаток — відкрита книга. Все під контролем!
Для глибшого вивчення можливостей PromQL і Grafana звернися до офіційної документації Prometheus і документації Grafana.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ