Size: a a a

QA — Load & Performance

2020 April 22

ВС

Вячеслав Смирнов in QA — Load & Performance
По умолчанию группы некоректно сохраняются в InfluxDB из Gatling, в документации на Gatling указаны выражения не поддерживающие их разбор.

https://t.me/qaload/19

Вот тут рассказал про настройку их сохранения
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
И раз не сохраняются, то и не отображаются в Grafana, соответственно
Вот тут была первая попытка это исправить:
https://grafana.com/grafana/dashboards/9935
Добавил поддержку визуализации статистики по группам

Март 2019 года. Прошел год. Только сейчас довел до ума. И то не всё ещё
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Обновление будет, готовлю
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Ιωάννης Τσεκούρι
Думаю мы зависимость в свой швейцарский нож затащим
Здорово
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
Надеюсь что сообщество тоже будет в развитии участвовать или хотя бы ишшуесы заводить
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
На этой или следуЮщей неделе зарелизмс
источник

TL

Timur Layshev in QA — Load & Performance
Подскажите, давно интересовал вопрос.

Есть группа, которая содержит в себе вызовы в цикле:
- 1 отправка запроса
- N опросов статуса этого запроса через какой-то интервал (по сути поллинг).

В гатлинге уже есть функционал, который мог корректно логировать время выполнения всей группы в influxdb (то есть учитывая паузы)?
Репорт, который генерит гатлинг учитывает pause, а вот с inluxdb, когда ранее копался - думал, что необходимо что-то кастомное самому писать, потому что паузы он в influxdb не отправлял.

useGroupDurationMetric = true
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Timur Layshev
Подскажите, давно интересовал вопрос.

Есть группа, которая содержит в себе вызовы в цикле:
- 1 отправка запроса
- N опросов статуса этого запроса через какой-то интервал (по сути поллинг).

В гатлинге уже есть функционал, который мог корректно логировать время выполнения всей группы в influxdb (то есть учитывая паузы)?
Репорт, который генерит гатлинг учитывает pause, а вот с inluxdb, когда ранее копался - думал, что необходимо что-то кастомное самому писать, потому что паузы он в influxdb не отправлял.

useGroupDurationMetric = true
Да, Gatling отправляет группы и статистику, её просто надо принять корректно.

https://speakerdeck.com/polarnik/proghrammirovaniie-s-grafana-i-influxdb?slide=45
Вот тут если листать по слайдам вперёд отразил процесс разбора
Speaker Deck
Программирование с Grafana и InfluxDB
Доклад Вячеслава Смирнова из Райффайзенбанк для митапа сообщества по тестированию производительности (qa_load)

Рассказ про программирование с Grafana 6.5.2 и InfluxDB 1.7.

Рассмотрены две темы:
1. Фильтрация выпадающих списков с тегами InfluxDB по времени из Grafana
2. Вычисление длительности выполнения теста с ELAPSED и передача фильтров по времени из отчета в отчет через ссылки Grafana

Косвенно затронуты темы:
1. Вычисление интенсивности записи метрик из Gatling в InfluxDB с помощью функции ELAPSED
2. Настройка InfluxDB для разбора метрик по протоколу Graphite.
3. Настройка InfluxDB для сохранения идентификатора запуска теста Gatling.
4. Настройка Gatling для передачи идентификатора запуска теста в InfluxDB.

Результат будет опубликован в репозитории Райффайзенбанк:
https://github.com/Raiffeisen-DGTL

Чат сообщества QA — Load & Performance:
https://t.me/qa_load

Запись выступления Вячеслава Смирнова:
https://youtu.be/sEcudxQB62M?t=573
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
И отличный вопрос. С ответом 👍
источник

TL

Timur Layshev in QA — Load & Performance
спасибо, посмотрю 👍
источник

TL

Timur Layshev in QA — Load & Performance
что-то сомневаюсь..

я использовал темплейты для influxdb.conf из описания вашего дашборда графаны для гатлинга. что группы норм суммируются - это да, круто, все работает. 😉 Проблема была в том, что никак в influxdb никак не логировались паузы (pause). В моей кейсе опрос должен проходить с определенным интервалом. Поэтому на дашборде я бы хотел видеть суммарное время выполнения операции (запрос + N опросов статусов), которые учитывает эти паузы (как в loadrunner-е чекбокс include think time в аналайзере для Transaction Response Time), это скорее как бизнес-метрика. Когда проверял в гатлинге ваш дашборд - время выполнения группы = сумма времен выполнения всех запросов, без пауз.

То есть дело как будто не в templates для influxdb.conf, а в том, как гатлинг пишет значения для group1, group2 в influxdb (будто useGroupDurationMetric = false всегда в случае writers = graphite, для html-репорта - все ок)
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Timur Layshev
что-то сомневаюсь..

я использовал темплейты для influxdb.conf из описания вашего дашборда графаны для гатлинга. что группы норм суммируются - это да, круто, все работает. 😉 Проблема была в том, что никак в influxdb никак не логировались паузы (pause). В моей кейсе опрос должен проходить с определенным интервалом. Поэтому на дашборде я бы хотел видеть суммарное время выполнения операции (запрос + N опросов статусов), которые учитывает эти паузы (как в loadrunner-е чекбокс include think time в аналайзере для Transaction Response Time), это скорее как бизнес-метрика. Когда проверял в гатлинге ваш дашборд - время выполнения группы = сумма времен выполнения всех запросов, без пауз.

То есть дело как будто не в templates для influxdb.conf, а в том, как гатлинг пишет значения для group1, group2 в influxdb (будто useGroupDurationMetric = false всегда в случае writers = graphite, для html-репорта - все ок)
Если что-то не так именно в моей реализации отображения метрик. Значит это дефект отображения метрик. И спасибо, буду проверять
источник

TL

Timur Layshev in QA — Load & Performance
не-не, повторю - проблема не в чарте
источник

TL

Timur Layshev in QA — Load & Performance
а в гатлинге
источник

TL

Timur Layshev in QA — Load & Performance
судя по исходникам этот параметр вообще только для html-репорта используется
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Timur Layshev
судя по исходникам этот параметр вообще только для html-репорта используется
Да, именно так. Вспомнил
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Статистика по группам не отправляется. Поэтому сделал суммирование показаний запросов внутри группы, чтобы собрать статистику по группе.

И суммы без пауз.

К этим суммам у меня самого и так претензии.
Сумма среднего времени отклика запросов в группе = среднее время выполнения запросов в группе. Это ок.

Но из-за отсуствия метрик, другие метрики уже неточные.

Максимальное время выполнения группы = сумма максимальных вренем запросов в группе. Тут может быть завышение.

Для минимума - занижение.

и так далее.
Всё из-за недостатка метрик в логе.
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Мы с коллегами смастерили парсинг лога simulation.log и его отправку в influxdb
его первая задача - просто отправлять логи в influx
вторая - считать статистику по группам честную
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Вот это могу предложить
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Или логировать время с помощью asynclog
источник