O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

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

587 visualizações

Publicada em

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

Publicada em: Engenharia
  • Entre para ver os comentários

  • Seja a primeira pessoa a gostar disto

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

  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

×