Skip to content
Эта страница переведена с помощью ИИ и может содержать неточности. Помогите улучшить перевод на GitHub.

Производительность ​

Раздел «Производительность» собирает на одной странице данные хоста, процесса Gately и всех сайтов и отправляет оповещение через Центр уведомлений, когда метрика долго держится выше порога, а затем — уведомление о восстановлении, когда условие снимается. Он находится на боковой панели: Система → Производительность.

Раздел рассчитан на случаи вроде ЦП, загруженного под завязку посреди ночи, всплеска соединений на сайте или замедлившегося бэкенда, который никто не заметил; данные хранятся только в памяти. Для истории дольше 24 часов, сводки по нескольким экземплярам и сложных запросов используйте Prometheus и Grafana.

Панель ​

В правом верхнем углу переключаются диапазоны 60 секунд, 1 час и 24 часа.

Хост и процесс Gately ​

ГрафикСодержимое
ЦП хостаСредняя загрузка всех ядер машины
Память / диск хостаДоля занятой памяти от физической (без освобождаемого кэша), занятая доля раздела с каталогом конфигурации
Нагрузка системыНагрузка за 1 минуту
ЦП процесса GatelyДоля всей машины, которую занимает процесс Gately; считается так же, как ЦП хоста
Память процесса GatelyРезидентная память (МБ)
Файловые дескрипторы / горутиныОткрытые файловые дескрипторы и горутины Go процесса

Замер делается каждые 5 секунд: в диапазоне 60 секунд показан каждый замер, в диапазоне 1 час — одна точка в минуту (среднее за минуту), в диапазоне 24 часа — одна точка за 5 минут. Пунктир на графиках ЦП — пик внутри каждой точки, поэтому короткие всплески не растворяются в среднем. Наведите курсор на график, чтобы увидеть значения в нужный момент.

Некоторые платформы отдают не все метрики (например, на macOS нет загрузки ЦП); такие графики показывают «Нет данных».

Сайты ​

При включённом модуле «Веб-службы» выводятся все работающие сайты (включая сайты по умолчанию):

СтолбецЗначение
В обработкеЗапросы, которые сайт обрабатывает прямо сейчас, включая долгие соединения вроде WebSocket
Запросов/сСреднее число запросов в секунду примерно за последние 60 секунд
Доля 5xxДоля ответов 5xx среди завершённых ответов примерно за последние 60 секунд
Задержка P95Оценка 95-го процентиля времени до первого байта примерно за последние 60 секунд
БэкендыИсправные бэкенды / все бэкенды и число пересылаемых соединений

Нажмите на сайт, чтобы открыть его статистику с динамикой запросов, ошибок и задержки за 24 часа.

Время до первого байта ​

Задержка — это «время до первого байта»: от прихода запроса до отправки заголовков ответа; оно показывает, насколько быстро отвечает бэкенд или сам сайт. Не учитываются:

  • время передачи тела ответа (большие загрузки не увеличивают задержку);
  • WebSocket и другие запросы со сменой протокола;
  • запросы, оборванные контролем доступа или администратором.

Каждый запрос попадает в один из 50 узких интервалов (от 1 мс до 60 с, соседние различаются примерно на 10–25 %). В каждом интервале накапливаются число запросов и суммарное время; процентиль берётся как среднее время в соответствующем интервале, поэтому ошибка не превышает ширины интервала, а данные отдельных запросов не сохраняются. Гистограмма gately_site_request_duration_seconds, экспортируемая в Prometheus, использует 13 привычных границ из этого набора.

Правила оповещений ​

Нажмите «Добавить правило оповещения». При создании шаблон заполняет типичное правило (высокая загрузка ЦП хоста, мало места на диске, ошибки 5xx на сайте, медленные ответы сайта и др.), которое затем можно поправить.

