Подключение JMeter к Prometheus и Grafana для мониторинга в реальном времени
14:30, 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-<version>.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
- процентили: 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 затем преобразует эти данные в информативные и практические дашборды. Независимо от того, проводите ли вы нагрузочное тестирование веб-приложения или моделируете интенсивные пользовательские нагрузки в средах, приближенных к производственным, такая конфигурация обеспечивает вам необходимую видимость для поддержания работоспособности и производительности системы.
Всего за несколько шагов по установке и настройке вы сможете перейти от статических отчетов к мониторингу в режиме реального времени при тестировании производительности.