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

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

Apr 11, 2017

Download

Engineering

Nikolay Sivko
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Мониторинг качества работы вашего проекта

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

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

План

• Работает ли сайт

• Работает ли бизнес функционал

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

Работает ли сайт

• Внешние регулярные проверки (http check)

• Анализ логов

• Real User Monitoring (RUM – метрики из браузеров пользователей)

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

Внешние проверки сайта

• Покрывают не все страницы• Не позволяют хорошо замерить время

ответа• Пропускают проблемы

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

Логи nginx

• Есть все запросы реальных пользователей

• Можно посчитать за период, сколько было ошибок

• Добавляем в лог время ответа – видим как быстро отвечали пользователям

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

Время ответа: квантиль

• Сильно лучше чем среднее :)

• Непонятно, как корректно объединять (например при сборе с нескольких серверов)

• Примерно понятен физический смысл, но не отвечает на все вопросы

• Если Q95 выросла с 500ms до 5s, сколько пользователей это затронуло?

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

Время ответа: гистограмма

• Очень понятный физический смысл

• Удобно объединять: просто сумма одинаковых бакетов

• Нужно сразу выбрать пороги

• Есть способ делать гистограмму не выбирая заранее пороги, но он дорогой

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

Нас интересует

• Сколько было запросов: как обычно/больше/меньше

• Сколько было ошибок

• Времена ответов: на сколько масштабны были тормоза

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

Упихиваем ответы на 1 график

Гистограмма времени ответа + ошибки

• быстро (<500ms)• терпимо (500ms-1s)• медленно (>1s)• HTTP-5xx

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

“Светофор”

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

логи VS пробы

• Пробы: 5 основных страниц раз в минуту с таймаутом 4s

• Триггеры по метрикам из лога nginx: > 20 ошибок в секунду (при ~600rps) Q95 > 4sUptime: пробы: 99.80% (9 минут за 30 дней) логи: 98.86% (7ч 29 минут за 30 дней)

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

Rеal User Monitoring

• На страницу ставится JS, который отстреливает статистику загрузки страницы на сервер

• Очень полезен в мониторинге производительности client-side логики

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

RUM

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

Отстреливаем свои события

• Загрузка видео + рекламы в плеер

• Считаем, сколько пользователь смотрел видео

• Загрузка и работа ваших JS компонентов

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

Мониторинг доставки видео

• Скорость загрузки (качество работы CDN)

• Ошибки загрузки

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

Скорость загрузки видео

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

Ошибки загрузки видео

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

Так работает ли сайт?

• Правильно замониторить сайт – достаточно большая задача

• Но вполне решаемая

• Если захотеть, можно видеть большинство проблем на всех уровнях

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

Бизнес-логика сайта

• Синхронные действия (пользователь ждет)

• Асинхронные действия (отложенные)

• Действия иницируемые системой (рассылки, биллинг, …)

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

Как получать метрики

• SQL запросы• Запрос в http сервис• Запрос в NoSQL• Размер очереди в *mq• Парсинг логов• Из приложения через statsd

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

Синхронные действия

• Заказ в интернет-магазине• Регистрация нового пользователя• Просмотр статьи• Комментарий• Лайк• …

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

Синхронные действия

• Важно считать количество действий

• Если поехала верстка, забыли нужную кнопку – упадет количество целевых действий

• Видим, как ведет себя показатель во времени – можем подобрать порог для триггера

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

Пользователи должны всегда заливать новые видосы

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

И лайкать чужие

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

Асинхронные действия

В ходе пользовательского запроса решили что-то отложить – положили в очередь

• Отправка уведомлений• Процессинг загруженных данных• Пересчет статистики• …

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

Асинхронные действия

• Считаем размер очереди

• Считаем ошибки при процессинге

• Скорость процессинга (tasks/second)

• Считаем время нахождения задач в очереди – алерт, если старшей необработанной задаче больше N минут

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

Обработка залитых видео

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

Failed push notifications

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

Мониторинг доставки почты

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

Поток доставляемых сообщений

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

Скорость доставки важной почты

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

Структура почтового трафика

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

Хочу тоже все видеть!

• Начните с сайта – теперь вы знаете, на что смотреть

• Вспомните последние 10-20 инцидентов/багов, влияющих на пользователей

• Повторную проблему должно быть видно хотя бы на одном графике

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

Хочу тоже все видеть!

• У метрик должен быть хорошо понятный вам физический смысл

• Не страшно, если сначала будет много графиков – лишнее выкинуть не сложно

• По самым показательным метрикам сделайте триггеры

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

Вопросы?

Николай Сивко[email protected]: nikolay.sivko