Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Анализируем результаты тестирования производительности с Graphite и Grafana

1,675 views

Published on

Доклад Ильи Семерханова на конференции SQA Days-17,
29-30 мая 2015 г., Минск
www.sqadays.com

Published in: Education
  • Be the first to comment

Анализируем результаты тестирования производительности с Graphite и Grafana

  1. 1. Software quality assurance days 17 Международная конференция по вопросам качества ПО sqadays.com Минск. 29–30 мая 2015 Семерханов Илья T-Systems RUS. Санкт-Петербург. Россия Анализируем результаты перфоманс тестирования с Graphite и Grafana
  2. 2. Анализируем результаты перфоманс тестирования с Graphite и Grafana О себе https://www.linkedin.com/profile/view?id=110159845 Теперь CM DevOpsРаньше QA https://www.facebook.com/ilya.semerhanov
  3. 3. Анализируем результаты перфоманс тестирования с Graphite и Grafana Перфоманс тестирование. Еще раз? o Много рассказывают как и чем проводить тест o Забывают рассказывать что и как делать дальше
  4. 4. Анализируем результаты перфоманс тестирования с Graphite и Grafana Зачем нам перфоманс? Производительность Стрессоустойчивость Максимальная нагрузка Стабильность
  5. 5. Анализируем результаты перфоманс тестирования с Graphite и Grafana Создаем нагрузку
  6. 6. Анализируем результаты перфоманс тестирования с Graphite и Grafana Создаем модель нагрузки o Определяем ключевые показатели эффективности (KPI) o Выбираем профиль нагрузки o Определяем необходимое количество нагрузки
  7. 7. Анализируем результаты перфоманс тестирования с Graphite и Grafana Создаем тесты Apache ab Apache Jmeter The Grinder Selenium SoapUI Другое
  8. 8. Анализируем результаты перфоманс тестирования с Graphite и Grafana Запускаем тесты и.... анализируем…
  9. 9. Анализируем результаты перфоманс тестирования с Graphite и Grafana Личный опыт o Топ проект в Telekom Deutschland (T-Mobile) o Миллионы пользователей по всей Германии o UI + веб сервисы + сложная бизнес логика o Сотни новых контрактов заключаются в минуту o Сотни тысяч одновременных сессий ежеминутно o Стек java технологий
  10. 10. Анализируем результаты перфоманс тестирования с Graphite и Grafana Личный опыт. Проблемы Перфоманс тесты проводились каждый релиз 2мя командами Результаты хорошие На продакшене все равно переодически проблемы Недоверие заказчика к результатам тестов
  11. 11. Анализируем результаты перфоманс тестирования с Graphite и Grafana Метрики. Клиент Время отклика Пропускная способность Среднее время работы до отказа Максимальная нагрузка Измеряется инструментами перфоманс тестирования
  12. 12. Анализируем результаты перфоманс тестирования с Graphite и Grafana Метрики. Сервер Загрузка CPUJVM Загрузка памяти Время сбора мусора Количество соединений с базой Утекшие соединения Количество сессий
  13. 13. Анализируем результаты перфоманс тестирования с Graphite и Grafana Анализируем Таблица и график в Excel Встроенный отчет Профайлер
  14. 14. Анализируем результаты перфоманс тестирования с Graphite и Grafana JRMC (JRockit Mission Control) JVM аргументы: -Xmanagement:ssl=false,authenticate=false,port=8011,rmiserver_port=8011 -Djava.rmi.server.hostname=localhost
  15. 15. Анализируем результаты перфоманс тестирования с Graphite и Grafana JRMC (JRockit Mission Control) Что можно посмотреть: oЗагрузка CPU на JVM oЗагрузка памяти на JVM oКоличество тредов oВремя для GC oСодержимое памяти
  16. 16. Анализируем результаты перфоманс тестирования с Graphite и Grafana JRMC (JRockit Mission Control) Что нельзя посмотреть: oЗагрузка CPU на сервере oЗагрузка памяти на сервере oКоличество сессий oКоличество подключений к базе данных oСпецифичные для приложения метрики oДинамику изменений
  17. 17. Анализируем результаты перфоманс тестирования с Graphite и Grafana Хотим больше данных
  18. 18. Анализируем результаты перфоманс тестирования с Graphite и Grafana Может нам поможет готовый инструмент... Например Grafana и Graphite?
  19. 19. Анализируем результаты перфоманс тестирования с Graphite и Grafana Graphite Масштабируемая система построения графиков в реальном времени. Специализированная база данных для метрик + бекенд для их обработки + GUI
  20. 20. Анализируем результаты перфоманс тестирования с Graphite и Grafana Grafana Визуальный редактор и панель для отображения метрик для Graphite. oНеограниченное количество панелей oНабор фильтров oРедактор запросов к Graphite oКастомизация oи многое другое
  21. 21. Анализируем результаты перфоманс тестирования с Graphite и Grafana Graphite + Grafana
  22. 22. Анализируем результаты перфоманс тестирования с Graphite и Grafana Graphite + Grafana
  23. 23. Анализируем результаты перфоманс тестирования с Graphite и Grafana Graphite + Grafana
  24. 24. Анализируем результаты перфоманс тестирования с Graphite и Grafana Компоненты Graphite Webapp – GUI Graphite Carbon – бекенд Whisper – специализированная файловая база данных Graphite API – REST API Grafana – Rich GUI Collectors – сборщики данных
  25. 25. Анализируем результаты перфоманс тестирования с Graphite и Grafana Архитектура
  26. 26. Анализируем результаты перфоманс тестирования с Graphite и Grafana Откуда брать данные Операционная система Сервера приложения через JMX (MBeans) Приложение через JMX (Кастомные MBeans) База данных
  27. 27. Анализируем результаты перфоманс тестирования с Graphite и Grafana Пример коллектора Отправлем метрику в Graphite
  28. 28. Анализируем результаты перфоманс тестирования с Graphite и Grafana Пример коллектора
  29. 29. Анализируем результаты перфоманс тестирования с Graphite и Grafana Создание графика в Grafana 1. Создать dashboard 2. Создать панель 3. Выбрать метрики и нужные машины 4. Выбрать функции преобразования 5. Сохранить
  30. 30. Анализируем результаты перфоманс тестирования с Graphite и Grafana Создание графика в Grafana
  31. 31. Анализируем результаты перфоманс тестирования с Graphite и Grafana Функции, фильтры и трансформации o averageSeries o aggregateLine o countSeries o diffSeries o highestAverage o Integral o timeShift http://graphite.readthedocs.org/en/latest/functions.html
  32. 32. Анализируем результаты перфоманс тестирования с Graphite и Grafana Сдвиг по времени
  33. 33. Анализируем результаты перфоманс тестирования с 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 # Выгрузка данных в json http://graphite/render?target=app.numUsers&format=json
  34. 34. Анализируем результаты перфоманс тестирования с Graphite и Grafana Заключение Анализировать надо данные не только на стороне клиента, но и на сервере Grafana + Graphite – замена профайлерам при проведении перфоманс тестов Графики в Grafana дают большие возможностей по анализу результатов тестирования Graphite API удобный доступ к метрикам для отчетов Test and have fun 
  35. 35. Анализируем результаты перфоманс тестирования с Graphite и Grafana Спасибо за внимание https://www.linkedin.com/profile/view?id=110159845 https://www.facebook.com/ilya.semerhanov

×