Подключение JMeter к Prometheus и Grafana для мониторинга в реальном времени

watch 56s
views 2

14:30, 25.08.2026

Содержание статьи
arrow

  • Вводный обзор
  • Что такое Prometheus?
  • Что такое Grafana?
  • Что такое плагин JMeter-Prometheus?
  • Необходимые условия
  • Установка плагина JMeter-Prometheus
  • Установка Prometheus
  • Установка Grafana
  • Настройка плагина JMeter-Prometheus в JMeter
  • Настройка Prometheus
  • Запуск Prometheus
  • Запуск теста в JMeter
  • Просмотр метрик JMeter в Prometheus
  • Где находится Grafana?
  • Проверка источника данных Prometheus в Grafana
  • Создание дашборда Grafana
  • Пример панели Grafana
  • Заключение

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

  1. Откройте JMeter и создайте план тестирования.
  2. Добавьте в тест «Backend Listener».
  3. Установите для параметра «Backend Listener Implementation» значение io.prometheus.jmeter.backendlistener.PrometheusBackendListenerClient.
  4. Настройте параметры:
  • 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

  1. Перейдите в Настройки > Источники данных.
  2. Нажмите Добавить источник данных и выберите Prometheus.
  3. Введите URL-адрес Prometheus (http://localhost:9090) и нажмите «Сохранить и протестировать».
  4. Grafana должна подтвердить успешное подключение.

Создание дашборда Grafana

Теперь, когда источник данных подключен, создайте свой первый дашборд.

  1. Нажмите «Создать»> «Панель инструментов»> «Добавить новую панель».
  2. Используйте запросы на языке Prometheus Query Language (PromQL) для получения метрик JMeter.

Пример:
rate(jmeter_sample_count{label="Login"}[1m])

  1. Настройте типы визуализации (например, график, индикатор, гистограмма).
  2. Сохраните информационную панель для повторного использования.

Пример панели Grafana

Функциональная панель тестирования производительности может включать следующее:

  • Запросы в секунду (RPS)
  • Среднее время отклика и процентили (90-й, 95-й, 99-й)
  • Частота ошибок во времени
  • Активные пользователи
  • Пропускная способность

Эти визуализации предоставляют информацию в режиме реального времени о производительности системы под нагрузкой, что упрощает обнаружение проблем и проверку эффективности улучшений.

Заключение

Интеграция JMeter с Prometheus и Grafana позволяет тестировщикам и инженерам отслеживать производительность в режиме реального времени и при необходимости принимать немедленные меры. Плагин JMeter-Prometheus выступает в качестве важнейшего связующего звена, предоставляя метрики для сбора Prometheus, а Grafana затем преобразует эти данные в информативные и практические дашборды. Независимо от того, проводите ли вы нагрузочное тестирование веб-приложения или моделируете интенсивные пользовательские нагрузки в средах, приближенных к производственным, такая конфигурация обеспечивает вам необходимую видимость для поддержания работоспособности и производительности системы.

Всего за несколько шагов по установке и настройке вы сможете перейти от статических отчетов к мониторингу в режиме реального времени при тестировании производительности.

Поделиться

Была ли эта статья полезной для вас?

Популярные предложения VPS

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 4096 Windows

18.65

При оплате за год

-13.3%

CPU
CPU
2 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 1024 HK Linux

11.33

При оплате за год

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
30 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 2048 Linux

8.3

При оплате за год

-12%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
1 TB
KVM-SSD 1024 Metered Linux

8.33

При оплате за год

-10%

CPU
CPU
4 Epyc Cores
RAM
RAM
4 GB
Space
Space
50 GB NVMe
Bandwidth
Bandwidth
Unlimited
wKVM-NVMe 4096 Windows

18.1

При оплате за год

-7.2%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 1024 Linux

6.4

При оплате за год

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
50 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-KVM-SSD 4096 Linux

60.5

При оплате за год

-21.4%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
500 GB
wKVM-SSD 8192 HK Windows

67

При оплате за год

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 8192 Windows

28.44

При оплате за год

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 16384 Linux

49.99

При оплате за год

Другие статьи на эту тему

cookie

Принять файлы cookie и политику конфиденциальности?

Мы используем файлы cookie, чтобы обеспечить вам наилучший опыт работы на нашем сайте. Если вы продолжите работу без изменения настроек, мы будем считать, что вы согласны получать все файлы cookie на сайте HostZealot.