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.
Мониторинг качества работы
вашего проекта
План
• Работает ли сайт
• Работает ли бизнес функционал
Работает ли сайт
• Внешние регулярные проверки (http check)
• Анализ логов
• Real User Monitoring (RUM – метрики из
браузе...
Внешние проверки сайта
• Покрывают не все страницы
• Не позволяют хорошо замерить время
ответа
• Пропускают проблемы
Логи nginx
• Есть все запросы реальных пользователей
• Можно посчитать за период, сколько было
ошибок
• Добавляем в лог вр...
Время ответа: квантиль
• Сильно лучше чем среднее :)
• Непонятно, как корректно объединять
(например при сборе с нескольки...
Время ответа: гистограмма
• Очень понятный физический смысл
• Удобно объединять: просто сумма одинаковых
бакетов
• Нужно с...
Нас интересует
• Сколько было запросов: как
обычно/больше/меньше
• Сколько было ошибок
• Времена ответов: на сколько масшт...
Упихиваем ответы на 1 график
Гистограмма времени ответа + ошибки
• быстро (<500ms)
• терпимо (500ms-1s)
• медленно (>1s)
•...
“Светофор”
логи VS пробы
• Пробы: 5 основных страниц раз в минуту с
таймаутом 4s
• Триггеры по метрикам из лога nginx:
> 20 ошибок в ...
Rеal User Monitoring
• На страницу ставится JS, который
отстреливает статистику загрузки страницы
на сервер
• Очень полезе...
RUM
Отстреливаем свои события
• Загрузка видео + рекламы в плеер
• Считаем, сколько пользователь смотрел
видео
• Загрузка и ра...
Мониторинг доставки видео
• Скорость загрузки (качество работы CDN)
• Ошибки загрузки
Скорость загрузки видео
Ошибки загрузки видео
Так работает ли сайт?
• Правильно замониторить сайт – достаточно
большая задача
• Но вполне решаемая
• Если захотеть, можн...
Бизнес-логика сайта
• Синхронные действия (пользователь ждет)
• Асинхронные действия (отложенные)
• Действия иницируемые с...
Как получать метрики
• SQL запросы
• Запрос в http сервис
• Запрос в NoSQL
• Размер очереди в *mq
• Парсинг логов
• Из при...
Синхронные действия
• Заказ в интернет-магазине
• Регистрация нового пользователя
• Просмотр статьи
• Комментарий
• Лайк
•...
Синхронные действия
• Важно считать количество действий
• Если поехала верстка, забыли нужную
кнопку – упадет количество ц...
Пользователи должны всегда
заливать новые видосы
И лайкать чужие
Асинхронные действия
В ходе пользовательского запроса решили
что-то отложить – положили в очередь
• Отправка уведомлений
•...
Асинхронные действия
• Считаем размер очереди
• Считаем ошибки при процессинге
• Скорость процессинга (tasks/second)
• Счи...
Обработка залитых видео
Failed push notifications
Мониторинг доставки почты
Поток доставляемых сообщений
Скорость доставки важной почты
Структура почтового трафика
Хочу тоже все видеть!
• Начните с сайта – теперь вы знаете, на что
смотреть
• Вспомните последние 10-20
инцидентов/багов, ...
Хочу тоже все видеть!
• У метрик должен быть хорошо понятный
вам физический смысл
• Не страшно, если сначала будет много
г...
Вопросы?
Николай Сивко
nsv@okmeter.io
skype: nikolay.sivko
Upcoming SlideShare
Loading in …5
×

Мониторинг качества работы вашего проекта

475 views

Published on

Слайды с доклада на Стачке2016

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Мониторинг качества работы вашего проекта

  1. 1. Мониторинг качества работы вашего проекта
  2. 2. План • Работает ли сайт • Работает ли бизнес функционал
  3. 3. Работает ли сайт • Внешние регулярные проверки (http check) • Анализ логов • Real User Monitoring (RUM – метрики из браузеров пользователей)
  4. 4. Внешние проверки сайта • Покрывают не все страницы • Не позволяют хорошо замерить время ответа • Пропускают проблемы
  5. 5. Логи nginx • Есть все запросы реальных пользователей • Можно посчитать за период, сколько было ошибок • Добавляем в лог время ответа – видим как быстро отвечали пользователям
  6. 6. Время ответа: квантиль • Сильно лучше чем среднее :) • Непонятно, как корректно объединять (например при сборе с нескольких серверов) • Примерно понятен физический смысл, но не отвечает на все вопросы • Если Q95 выросла с 500ms до 5s, сколько пользователей это затронуло?
  7. 7. Время ответа: гистограмма • Очень понятный физический смысл • Удобно объединять: просто сумма одинаковых бакетов • Нужно сразу выбрать пороги • Есть способ делать гистограмму не выбирая заранее пороги, но он дорогой
  8. 8. Нас интересует • Сколько было запросов: как обычно/больше/меньше • Сколько было ошибок • Времена ответов: на сколько масштабны были тормоза
  9. 9. Упихиваем ответы на 1 график Гистограмма времени ответа + ошибки • быстро (<500ms) • терпимо (500ms-1s) • медленно (>1s) • HTTP-5xx
  10. 10. “Светофор”
  11. 11. логи VS пробы • Пробы: 5 основных страниц раз в минуту с таймаутом 4s • Триггеры по метрикам из лога nginx: > 20 ошибок в секунду (при ~600rps) Q95 > 4s Uptime: пробы: 99.80% (9 минут за 30 дней) логи: 98.86% (7ч 29 минут за 30 дней)
  12. 12. Rеal User Monitoring • На страницу ставится JS, который отстреливает статистику загрузки страницы на сервер • Очень полезен в мониторинге производительности client-side логики
  13. 13. RUM
  14. 14. Отстреливаем свои события • Загрузка видео + рекламы в плеер • Считаем, сколько пользователь смотрел видео • Загрузка и работа ваших JS компонентов
  15. 15. Мониторинг доставки видео • Скорость загрузки (качество работы CDN) • Ошибки загрузки
  16. 16. Скорость загрузки видео
  17. 17. Ошибки загрузки видео
  18. 18. Так работает ли сайт? • Правильно замониторить сайт – достаточно большая задача • Но вполне решаемая • Если захотеть, можно видеть большинство проблем на всех уровнях
  19. 19. Бизнес-логика сайта • Синхронные действия (пользователь ждет) • Асинхронные действия (отложенные) • Действия иницируемые системой (рассылки, биллинг, …)
  20. 20. Как получать метрики • SQL запросы • Запрос в http сервис • Запрос в NoSQL • Размер очереди в *mq • Парсинг логов • Из приложения через statsd
  21. 21. Синхронные действия • Заказ в интернет-магазине • Регистрация нового пользователя • Просмотр статьи • Комментарий • Лайк • …
  22. 22. Синхронные действия • Важно считать количество действий • Если поехала верстка, забыли нужную кнопку – упадет количество целевых действий • Видим, как ведет себя показатель во времени – можем подобрать порог для триггера
  23. 23. Пользователи должны всегда заливать новые видосы
  24. 24. И лайкать чужие
  25. 25. Асинхронные действия В ходе пользовательского запроса решили что-то отложить – положили в очередь • Отправка уведомлений • Процессинг загруженных данных • Пересчет статистики • …
  26. 26. Асинхронные действия • Считаем размер очереди • Считаем ошибки при процессинге • Скорость процессинга (tasks/second) • Считаем время нахождения задач в очереди – алерт, если старшей необработанной задаче больше N минут
  27. 27. Обработка залитых видео
  28. 28. Failed push notifications
  29. 29. Мониторинг доставки почты
  30. 30. Поток доставляемых сообщений
  31. 31. Скорость доставки важной почты
  32. 32. Структура почтового трафика
  33. 33. Хочу тоже все видеть! • Начните с сайта – теперь вы знаете, на что смотреть • Вспомните последние 10-20 инцидентов/багов, влияющих на пользователей • Повторную проблему должно быть видно хотя бы на одном графике
  34. 34. Хочу тоже все видеть! • У метрик должен быть хорошо понятный вам физический смысл • Не страшно, если сначала будет много графиков – лишнее выкинуть не сложно • По самым показательным метрикам сделайте триггеры
  35. 35. Вопросы? Николай Сивко nsv@okmeter.io skype: nikolay.sivko

×