Система мониторинга производительности своими руками...
TRANSCRIPT
Киев 2016
Первый в Украине фестиваль тестирования
Система мониторинга производительности
своими рукамиАлександр Неделяев
Киев 2016
О себе[email protected]
nedeliaev
Alexander Nedeliaev
Система мониторинга производительности своими руками
Киев 2016
Слои мониторинга• OS• CRM• ERP• Email
Application
• Database: Oracle, SQL Server, MySQL• Web servers: IIS, Apache• Application servers: WebSphere, Tomcat, JBoss, MS .Net
Middleware
• Servers: Windows Server, Solaris, Linux• Virtualization: VMware, Hyper-V, Citrix
XenServer• Storage: SAN, NAS, RAID, S.M.A.R.T• Network: LAN, WLAN, VPN
Hardware
Система мониторинга производительности своими руками
Киев 2016
Слои мониторинга• OS• CRM• ERP• Email
Application
• Database: Oracle, SQL Server, MySQL• Web servers: IIS, Apache• Application servers: WebSphere, Tomcat, JBoss, MS .Net
Middleware
• Servers: Windows Server, Solaris, Linux• Virtualization: VMware, Hyper-V, Citrix
XenServer• Storage: SAN, NAS, RAID, S.M.A.R.T• Network: LAN, WLAN, VPN
Hardware
Система мониторинга производительности своими руками
Киев 2016
Почему нет?• Масштабность
• Неготовность приложения
• Целесообразность
• Стоимость
Система мониторинга производительности своими руками
Киев 2016
Отправная точка
Система мониторинга производительности своими руками
http://jmeter.apache.org/usermanual/realtime-results.html
Киев 2016
Что лежит в основе мониторинга?
Система мониторинга производительности своими руками
Метрика
Значение
Отметка времени
Киев 2016
В чем недостаток JMeter Чрезмерное потребление ресурсов
Слабая визуализация результатов
Фрагментарность
Неудобство работы с данными
Система мониторинга производительности своими руками
Киев 2016
Структура Сбор данных из различных источников
Запись и хранение данных в базе
Визуализация данных
Оповещения
Система мониторинга производительности своими руками
Киев 2016
Установка и конфигурация
Система мониторинга производительности своими руками
https://docs.docker.com https://hub.docker.com
Киев 2016
Команды Docker• docker pull [image]• docker run -d -e [environmentVariable] -p [ports]• docker start / stop [containerID]• docker-machine ip• docker images -a• docker ps -a• docker rm [containerID]• docker rmi [image]
Система мониторинга производительности своими руками
Киев 2016
Установка InfluxDB и Grafana
Система мониторинга производительности своими руками
Из папки проекта: docker-compose up -d
http://bit.ly/qamonitoring
Киев 2016
Настраиваем JMeter
Система мониторинга производительности своими руками
http://jmeter.apache.org/usermanual/realtime-results.html
Киев 2016
Что я хочу видеть Инфраструктурные метрики Метрики производительности приложения События Сравнительный анализ данных Совместная работа, sharing Бизнес метрики Оповещения
Система мониторинга производительности своими руками
Киев 2016
Что я хочу видеть Инфраструктурные метрики Метрики производительности приложения События Сравнительный анализ данных Совместная работа, sharing Бизнес метрики Оповещения
Система мониторинга производительности своими руками
Киев 2016
Инфраструктурные метрики - LinuxCollectD:
• CPU used/ free/ idle/ etc• Free disk (via mounting hosts '/' into container, eg: -v /:/hostfs:ro)• Disk performance• Load average• Memory used/ free/ etc• Uptime• Network interface• Swap
https://github.com/andreasjansson/docker-collectd-write-graphite
Система мониторинга производительности своими руками
Киев 2016
Инфраструктурные метрики - Windows
Система мониторинга производительности своими руками
https://hodgkins.io/using-powershell-to-send-metrics-graphitehttps://github.com/MattHodge/Graphite-PowerShell-Functions
Киев 2016
Что я хочу видеть Инфраструктурные метрики Метрики производительности приложения События Сравнительный анализ данных Совместная работа, sharing Бизнес метрики Оповещения
Система мониторинга производительности своими руками
Киев 2016
Метрики производительности приложения<rootMetricsPrefix>test.m
inATMin active threads
<rootMetricsPrefix>test.maxATMax active threads
<rootMetricsPrefix>test.meanATMean active threads
<rootMetricsPrefix>test.startedTStarted threads
<rootMetricsPrefix>test.endedTFinished threads
Система мониторинга производительности своими руками
Киев 2016
<rootMetricsPrefix><samplerName>.a.countNumber of responses for sampler name
<rootMetricsPrefix><samplerName>.a.minMin response time for responses of sampler name
<rootMetricsPrefix><samplerName>.a.maxMax response time for responses of sampler name
<rootMetricsPrefix><samplerName>.h.countServer hits per seconds
<rootMetricsPrefix><samplerName>.a.pct<percentile>Percentile computed for responses of sampler name
Метрики производительности приложения
Система мониторинга производительности своими руками
Киев 2016
Запускаем Jmeter тест
Система мониторинга производительности своими руками
jmeter -n -t your_script.jmx
где-n: инструкиция запускать Jmeter без GUI-t: путь к .jmx файлу, который нужно запускать
Киев 2016
Проверяем данные в InfluxDB
Система мониторинга производительности своими руками
http://<docker-machine ip>:8083
Киев 2016
Создаем Grafana dashboard
Система мониторинга производительности своими руками
http://<docker-machine ip>:3000/dashboard/new
Киев 2016
Что я хочу видеть Инфраструктурные метрики Метрики производительности приложения События Сравнительный анализ данных Совместная работа, sharing Бизнес метрики Оповещения
Система мониторинга производительности своими руками
Киев 2016
Аннотации
Система мониторинга производительности своими руками
curl -i -XPOST 'http://<docker-machine ip>:8086/write?db=jmeter' --data-binary 'alerts event="Deploy to prod"'
Киев 2016
Что я хочу видеть Инфраструктурные метрики Метрики производительности приложения События Сравнительный анализ данных Совместная работа, sharing Бизнес метрики Оповещения
Система мониторинга производительности своими руками
Киев 2016
Что я хочу видеть Инфраструктурные метрики Метрики производительности приложения События Сравнительный анализ данных Совместная работа, sharing Бизнес метрики Оповещения
Система мониторинга производительности своими руками
Киев 2016
Планы на будущее Инфраструктурные метрики Метрики производительности приложения События Сравнительный анализ данных Совместная работа, sharing Бизнес метрики Оповещения
Система мониторинга производительности своими руками
Киев 2016
Taurus
Система мониторинга производительности своими руками
docker run --rm -v <path-to-files>:/bzt-configs undera/bzt:v1.6.5
https://bit.ly/qataurus
Киев 2016
Спасибо[email protected]
nedeliaev
Alexander Nedeliaev
Система мониторинга производительности своими руками