ES Storager
ES Storager — микросервис, который переносит и подготавливает аналитические данные Webim для хранения во внешних хранилищах и использования в отчётах/аналитике. Сервис работает по модели «чтение → преобразование → запись» и не изменяет исходные данные в основных базах Webim.
Функции
Сервис обладает следующими функциями:
-
Перенос данных из Webim во внешние хранилища для аналитики
-
Обновление данных по мере поступления новых событий
-
Публикация технических метрик для мониторинга
-
Предоставление эндпоинтов для проверки состояния сервиса
Сетевые требования
Сервис предоставляет HTTP-эндпоинты для мониторинга и проверки состояния. Порт задаётся переменными окружения (значения по умолчанию следует уточнять по .env сервиса).
Метрики доступны по пути /metrics.
Проверка состояния доступна по пути /health (если включена в поставке/конфигурации сервиса).
Для hosted-клиентов необходимо открыть следующие порты и направления для узла с сервисом.
| Направление | Назначение | Порт/протокол | Примечание |
|---|---|---|---|
| Входящие | HTTP-эндпоинты сервиса | порт сервиса (по умолчанию 8000/tcp) | Для доступа к /metrics и /health. |
| Исходящие | Бэкенд Webim | 443/tcp | Для получения данных и служебных запросов. |
| Исходящие | Кэш | порт кэша | Если используется внешний кэш (рекомендуется при масштабировании). |
| Исходящие | Внешние хранилища аналитики | порты хранилищ | Для записи аналитических данных. |
| Исходящие | Очередь/брокер сообщений | порт брокера | Если в вашей схеме сервис получает задания/события через брокер. |
Переменные окружения
Сервис настраивается через файл .env. Ниже приведены параметры, которые требуется задать hosted-клиентам (точный набор зависит от поставки и схемы развёртывания):
| Переменная | Назначение |
|---|---|
STATS_WEB_PORT (или аналог) |
Порт HTTP-endpoints сервиса (/metrics, /health). |
REDIS_CACHE_LOCATION (или аналог) |
Строка подключения к кэшу (если используется). |
<BACKEND_URL> (или аналог) |
Базовый адрес бэкенда Webim для запросов сервиса. |
<STORAGE_URLS> (или аналог) |
Адреса внешних хранилищ аналитики. |
<BROKER_URL> (или аналог) |
Адрес брокера/очереди сообщений (если используется). |
SENTRY_DSN (опционально) |
Отправка ошибок в систему сбора ошибок. |
Масштабирование и отказоустойчивость
Сервис может быть развернут в нескольких экземплярах за балансировщиком (если это предусмотрено вашей схемой). При горизонтальном масштабировании рекомендуется использовать общий внешний кэш для согласованной работы экземпляров.
Логирование и мониторинг
Логи приложения пишутся в стандартный вывод процесса.
Технические метрики доступны на /metrics и могут быть собраны системой мониторинга. Для контроля доступности рекомендуется настроить проверку /health (если эндпоинт включён).
ES Storager обеспечивает перенос и подготовку аналитических данных Webim во внешние хранилища и предоставляет эндпоинты для мониторинга и контроля состояния.