Смотреть в Telegram
Как настроить поступление данных из jmeter в influxdb? Тест запускается из jenkins в нескольких экземплярах 1) TAG_AGENT Если агенты запускаются, как отдельные агенты, без мастер-слейв, то важно разделить данные с помощью тегов. Добавить тег с именем агента в результаты, чтобы они не перемешивались. https://jmeter.apache.org/usermanual/component_reference.html#Backend_Listener TAG_WhatEverYouWant You can add as many custom tags as you want. For each of them, create a new line and prefix its name by "TAG_" Например TAG_AGENT Значение - можно такое ${__machineName} https://jmeter.apache.org/usermanual/functions.html#__machineName 2) TAG_BUILD_ID И нужен идентификатор запуска из jenkins, чтобы не перемешивать все запуски между собой https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables BUILD_ID The current build ID, identical to BUILD_NUMBER for builds created in Jenkins versions 1.597+ Например такой тег, тоже добавляется новой строкой в BackendListener: TAG_BUILD_ID Значение
${__P(BUILD_ID)}

BUILD_ID прокидывается из переменных окружения в тест JMeter, как property. 3) Параметры Backend Listener По накоплению метрик перед записью есть пара настроек, они в jmeter.properties Суть такая - сохранять метрики каждую секунду теста не стоит, будет много метрик. Оптимально сохранять метрики раз в минуту или раз в 30 сек. Описал настройки для Backend Listener тут https://polarnik.github.io/influxdb-bench/#44 https://polarnik.github.io/influxdb-bench/#45 Например тест делает 50 запросов в сек. Мы хотим отправлять метрики раз в 60 сек. Значит надо хранить примерно 3000 метрик в очереди QUEUE_SIZE = 5000 (по умолчанию) - такое значение нас устраивает его хватает
backend_metrics_window_mode=timed 
backend_influxdb.send_interval=60 # было 5
backend_metrics_large_window=5000 # это устраивает нас > 3000

А вот тест делает (с одного агента) уже 200 запросов в сек и мы настраиваем отправку раз в 60 сек. Значит надо хранить примерно 12000 метрик в очереди перед отправкой.
QUEUE_SIZE = 12000 (увеличиваем)
backend_metrics_window_mode=timed 
backend_influxdb.send_interval=60 # было 5
backend_metrics_large_window=12000 # было 5000

4) Сумма по BUILD_ID = сумма сумм по AGENT Когда метрики записаны с нескольких одновременно работающих агентов, их надо визуализировать. Тут только есть тонкость, как суммарные метрики считать: - суммарная интенсивность работы со всех агентов - суммарное количество ошибок со всех агентов - их отношение (суммарный процент ошибок за весь тест) - суммарное количество потоков Сначала надо посчитать сумму с группировкой по AGENT, a потом по BUILD_ID. Считать сумму сразу по BUILD_ID не получится в InfluxDB. То есть все запросы на сумму будут с подзапросами. Это третий вариант суммирования, описанный в статье https://habr.com/ru/company/raiffeisenbank/blog/490764/
Telegram Center
Telegram Center
Канал