Підключення JMeter до Prometheus і Grafana для отримання інформації в режимі реального часу
14:26, 25.08.2026
Apache JMeter — це популярний інструмент для навантажувального тестування та моніторингу продуктивності. Він дає змогу користувачам імітувати високі навантаження та аналізувати поведінку системи в режимі реального часу. Однак його вбудована функція формування звітів може виявитися недостатньою, коли потрібний безперервний моніторинг у реальному часі.
У цьому випадку можна скористатися допоміжними інструментами, такими як Prometheus і Grafana. Вони дозволяють динамічно візуалізувати показники продуктивності під час виконання тестів.
У цій статті ми розглянемо, як інтегрувати JMeter із Prometheus та Grafana для отримання надійної аналітики продуктивності в режимі реального часу.
Вступний огляд
JMeter надає чудові можливості для виконання тестів, але його інтеграція з Prometheus та Grafana відкриває нові можливості в плані спостережуваності. Prometheus збирає та зберігає показники, а Grafana візуалізує їх за допомогою динамічних інформаційних панелей. Підключивши JMeter до цього стеку за допомогою плагіна JMeter-Prometheus, тестувальники можуть переглядати показники в режимі реального часу, виявляти вузькі місця та вживати негайних заходів.
Що таке Prometheus?
Prometheus — це набір інструментів з відкритим кодом для моніторингу систем та оповіщення, спочатку розроблений компанією SoundCloud. Він збирає та зберігає метрики у вигляді часових рядів, надає гнучку мову запитів (PromQL) та може надсилати сповіщення за заданими умовами. Prometheus отримує (зчитує) метрики з кінцевих точок, відкритих цільовими додатками та сервісами, що робить його ідеальним для моніторингу динамічних середовищ, таких як мікросервіси.
Що таке Grafana?
Grafana — це потужна платформа візуалізації та аналітики, яка працює з різноманітними джерелами даних, зокрема з Prometheus. За допомогою Grafana користувачі можуть створювати інтерактивні та настроювані інформаційні панелі, що дають змогу моніторити ключові показники в режимі реального часу, налаштовувати сповіщення та ділитися інформаційними панелями між командами. Багата екосистема плагінів Grafana ще більше розширює її функціональність.
Що таке плагін JMeter-Prometheus?
Плагін JMeter-Prometheus надає метрики JMeter у вигляді HTTP-кінцевої точки, з якої Prometheus може збирати дані. Він виконує роль мосту між JMeter та Prometheus, збираючи таку інформацію, як кількість запитів на секунду, час відгуку, кількість помилок тощо. Цей плагін є необхідним для забезпечення моніторингу тестів продуктивності в режимі реального часу.
Необхідні умови
Перш ніж розпочинати, переконайтеся, що виконано наступне:
- Java (JDK 8 або вище)
- Встановлено Apache JMeter
- Інтернет-з’єднання для завантаження залежностей
Встановлення плагіна JMeter-Prometheus
Спочатку завантажте JAR-файл плагіна (jmeter-prometheus-plugin-<версія>.jar) з його репозиторію GitHub.
Потім помістіть JAR-файл у каталог /lib/ext вашої інсталяції JMeter.
Після цього можна перезапустити JMeter, щоб активувати плагін.
Встановлення Prometheus
Для цього потрібно завантажити Prometheus з офіційного сайту. Потім розпакуйте архів і знайдіть файл конфігурації prometheus.yml.
Коли все готово — додайте нове завдання для збору метрик JMeter:
- job_name: 'jmeter'
metrics_path: '/metrics'
static_configs:
- targets: ['localhost:9270']
Встановлення Grafana
Завантажте Grafana з grafana.com. Потім дотримуйтесь інструкцій з встановлення для вашої операційної системи.
Після встановлення запустіть Grafana за допомогою терміналу або диспетчера служб.
Налаштування плагіна JMeter-Prometheus у JMeter
- Відкрийте JMeter і створіть свій план тестування.
- Додайте «Backend Listener» до вашого тесту.
- Встановіть для параметра «Backend Listener Implementation» значення io.prometheus.jmeter.backendlistener.PrometheusBackendListenerClient.
- Налаштуйте параметри:
- port: 9270 (або будь-який вільний порт)
- metric_name: JMeter
- percentiles: 90;95;99
Тепер плагін надаватиме метрики за адресою http://localhost:9270/metrics.
Налаштування Prometheus
Запуск Prometheus
Запустіть Prometheus за допомогою:
./prometheus --config.file=prometheus.yml
Prometheus почне збирати дані з JMeter та зберігати їх локально.
Виконання тесту в JMeter
Запустіть тест у JMeter. Під час виконання тесту Backend Listener надсилатиме дані про продуктивність на кінцеву точку, налаштовану для Prometheus.
Ви можете перевірити це, перейшовши за адресою http://localhost:9270/metrics у своєму браузері.
Перегляд метрик JMeter у Prometheus
Коли тест запущено і Prometheus збирає дані, відкрийте http://localhost:9090 (інтерфейс користувача Prometheus). Введіть зразок запиту PromQL, наприклад:
rate(jmeter_sample_count[1m])
Це відобразить кількість зразків (запитів), які JMeter генерує за хвилину. Серед інших корисних метрик — jmeter_sample_duration та jmeter_sample_failure_count.
Де знаходиться Grafana?
Grafana за замовчуванням працює за адресою http://localhost:3000. Увійдіть, використовуючи стандартні облікові дані (admin / admin), і встановіть новий пароль, коли з’явиться відповідне запит.
Перевірка джерела даних Prometheus у Grafana
- Перейдіть до Конфігурація > Джерела даних.
- Натисніть Додати джерело даних та виберіть Prometheus.
- Введіть URL-адресу Prometheus (http://localhost:9090) та натисніть «Зберегти та перевірити».
- Grafana має підтвердити успішне підключення.
Створення інформаційної панелі Grafana
Тепер, коли джерело даних підключено, створіть свою першу інформаційну панель.
- Натисніть «Створити»> «Панель інструментів»> «Додати нову панель».
- Використовуйте запити на мові Prometheus Query Language (PromQL) для отримання метрик JMeter.
Приклад:
rate(jmeter_sample_count{label="Login"}[1m])
- Налаштуйте типи візуалізації (наприклад, графік, індикатор, стовпчаста діаграма).
- Збережіть інформаційну панель для подальшого використання.
Приклад інформаційної панелі Grafana
Функціональна інформаційна панель для тестування продуктивності може містити таке:
- Кількість запитів на секунду (RPS)
- Середній час відгуку та час відгуку за процентилями (90-й, 95-й, 99-й)
- Частота помилок у динаміці
- Активні користувачі
- Пропускна здатність
Ці візуалізації надають інформацію в режимі реального часу про продуктивність системи під навантаженням, що полегшує виявлення проблем та перевірку ефективності вдосконалень.
Висновок
Інтеграція JMeter з Prometheus та Grafana дає змогу тестувальникам та інженерам відстежувати продуктивність у реальному часі та вживати негайних заходів у разі потреби. Плагін JMeter-Prometheus виступає важливим сполучною ланкою, надаючи Prometheus метрики для збору, а Grafana потім перетворює ці дані на змістовні та практичні інформаційні панелі. Незалежно від того, чи проводите ви навантажувальне тестування веб-додатку, чи моделюєте велике навантаження користувачів у середовищах, що імітують виробничі умови, така конфігурація забезпечує вам необхідну наочність для підтримки працездатності та продуктивності системи.
Всього за кілька кроків з інсталяції та налаштування ви зможете вивести свої практики тестування продуктивності з рівня статичних звітів на рівень спостережності в режимі реального часу.