Loading time testing and results visualisation of web games
ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
1. Software quality assurance days
22 Международная конференция
по вопросам качества ПО
sqadays.com
Санкт-Петербург. 17–18 ноября 2017
Журин Сергей
Performance-lab. Москва, Россия
ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
2. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Что такое ELK stack?
ELK Stack или Elastic Stack – пакет из трех продуктов, которые в частности
применяются для визуализации и анализа логов
Logstash – сбор и первичная обработка логов
Elasticsearch – хранение и быстрый поиск по логам
Kibana – визуализация (дашборды)
3. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Архитектурная схема решения
4. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Elasticsearch. Обратный индекс.
Runtime
Exception
Java
Document 1
Document 10
Document 2
Document 1
Document 14
Document 4
Document 1
Elasticsearch использует Lucene,
которая хранит данные используя
обратный индекс
Хранится значение и документ, в
котором это значение встречается
Это обеспечивает очень быстрый
поиск по сообщению лога
5. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Elasticsearch. Основные плюсы и минусы
Плюсы:
1. Скорость полнотекстового поиска
2. Горизонтальное масштабирование
Минусы:
1. «Почти реальное время» (Near Real
Time)
2. Отсутствие транзакций
3. Ограничения на архитектуру хранения
данных (отсутствие cross-table join’ов)
6. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Пример dashboard’а
7. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Предпосылки к внедрению ELK stack
1. Автоматизация рутины
2. Достижение заданного качества тестирования
за ограниченное время
3. Быстрая локализация причины сбоя в
продуктивной среде
8. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
До внедрения
Работа по чек-листу:
1. Зайти на каждый сервер, включить сбор метрик
2. После теста зайти на каждый сервер собрать метрики
3. Запустить обработчик метрик
4. Построить графики
5. И только сейчас приступить к анализу результатов
Проблемы:
1. Много времени тратится на рутинную работу
2. Человеческий фактор
9. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
После внедрения
1. Один раз настраивается сбор метрик и
отображение графиков
2. Настраиваем ELK Stack
3. Дополнительно мы можем получить:
1. Средство для быстрого анализа логов
2. Автоматическая визуализация информации
в логах
10. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Зачем анализировать логи? Поиск бага
Большая крупная система
Проект по нагрузочному тестированию
Тестирование job’ов по обработке финансовых
проводок
Найден баг!
Иногда job’ы падают с не понятной ошибкой
11. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Зачем анализировать логи? Ответ разработчика
Это не баг это фича
«Такое поведение встречается и в проде, чтобы
полечить нужно просто перезапустить job еще раз»
12. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Зачем анализировать логи? Причина бага
Помогал в поиске причины бага один
из лучших специалистов компании
Был проведен анализ определенного
лог-файла с определенного сервера
БД
Deadlock
Detected:
ORA-00060
13. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Зачем анализировать логи? Результат
Результаты:
1. Иногда причина багов рядом – в логах
2. Разработчик готов помогать, если ему
предоставить достаточно информации о баге
Нюансы:
1. Большой объем файлов с логами
2. Разный формат сообщений
3. Нужно знать что может, а чего не может быть в логах
14. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Что же мы получаем
1. Облегчение жизни разработчикам и
администраторам
2. Облегчение жизни тестировщикам
3. Предоставление информации менеджерам
4. Централизованный мониторинг здоровьем
систем
5. Повышение качества продукта
15. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Общие впечатления об ELK stack
1. Logstash и Kibana
1. Нужный функционал не в полном объеме
2. Просто реализовать недостающее
3. Легко настраиваются
2. Elasticsearch
1. Солидный продукт
2. Работает быстро
3. Нужно время, чтобы научиться с ним
работать
4. По умолчанию нет аутентификации
16. ELK stack в тестировании (Logstash+Elasticsearch+Kibana)
Вопросы и ответы
Презентацию выполнил:
Журин Сергей.
s.zhurin@pflb.ru
Инженер по производительности ПО
Performance lab