JavaRush /Курси /Модуль 5. Spring /Лекція 118: Практика: візуалізація метрик в Grafana

Лекція 118: Практика: візуалізація метрик в Grafana

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

Якщо 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 за останню хвилину.


Практичне завдання: налаштування дашборда

На цьому етапі у тебе повинен бути дашборд як мінімум з трьома метриками:

  1. Завантаження процесора.
  2. Використання пам'яті.
  3. кількість оброблених HTTP-запитів.

Спробуй самостійно:

  • Додати ще одну панель, наприклад, для моніторингу помилок:
rate(http_server_requests_seconds_count{status="500", job="spring-boot-app"}[1m])
  • Зробити кольорове налаштування для різних рівнів метрик (наприклад, зелений — все нормально, червоний — проблеми).

Візуальна магія: кастомізація дашбордів

Grafana дозволяє налаштувати дашборд так, щоб він був зручним і легко читався. Ось кілька порад:

  • Групуй графіки, що відносяться до однієї категорії (наприклад, продуктивність, пам'ять, запити).
  • Додай заголовок і опис до кожної панелі, щоб було зрозуміло, що вона відстежує.
  • Використовуй опцію "Repeat Panel" для створення динамічних графіків (наприклад, по кожному методу контролера HTTP).

Реальний кейс: моніторинг аномалій

Припустимо, твій додаток раптово почав працювати повільніше. Як ти можеш використати Grafana для діагностики?

  1. Перевіряєш графік завантаження CPU. Якщо графік показує різкий ріст, можливо, якийсь процес перевантажує процесор.
  2. Дивишся на графік використання пам'яті. Якщо пам'ять майже заповнена, варто перевірити витік пам'яті.
  3. Порівнюєш успішні запити і запити з помилками. Якщо кількість помилок різко зросла, це може бути наслідком змін у коді.

Grafana допомагає швидко локалізувати проблему і вжити заходів.


Підсумкова перевірка

Після завершення налаштування твого дашборда:

  1. Переглянь всі панельки для виявлення можливих помилок або неточностей.
  2. Переконайся, що твої дані оновлюються в реальному часі.
  3. Перевір, що налаштована коректна тимчасова шкала (наприклад, останні 15 хвилин).

Завершальні поради і типові помилки

Часті помилки:

  • Неправильний PromQL-запит: Деякі метрики можуть бути недоступні через помилки в запитах.
  • Недостатній захист: Переконайся, що доступ до Grafana обмежений, особливо якщо ти працюєш у продакшені.
  • Занадто багато графіків: Дашборди повинні бути лаконічними й інформативними. Не потрібно додавати занадто багато панелей, інакше ти потонеш у даних.

Поступово ти опануєш створення більш складних запитів PromQL і зможеш візуалізувати практично будь-які аспекти роботи свого додатка. Тепер ти — архітектор дашбордів, а твій додаток — відкрита книга. Все під контролем!

Для глибшого вивчення можливостей PromQL і Grafana звернися до офіційної документації Prometheus і документації Grafana.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