От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
1. Software quality assurance days
21 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 26–27 мая 2017
Андрей Пищулин
ПерфомансЛаб. Ижевск, Россия
Всевидящее око. Мониторинг нагрузочного
тестирования с InfluxDB и Grafana
2. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Сегодня в программе…
Архитектура. До и после
Инструменты. Куда «ложить»
и почему их.
4. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Общая схема до
ЦОД
Тестируемая
система
Нагрузочная станция
Telegraf
Сбор системных метрик станцииTelegraf
Сбор системных метрик станцииTelegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Jmeter
5. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Общая схема после
Тестируемая
система
ЦОД
Станция сбора данных
InfuxDB
База данных для сбора
метрик
Нагрузочная станция
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Telegraf
Сбор системных метрик станции
Jmeter
Инструмент подачи нагрузки
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Нагрузочная станция
Telegraf
Сбор и отправка системных метрик
станции
Jmeter
Создание нагрузки. Отправка текущего
состояния теста
Информация по текущему тесту
ОТЧЕТ
Grafana
Визуализация данных
8. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
INFLUXDBhttps://docs.influxdata.com/influxdb/v1.2/
https://github.com/influxdata/influxdb
9.
10. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Простота внутри INFLUXDB
DATABASE
time min max pct90 avg label host success
2017-05-25T02:10:00Z 300 5120 3204 2541 GetPage Test-1 ok
2017-05-25T02:10:00Z 500 6012 4215 2466 SendData Test-1 ok
2017-05-25T02:10:00Z 2324 50014 45874 12321 GetPage Test-1 ko
2017-05-25T02:10:00Z 2431 49856 42844 11341 SendData Test-1 ko
2017-05-25T02:10:00Z 458 12547 9547 8654 GetPage Test-1 all
2017-05-25T02:10:00Z 432 11243 8456 7658 SendData Test-1 all
2017-05-25T02:10:01Z 300 5120 3204 2541 GetPage Test-1 ok
time min max pct90 avg label host success
2017-05-25T02:10:00Z 300 5120 3204 2541 GetPage Test-1 ok
2017-05-25T02:10:00Z 500 6012 4215 2466 SendData Test-1 ok
2017-05-25T02:10:00Z 2324 50014 45874 12321 GetPage Test-1 ko
2017-05-25T02:10:00Z 2431 49856 42844 11341 SendData Test-1 ko
2017-05-25T02:10:00Z 458 12547 9547 8654 GetPage Test-1 all
2017-05-25T02:10:00Z 432 11243 8456 7658 SendData Test-1 all
2017-05-25T02:10:01Z 300 5120 3204 2541 GetPage Test-1 ok
time min max pct90 avg label host success
2017-05-25T02:10:00Z 300 5120 3204 2541 GetPage Test-1 ok
2017-05-25T02:10:00Z 500 6012 4215 2466 SendData Test-1 ok
2017-05-25T02:10:00Z 2324 50014 45874 12321 GetPage Test-1 ko
2017-05-25T02:10:00Z 2431 49856 42844 11341 SendData Test-1 ko
2017-05-25T02:10:00Z 458 12547 9547 8654 GetPage Test-1 all
2017-05-25T02:10:00Z 432 11243 8456 7658 SendData Test-1 all
2017-05-25T02:10:01Z 300 5120 3204 2541 GetPage Test-1 ok
time min max pct90 avg label host success
2017-05-25T02:10:00Z 300 5120 3204 2541 GetPage Test-1 ok
2017-05-25T02:10:00Z 500 6012 4215 2466 SendData Test-1 ok
2017-05-25T02:10:00Z 2324 50014 45874 12321 GetPage Test-1 ko
2017-05-25T02:10:00Z 2431 49856 42844 11341 SendData Test-1 ko
2017-05-25T02:10:00Z 458 12547 9547 8654 GetPage Test-1 all
2017-05-25T02:10:00Z 432 11243 8456 7658 SendData Test-1 all
2017-05-25T02:10:01Z 300 5120 3204 2541 GetPage Test-1 ok
MEASUREMENT
TIME FIELD TAG
11. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Крутые штуки INFLUXDB
Быстрая установка
Написан на GO
Нет зависимостей
Исполняемый файл + конфигурация
Простая отправка и получение
данных
Запись/чтение через HTTP API
Доступ к данным через браузер
12. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Крутые штуки INFLUXDB
Поддержка множества
источников данных
Collectd
Carbon (Jmeter, Graphite)
Библиотеки JavaScript, Ruby, Ruby on Rails, Python, Node.js,
PHP, Java,Clojure, Common Lisp, Go, Scala, R, Erlang, Perl, Haskell, .NET(C#)
13. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Итого по INFLUXDB
Простая установка
Понятная структура данных
Простые получение и отправка
данных
Автоматическое удаление и
агрегация данных
Субъективно низкий порог входа
14. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
GRAFANAhttp://docs.grafana.org/
https://github.com/grafana/grafana
16. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Крутые штуки GRAFANA
Режимы получения данных из БД
Компьютер пользователя
InfluxDBGrafana
Компьютер пользователя
Браузер
InfluxDB
Grafana
Браузер
PROXYDIRECT
17. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Итого по GRAFANA
Простая установка
Настраиваемая доска с панелями
Конструктор запросов
Плагины
Интеграция с разными БД
Снапшоты
18. Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Что мы получили
- Онлайн мониторинг во время теста
- Сохранение результатов и быстрый доступ к
данным
- Составление кратких отчетов
- Импортирование и визуализация логов после
тестирования для анализа
- Прозрачность тестирования для всех
участников процесса