Мониторинг веб-сервисов?

Привет.

Есть вопрос общего характера о мониторинге веб-сервисов. Для меня это вещь новая, поэтому есть вопросы. Вопрос не о инструментах для мониторинга, а в подходе.
Веб-сервисы - многослойны. У нас есть веб-сервер, приложение(я), база данных, кеширующие сервисы и тд и тп.

Как мониторить каждый из копонент - понятно. Берем удобный инструмент - настраиваем триггеры и алерты. Получаем нотификации. Но в такой случаем мониторинг получается плоским. Нету никаких отношений. При факапе начинает падать куча алертов. Корень проблемы в таком случае понять сложно.

Итого мой вопрос вот в чем. Как смотреть( мониторить ) на свой веб-сервис так, чтобы видеть его так как видет пользователь.
В голову приходят такие общие штуки.
Имеем базвовые графики - общую картинку: отношение RPS + неответы ( 4xx, 5xx ).
Время ответа API.

Поделитесь опытом. Какие еще стандарты де-факто существуют для определия работы живости сервиса.
Спасибо.
  • Вопрос задан
  • 1889 просмотров
Пригласить эксперта
Ответы на вопрос 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Есть такая классная штука, как Sentry. Она позволяет отслеживать практически любые ошибки, как на backend, так и на frontend.
А еще она умеет задать пользовательский контекст, т.е. можно отследить, у каких пользователей проявилась ошибка. Это чрезвычайно удобно.
Обычно, когда падает backend, на frontend тоже что-нибудь отваливается.
А еще sentry умеет breadcrumbs, т.е. вы можете самостоятельно отследить цепочку действий пользователя до возникновения ошибки. Конечно, это требует модификации кода, но результат просто замечательный.

Извините, что я начал с инструмента, но выяснение любых проблем начинается с анализа симптомов/ошибок. Если у вас недостаточно данных об ошибках или сами ошибки не отслеживаются, то будут проблемы.
Если у вас проблемы с временем ответа серверов, то нужно мониторить и профилировать запросы.
Например у вас внезапно растет уровень отказов на какой-то странице. Для этого можно настроить алерт в Google Analytics по резкому увеличению отказов. Далее вы смотрите на мониторинг ответов сервера использующихся на этой странице. Затем получаете, что идет один из вызовов API выполняется дольше обычного. Профилируете его. Смотрите, что идет долгое обращение к БД. Смотрите мониторинг долгих запросов к базе и кореллируете с запросами используемыми в этом API. Находите запрос, делаете EXPLAIN, достраиваете индексы или рефакторите API. Большая часть всех этих процедур требует наличие интеллекта и опыта. А помочь пройти все это сразу может нечто вроде NewRelic.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы