Мониторинг Webim Server через Prometheus
Начиная с версии Webim 10.6, в сервис была добавлена система мониторинга Prometheus. Эта система предоставляет подробные данные о состоянии сервера в режиме реального времени. Prometheus предоставляет большое количество собственных метрик, метрик отдельных библиотек, а также агрегирует метрики компонентов сервиса.
Для получения данных от Prometheus используется эндпоинт /metrics
, доступный из Admin Backend и, при необходимости, Chat Backend.
Включение Prometheus в Chat Backend
Метрики Prometheus для Chat Backend по умолчанию выключены. Для их включения следует указать дополнительный параметр --prometheus_port={port}
при запуске компонента, где {port}
- номер порта, через который можно будет обратиться за метриками.
Для Admin Backend порт 6001
является портом по умолчанию.
Обратиться к эндпоинту можно следующим образом:
curl http://127.0.0.1:6001/metrics
Настройка Prometheus для получения метрик
Для того чтобы Prometheus принимал метрики Admin Backend и/или Chat Backend, Вам необходимо установить его на соответствующем сервере, после чего привести конфигурационный файл prometheus.yml
к следующему виду:
global:
scrape_interval: 15s
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:{Admin/Chat Backend port}']
Запустите Prometheus:
cd {path to prometheus directory}
./prometheus --config.file=prometheus.yml
Панель управления Prometheus по умолчанию доступна по адресу 127.0.0.1:9090
. Вы можете изменить параметры nginx для возможности доступа к панели управления извне локального сервера.
Список кастомных метрик для Webim Server
Ниже приведён список метрик Admin Backend:
Метрика | Тип | Пример | Метки | Описание |
---|---|---|---|---|
uname |
Info |
uname_info{machine="x86_64",nodename="482e03fd6382",release="5.15.0-88-generic",sysname="Linux",version="#98~20.04.1-Ubuntu SMP Mon Oct 9 16:43:45 UTC 2023"} 1.0 |
Системная информация | |
os |
Info |
os_info{id="ubuntu",id_like="debian",name="Ubuntu",pretty_name="Ubuntu 18.04.6 LTS",version="18.04.6 (bionic)",version_codename="bionic",version_id="18.04"} 1.0 |
Информация об операционной системе | |
build |
Info |
build_info{branch="PRE_BUILD_BRANCH",build_at="PRE_VERSION_DATE",revision="PRE_BUILD_REVISION",short_version="10.7",version="10.7.9"} 1.0 |
Информация о сборке | |
run |
Info |
run_info{app_name="admin_backend",env="eta",host="172.195.0.2",port="6001",pretty_app_name="Admin Backend",started_at="2023-11-16 17:42:53 +0300",started_at_ts="1700145773"} 1.0 |
Информация о запущенном инстансе сервиса | |
metric_settings |
Info |
metric_settings_info{set_account_name_label="true"} 1.0 |
Информация о конфигурации метрик Prometheus | |
initialized_accounts |
Counter |
initialized_accounts_total{account_name="dev"} 1.0 |
account_name - имя аккаунта Webim |
Количество инициализированных аккаунтов в пуле БД |
failed_account_initializations |
Counter |
failed_account_initializations_total{account_name="dev"} 5.0 |
account_name - имя аккаунта Webimreason - причина неудачной инициализации аккаунта |
Количество аккаунтов в пуле БД, инициализация которых закончилась неудачно |
abac_policy_evaluations |
Summary |
abac_policy_evaluations_seconds_count{account_name="dev",action_type="access",obj_type="feature",subj_roles="admin",subj_type="agent"} 15.0 |
account_name - имя аккаунта Webimsubj_type - тип субъекта ABACsubj_roles - роли субъекта ABACobj_type - тип объекта ABAC, по отношению к которому применяется правило/политикаaction_type - тип совершаемого над объектом действия |
Время, затраченное на работу с правилом/политикой |
abac_acs_requests |
Summary |
abac_acs_request_seconds_count{account_name="dev",request_type="can"} 244.0 |
account_name - имя аккаунта Webimrequest_type - тип запроса к ABAC |
Время выполнения сервисных запросов к ABAC |
repository_caching_events |
Counter |
repository_caching_events_total{account_name="<none>",cache_type="CachingRepository",event_type="miss",repository_type="AccountRepository"} 1.0 |
account_name - имя аккаунта Webimrepository_type - тип репозиторияcache_type - тип кэшаevent_type - тип события |
Количество кэшированных событий |
Ниже приведён список метрик Chat Backend:
Метрика | Тип | Пример | Метки | Описание |
---|---|---|---|---|
uname |
Info |
uname_info{machine="x86_64",nodename="482e03fd6382",release="5.15.0-88-generic",sysname="Linux",version="#98~20.04.1-Ubuntu SMP Mon Oct 9 16:43:45 UTC 2023"} 1.0 |
Системная информация | |
os |
Info |
os_info{id="ubuntu",id_like="debian",name="Ubuntu",pretty_name="Ubuntu 18.04.6 LTS",version="18.04.6 (bionic)",version_codename="bionic",version_id="18.04"} 1.0 |
Информация об операционной системе | |
build |
Info |
build_info{branch="PRE_BUILD_BRANCH",build_at="PRE_VERSION_DATE",revision="PRE_BUILD_REVISION",short_version="10.7",version="10.7.9"} 1.0 |
Информация о сборке | |
run |
Info |
run_info{app_name="admin_backend",env="eta",host="172.195.0.2",port="6001",pretty_app_name="Admin Backend",started_at="2023-11-16 17:42:53 +0300",started_at_ts="1700145773"} 1.0 |
Информация о запущенном инстансе сервиса | |
timer_working_time_seconds |
Summary |
timer_name - имя таймера |
Суммарное время работы таймера | |
agent_full_updates |
Counter |
account_name - имя аккаунта Webimagent_id - идентификатор оператораmode - режим |
Количество операций fullUpdate |
|
accounts |
Gauge |
Количество аккаунтов Webim на сервере | ||
chats |
Gauge |
account_name - имя аккаунта Webim |
Количество активных чатов | |
visit_sessions |
Gauge |
account_name - имя аккаунта Webim |
Количество сессий посетителей | |
alive_sessions |
Gauge |
account_name - имя аккаунта Webim |
Количество активных сессий посетителей | |
visible_sessions |
Gauge |
account_name - имя аккаунта Webim |
Количество видимых сессий посетителей | |
visited_pages |
Gauge |
account_name - имя аккаунта Webim |
Количество посещённых посетителями страниц | |
alive_visited_pages |
Gauge |
account_name - имя аккаунта Webim |
Количество страниц, посещённых активными посетителями | |
agent_statuses |
Gauge |
account_name - имя аккаунта Webimstatus - идентификатор статуса |
Количество операторов в статусе | |
bg_storager_objects_added |
Counter |
account_name - имя аккаунта Webimstorager_idx - индекс хранилищаobject_class - класс объекта |
Количество объектов, добавленных в хранилище | |
bg_storager_objects_stored |
Counter |
account_name - имя аккаунта Webimstorager_idx - индекс хранилищаobject_class - класс объекта |
Количество объектов, загруженных в хранилище | |
bg_storager_objects_failed |
Gauge |
account_name - имя аккаунта Webimstorager_idx - индекс хранилищаobject_class - класс объекта |
Количество объектов, загрузка которых в хранилище окончилась неудачно |