ПолеОписание
НазваниеОбязательно, до 64 символов, выводится в заголовке уведомления
МетрикаСм. таблицу ниже
ПорогОператор >, >=, < или <= и значение; единица зависит от метрики
ДлительностьОт 1 до 1440 минут. Оповещение отправляется, только если условие держится столько времени; одно возвращение ниже порога перезапускает отсчёт
СайтыДля метрик сайтов и узлов бэкенда; пусто — все сайты
Минимум запросовДля доли 5xx и задержки, по умолчанию 20. Проверка не выполняется, пока за последние ~60 секунд запросов меньше, чтобы одна-две ошибки или медленных запроса на тихом сайте не вызывали оповещение
Уровень оповещенияПредупреждение или ошибка; задаёт уровень события уведомления
Заметка, включениеНеобязательно
МетрикаЕдиницаПроверяется для
Загрузка ЦП хоста%Этот хост
Использование памяти хоста%Этот хост
Заполненность диска хоста (раздел с каталогом конфигурации)%Этот хост
Загрузка ЦП процессом Gately%Процесс Gately
Резидентная память процесса GatelyМБПроцесс Gately
Запросы сайта в обработкешт.Каждый сайт
Запросов в секунду на сайтезапр/сКаждый сайт
Доля ответов 5xx на сайте%Каждый сайт
Время до первого байта P95 на сайтемсКаждый сайт
Соединения узла бэкендашт.Каждый узел бэкенда

Метрики сайтов и узлов бэкенда проверяются и оповещаются по каждому объекту отдельно: одно правило «доля 5xx > 5 %» может отдельно сработать для двух сайтов. «Запросов в секунду на сайте < 1» позволяет заметить внезапно пропавший трафик.

Проверка и уведомления ​

  1. Все включённые правила проверяются каждые 5 секунд.
  2. Когда условие начинает выполняться, объект переходит в «Ожидание»; если оно держится заданное время, объект переходит в «Сработало» и публикуется событие perf.alert.
  3. Когда условие сработавшего оповещения снимается, публикуется событие perf.recovered. Долю 5xx и задержку сайта нельзя оценить, если за последние ~60 секунд слишком мало запросов; это тоже считается снятием, и уведомление об этом сообщает.
  4. Если сайт удалён или выключен, его оповещения исчезают без уведомления о восстановлении.

Вверху страницы перечислены объекты в ожидании и сработавшие, с текущим значением и длительностью.

Изменение названия, уровня или заметки правила сохраняет текущий отсчёт; изменение метрики, порога, длительности, сайтов или минимума запросов, а также выключение правила сбрасывает его отсчёты и оповещения. Для уже сработавшего оповещения отправляется уведомление о восстановлении с пометкой, что правило удалено, отключено или изменено. Отсчёты и состояния оповещений хранятся только в памяти и начинаются заново после перезапуска.

Оповещения отправляются через Центр уведомлений: добавьте правило уведомлений, подписанное на «Производительность: оповещение сработало» и «Производительность: оповещение снято» (это делает шаблон «Оповещения о производительности»), иначе оповещения записываются только в журнал этой страницы, и страница показывает подсказку. Тишина Центра уведомлений действует и на оповещения о производительности; у каждого объекта свой источник события, поэтому они не глушат друг друга. Длительность уже защищает от дребезга, так что тишина обычно не нужна.

Ресурсы и ограничения ​

  • История хранится только в памяти: для хоста и процесса — одна точка в минуту за 24 часа; для задержки сайтов — P50 и P95 за каждую минуту, около 23 КБ на сайт с трафиком.
  • До 200 правил оповещений и до 200 сайтов в одном правиле.
  • При включённом модуле «Веб-службы» каждый запрос стоит одно дополнительное чтение часов и несколько обновлений счётчиков.

Метрики мониторинга ​

Пока раздел «Производительность» включён, /api/metrics дополнительно экспортирует метрики хоста и процесса по последнему замеру и число сработавших оповещений по правилам; см. Мониторинг.

API ​

ЭндпоинтОписание
GET /api/perf/overview?range=60s|1h|24hИстория хоста и процесса
GET /api/perf/sitesМетрики каждого сайта примерно за последние 60 секунд
GET /api/perf/alertsОбъекты в ожидании и сработавшие
GET /api/perf/metricsМетрики, доступные для оповещений
/api/perf/rulesСоздание, чтение, изменение и удаление правил оповещений, включение, порядок и группы

Для чтения нужно право perf:read, для изменения правил — perf:write; см. API-токены.

Распространяется по лицензии Apache-2.0.