Upload
sqalab
View
159
Download
4
Embed Size (px)
Citation preview
Software quality assurance days17 Международная конференция по вопросам качества ПОsqadays.com
Минск. 29–30 мая 2015
Семерханов ИльяT-Systems RUS. Санкт-Петербург. Россия
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Анализируем результаты перфоманс тестирования с Graphite и Grafana
О себе
https://www.linkedin.com/profile/view?id=110159845
Теперь CM \ DevOpsРаньше QA
https://www.facebook.com/ilya.semerhanov
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Перфоманс тестирование. Еще раз?
o Много рассказывают как и чемпроводить тест
o Забывают рассказывать что и какделать дальше
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Зачем нам перфоманс?
Производительность
Стрессоустойчивость
Максимальная нагрузка
Стабильность
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Создаем нагрузку
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Создаем модель нагрузки
o Определяем ключевые показатели эффективности (KPI)
o Выбираем профиль нагрузки
o Определяем необходимое количество нагрузки
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Создаем тесты
Apache ab
Apache Jmeter
The Grinder
Selenium
SoapUI
Другое
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Запускаем тесты и....анализируем…
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Личный опыт
o Топ проект в Telekom Deutschland (T-Mobile)
o Миллионы пользователей по всей Германии
o UI + веб сервисы + сложная бизнес логика
o Сотни новых контрактов заключаются в минуту
o Сотни тысяч одновременных сессий ежеминутно
o Стек java технологий
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Личный опыт. Проблемы
Перфоманс тесты проводились каждый релиз 2мя командами
Результаты хорошие
На продакшене все равно переодически проблемы
Недоверие заказчика к результатам тестов
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Метрики. Клиент
Время отклика
Пропускная способность
Среднее время работы до отказа
Максимальная нагрузка
Измеряется инструментамиперфоманс тестирования
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Метрики. Сервер
Загрузка CPU\JVM
Загрузка памяти
Время сбора мусора
Количество соединений с базой
Утекшие соединения
Количество сессий
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Анализируем
Таблица и график в Excel
Встроенный отчет
Профайлер
Анализируем результаты перфоманс тестирования с Graphite и Grafana
JRMC (JRockit Mission Control)
JVM аргументы: -Xmanagement:ssl=false,authenticate=false,port=8011,rmiserver_port=8011 -Djava.rmi.server.hostname=localhost
Анализируем результаты перфоманс тестирования с Graphite и Grafana
JRMC (JRockit Mission Control)Что можно посмотреть:
oЗагрузка CPU на JVM
oЗагрузка памяти на JVM
oКоличество тредов
oВремя для GC
oСодержимое памяти
Анализируем результаты перфоманс тестирования с Graphite и Grafana
JRMC (JRockit Mission Control)Что нельзя посмотреть:
oЗагрузка CPU на сервере
oЗагрузка памяти на сервере
oКоличество сессий
oКоличество подключений к базе данных
oСпецифичные для приложения метрики
oДинамику изменений
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Хотим больше данных
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Может нам поможет готовыйинструмент...
Например Grafana и Graphite?
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Graphite
Масштабируемая система построения графиков в реальном времени.
Специализированная база данных для метрик + бекенд для их обработки + GUI
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Grafana
Визуальный редактор и панель для отображения метрик для Graphite.
oНеограниченное количество панелей
oНабор фильтров
oРедактор запросов к Graphite
oКастомизация
oи многое другое
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Graphite + Grafana
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Graphite + Grafana
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Graphite + Grafana
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Компоненты
Graphite Webapp – GUI
Graphite Carbon – бекенд
Whisper – специализированная файловая база данных
Graphite API – REST API
Grafana – Rich GUI
Collectors – сборщики данных
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Архитектура
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Откуда брать данные
Операционная система
Сервера приложения через JMX (MBeans)
Приложение через JMX (Кастомные MBeans)
База данных
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Пример коллектора
Отправлем метрику в Graphite
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Пример коллектора
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Создание графика в Grafana1. Создать dashboard
2. Создать панель
3. Выбрать метрики и нужные машины
4. Выбрать функции преобразования
5. Сохранить
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Создание графика в Grafana
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Функции, фильтры и трансформации
o averageSeries
o aggregateLine
o countSeries
o diffSeries
o highestAverage
o Integral
o timeShift
http://graphite.readthedocs.org/en/latest/functions.html
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Сдвиг по времени
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Graphite API
/render endpoint
# Большой графикhttp://graphite/render?target=server.web1.load&height=800&width=600
# Средняя нагрузка за 12 часовhttp://graphite/render?target=averageSeries(server.web*.load)&from=-12hours
# Выгрузка данных в jsonhttp://graphite/render?target=app.numUsers&format=json
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Заключение
Анализировать надо данные не только на стороне клиента, но и на сервере
Grafana + Graphite – замена профайлерам при проведении перфоманс тестов
Графики в Grafana дают большие возможностей по анализу результатов тестирования
Graphite API удобный доступ к метрикам для отчетов
Test and have fun
Анализируем результаты перфоманс тестирования с Graphite и Grafana
Спасибо за внимание
https://www.linkedin.com/profile/view?id=110159845
https://www.facebook.com/ilya.semerhanov