From 99e7b5c9d678fa9ab2ce33134ac6c7c19573cebb Mon Sep 17 00:00:00 2001 From: "nikita.ryabchenko" Date: Wed, 14 Jan 2026 15:49:34 +0300 Subject: [PATCH] docs: add external services monitoring documentation - Add comprehensive user documentation for external services monitoring - Document monitoring configuration, health status, history, and notifications - Include dashboard widget information and availability checks - Add recommendations and troubleshooting tips --- .../user/external-services-monitoring.ru.md | 197 ++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 content/documentation/user/external-services-monitoring.ru.md diff --git a/content/documentation/user/external-services-monitoring.ru.md b/content/documentation/user/external-services-monitoring.ru.md new file mode 100644 index 0000000..196a7b1 --- /dev/null +++ b/content/documentation/user/external-services-monitoring.ru.md @@ -0,0 +1,197 @@ +--- +title: Мониторинг внешних сервисов +menuTitle: Мониторинг внешних сервисов +d8Edition: ee +moduleStatus: experimental +--- + +Мониторинг внешних сервисов — это механизм автоматической проверки доступности и работоспособности внешних сервисов, подключенных к платформе. Система периодически проверяет состояние сервисов и отображает их статус в интерфейсе. + +## Как это работает + +Платформа автоматически выполняет проверки здоровья внешних сервисов по расписанию. Для каждого сервиса можно настроить параметры проверки: URL, метод запроса, ожидаемый статус код, таймаут и другие параметры. + +После каждой проверки система сохраняет результат и обновляет статус здоровья сервиса. Статус может быть: + +- **healthy** — сервис работает корректно и доступен +- **unhealthy** — сервис недоступен или возвращает ошибку +- **unknown** — статус еще не определен (первая проверка не выполнена) + +## Настройка мониторинга + +Настройка мониторинга выполняется в разделе **Администрирование** → **Внешние сервисы** при создании или редактировании внешнего сервиса. + +### Параметры мониторинга + +| Параметр | Описание | Пример | +|----------|----------|--------| +| **Включить мониторинг** | Включает или выключает автоматические проверки здоровья сервиса | Включено | +| **Интервал проверки** | Как часто выполнять проверку здоровья сервиса | `5m`, `1h`, `30s` | +| **Метод запроса** | HTTP метод для проверки здоровья | `GET`, `POST`, `PUT` | +| **Путь для проверки** | Путь на сервере для проверки здоровья | `/health`, `/api/status` | +| **Ожидаемый статус код** | HTTP статус код, который считается успешным | `200`, `201` | +| **Таймаут запроса** | Максимальное время ожидания ответа | `10s`, `30s` | +| **Заголовки** | Дополнительные HTTP заголовки для запроса | `Content-Type: application/json` | +| **Тело запроса** | Тело запроса (для POST/PUT методов) | JSON или YAML формат | + +### Примеры настройки + +**Проверка через GET запрос:** + +- Метод: `GET` +- Путь: `/health` +- Ожидаемый статус код: `200` +- Таймаут: `10s` + +**Проверка через POST запрос:** + +- Метод: `POST` +- Путь: `/api/health/check` +- Ожидаемый статус код: `200` +- Тело запроса: `{"check": true}` +- Заголовки: `Content-Type: application/json` + +### Использование шаблонов + +В заголовках и теле запроса можно использовать шаблоны для подстановки значений: + +- `{{.service.name}}` — название сервиса +- `{{.service.url}}` — URL сервиса +- `{{.status}}` — текущий статус +- `{{.error}}` — текст ошибки +- `{{.responseTime}}` — время ответа + +## Просмотр статуса здоровья + +Статус здоровья внешнего сервиса отображается в нескольких местах: + +### В списке внешних сервисов + +В разделе **Администрирование** → **Внешние сервисы** в таблице сервисов отображается колонка **Статус** с цветовой индикацией: + +- 🟢 Зеленый — сервис работает (healthy) +- 🔴 Красный — сервис недоступен (unhealthy) +- ⚪ Серый — статус не определен (unknown) + +### В карточке сервиса + +При открытии карточки внешнего сервиса отображается подробная информация о статусе здоровья: + +- Текущий статус +- Время последней проверки +- Время последнего успешного ответа +- Время ответа (response time) +- Текст последней ошибки (если есть) + +### История проверок + +В карточке сервиса доступна история последних проверок здоровья. История содержит: + +- Статус каждой проверки +- Время проверки +- Время ответа +- Текст ошибки (если проверка не удалась) + +По умолчанию сохраняются последние 10 записей истории. Количество записей можно настроить в конфигурации платформы. + +## Виджет для дашборда + +Виджет **"Здоровье внешних сервисов"** позволяет отслеживать состояние всех внешних сервисов с включенным мониторингом на дашборде. + +### Информация в виджете + +Виджет отображает: + +- **Сводную статистику** — общее количество сервисов, количество здоровых, нездоровых и с неизвестным статусом +- **Таблицу сервисов** — список всех сервисов с информацией о каждом: + - Название сервиса + - Статус здоровья + - Время ответа + - Время последней проверки + - Описание ошибки (если есть) + +### Настройка виджета + +Виджет поддерживает пагинацию для удобного просмотра большого количества сервисов. Можно выбрать количество записей на странице: 5, 10, 20, 50 или 100. + +## Уведомления + +При изменении статуса здоровья сервиса система может отправлять уведомления. Настройка уведомлений выполняется в конфигурации мониторинга каждого сервиса. + +### Типы уведомлений + +- **Без уведомлений** — уведомления не отправляются +- **Webhook** — отправка уведомления на указанный webhook URL +- **Системное уведомление** — создание системного уведомления в платформе (доступно только администраторам) + +### События для уведомлений + +Уведомления отправляются при следующих событиях: + +- Переход статуса из **healthy** в **unhealthy** — сервис стал недоступен +- Переход статуса из **unhealthy** в **healthy** — сервис восстановился + +### Шаблоны в сообщениях + +В сообщениях уведомлений можно использовать шаблоны: + +- `{{service.name}}` — название сервиса +- `{{service.url}}` — URL сервиса +- `{{status}}` — текущий статус +- `{{error}}` — текст ошибки +- `{{responseTime}}` — время ответа + +**Пример сообщения:** + +``` +Сервис {{.service.name}} ({{.service.url}}) стал недоступен. +Ошибка: {{.error}} +Время ответа: {{.responseTime}}ms +``` + +## Проверка доступности перед использованием + +Платформа автоматически проверяет доступность внешнего сервиса перед его использованием в следующих случаях: + +- **Источники данных** — перед синхронизацией данных из внешнего сервиса +- **Действия** — перед выполнением действия, использующего внешний сервис +- **Виджеты** — перед загрузкой данных в виджет +- **Действия виджетов** — перед выполнением действия виджета + +Если сервис недоступен (статус **unhealthy**), операция будет заблокирована с соответствующим сообщением об ошибке. Это помогает избежать выполнения операций с недоступными сервисами и получать понятные сообщения об ошибках. + +**Важно:** Если мониторинг для сервиса не включен, проверка доступности не выполняется, и сервис может использоваться без ограничений. + +## Рекомендации + +### Настройка интервала проверки + +Выберите интервал проверки в зависимости от критичности сервиса: + +- **Критичные сервисы** — проверка каждые 1-5 минут +- **Важные сервисы** — проверка каждые 15-30 минут +- **Обычные сервисы** — проверка каждый час или реже + +### Настройка таймаута + +Установите таймаут запроса с учетом нормального времени ответа сервиса: + +- Для быстрых сервисов — 5-10 секунд +- Для медленных сервисов — 30-60 секунд + +### Использование health check endpoints + +Рекомендуется использовать специальные endpoints для проверки здоровья (например, `/health`, `/api/status`), которые: + +- Быстро отвечают +- Не требуют авторизации или используют минимальные права +- Не создают нагрузку на сервис + +### Мониторинг критичных сервисов + +Для критичных сервисов рекомендуется: + +- Включить уведомления о проблемах +- Установить короткий интервал проверки +- Настроить системные уведомления для администраторов +