Опишите основные метрики для мониторинга веб-сервиса.

Ответ

Для комплексного мониторинга сервиса обычно используют комбинацию технических и бизнес-метрик, часто опираясь на устоявшиеся методологии, такие как RED и USE.

Методология RED (Rate, Errors, Duration) — для мониторинга запросов:

  1. Rate (Интенсивность)
    • Количество запросов в секунду (RPS/QPS). Показывает текущую нагрузку на сервис.
  2. Errors (Ошибки)
    • Процент ошибочных запросов (обычно с кодами 5xx) от общего числа. Ключевой показатель здоровья сервиса.
  3. Duration (Длительность)
    • Время ответа на запрос. Важно отслеживать не среднее значение, а персентили: p50 (медиана), p90, p99, p999. Это помогает выявлять проблемы у части пользователей.

Методология USE (Utilization, Saturation, Errors) — для мониторинга ресурсов:

  1. Utilization (Утилизация)
    • Загрузка CPU, использование RAM, дискового I/O. Показывает, насколько интенсивно используются ресурсы сервера.
  2. Saturation (Насыщение)
    • Длина очередей, задержки при выделении ресурсов. Сигнализирует о том, что система приближается к своему пределу производительности.
  3. Errors (Ошибки)
    • Счётчики ошибок на уровне системы: ошибки сети, дисковые ошибки и т.д.

Специфичные для Go метрики:

  • Количество горутин: Аномальный рост может указывать на утечки горутин.
  • Статистика сборщика мусора (GC): Частота и длительность пауз GC.

Бизнес-метрики:

  • Количество регистраций, успешных транзакций, активных пользователей. Связывают техническое состояние сервиса с бизнес-показателями.

Инструменты:

  • Сбор: Prometheus, VictoriaMetrics.
  • Визуализация: Grafana.
  • Алертинг: Alertmanager.

Ответ 18+ 🔞

Да ты посмотри, какая красота! Сидит себе программист, вроде всё работает, а потом — бац! — и сервис лег, как опозоренный пьяница на гололёде. А всё почему? Потому что мониторили хуй пойми что, а не то, что надо.

Так вот, слушай сюда, чтобы такого позора не было, умные дядьки придумали две простые, как три рубля, методологии. Запоминай, а то потом будешь руками разводить.

Первая — RED. Это не цвет, а про запросы.

  1. Rate (Скорость). Проще говоря, сколько раз в секунду твой сервис пиздюлей получает. Запросы в секунду (RPS). Если эта цифра упала в ноль — всем пизда, сервис сдох. Если выросла до небес — скоро сдохнет. Всё просто.
  2. Errors (Ошибки). Ну тут вообще элементарно. Какой процент ответов — сплошное «пошёл нахуй» (то бишь 5xx ошибки)? Если больше нуля — уже плохо. Если растёт — совсем пиздец, надо бежать и тушить.
  3. Duration (Длительность). А вот это, сука, самое интересное. Не надо смотреть на среднюю скорость ответа. Это как измерять среднюю температуру по больнице: у одного +40, у другого труп, в среднем +20 — норм! Хуй там! Смотри на перцентили. p50 — это медиана, половина запросов быстрее. Но тебя должен волновать p99 — это самые медленные, долбаные 1% запросов, которые у какого-нибудь бедолаги грузятся полминуты, а он уже всю клавиатуру об сраку разбил. Вот за ними и следи.

Вторая — USE. Это уже про железо, про ресурсы.

  1. Utilization (Утилизация). Насколько проца загружен, сколько памяти сожрали. Если CPU на 95% — это как жопа перед диареей, тревожно.
  2. Saturation (Насыщение). Очереди, блядь! Сколько процессов ждут, пока им CPU дадут, или сколько операций ввода-вывода в очереди. Если очередь растёт — система уже не тянет, она насытилась, как обжора после третьей порции пельменей. Скоро блеванёт.
  3. Errors (Ошибки). Опять они, твои лучшие друзья. Только теперь системные: диск отвалился, сетевая карта задымилась. Счётчики таких ошибок.

А теперь, внимание, специфика для Go, наш любимый язык!

Тут свои подводные ебланы.

  • Горутины. Считай их, считай как сумасшедший. Если их число растёт, а работать некому — это утечка, они как тараканы плодятся. Закончится память — и привет.
  • Сборщик мусора (GC). Эта сволочь может всё испортить. Смотри, как часто он работает и сколько времени на это тратит. Если он начинает судорожно дрочить каждую секунду — пиши пропало, производительность на дне.

И, наконец, бизнес-метрики. А то технари забудут, зачем всё это. Сколько пользователей зашло, сколько денег заплатило, сколько форм отправило. Если RPS в норме, а платежи упали — значит, где-то в логике жопа, а ты и не видишь!

Чем всё это смотреть?

  • Собирать: Prometheus (классика), VictoriaMetrics (шустрая).
  • Рисовать графики: Grafana. Без неё — как без глаз.
  • Кричать, когда всё плохо: Alertmanager. Он будет орать тебе в ухо, пока ты не проснёшься.

Вот и вся магия. Не усложняй, блядь. Следи за этими базовыми вещами, и есть шанс, что тебя не разбудят среди ночи криками «ВСЁ УПАЛО!». Хотя... кто я такой, чтобы обещать.