В целях организации мониторинга, в сервисах SFU и Audiohub реализован механизм предоставления метрик работы. Метрики — это количественные показатели, которые позволяют оценить качество работы сервисов и нагрузку на них.
В этой статье описаны метрики, которые могут помочь администратору построить локальный мониторинг гибридных медиасервисов DION.
Метрики предоставляются приложениями в формате Prometheus, и получить их можно с помощью HTTP-запроса к определенным endpoint.
Адреса для обращений за метриками указаны в таблице. Поле <IP или FQDN> требуется заменить на IP-адрес или FQDN сервера, на котором развернут сервис (media-сервер).
| Сервис | Endpoint |
|---|---|
| SFU | http://<IP или FQDN>:8016/metrics |
| Audiohub | http://<IP или FQDN>:8019/metrics |
Метрики в Prometheus имеют следующую структуру:
1. Имя метрики: уникальное имя, которое идентифицирует метрику (например, active_cameras_count).
2. Лейблы (Labels): ключ-значение пары, которые добавляют дополнительную информацию к метрике. Лейблы упрощают фильтрацию и агрегацию.
3. Значение: числовое значение метрики, которое может быть целым или числом с плавающей точкой.
ID конференции генерируется при создании конференции и не меняется, в панели администрирования можно увидеть его в разделе Конференции, выбрав одну из уже созданных конференций:

IP-адрес пользователя, подключившегося к конференции. Увидеть его также можно в разделе Конференции, выбрав нужную конференцию (1). При нажатии на имя участника, справа отобразится информационная панель, в которой будет показан IP-адрес (2):

ID организации генерируется при создании организации в DION и не меняется. Выдается командой DION вместе с сертификатами перед начальным конфигурированием гибридных сервисов. Увидеть ID своей организации можно также в панели администрирования:

ID пользователя DION. Генерируется при создании пользователя и не меняется для конкретного пользователя. Увидеть его можно в панели администрирования в разделе Пользователи, выбрав нужного пользователя:

ID сессии участника. Это значение уникальное и генерируется при каждом новом подключении; в административной панели ID сессий не отображаются.
| Метрика | Лейблы | Значение |
|---|---|---|
| active_cameras_count{event_id="00000000-0000-0000-0000-000000000000"} | event_id — ID конференции. | Количество включённых камер в конференции. |
| active_microphones_count{event_id="00000000-0000-0000-0000-000000000000"} | event_id — ID конференции. | Количество включённых микрофонов в конференции. |
| screen_sharing_status{event_id="00000000-0000-0000-0000-000000000000"} | event_id — ID конференции. |
Индикатор запущенной демонстрации контента в конференции. Может принимать два значения:
|
| sfu_events_count{event_id="00000000-0000-0000-0000-000000000000",organization="00000000-0000-0000-0000-000000000000"} | event_id — ID конференции. | Количество участников в конференции. |
| organization — ID организации. | ||
| sfu_jitter_audio_ms{event_id="00000000-0000-0000-0000-000000000000",remote_ip="0.0.0.0",session_id="00000000-0000-0000-0000-000000000000",user_id="00000000-0000-0000-0000-000000000000"} | event_id — ID конференции. | Задержка в передаче аудиопотока, исходящего от пользователя к медиасерверу, в данный момент времени в миллисекундах. |
| remote_ip — адрес, с которого участник подключился к SFU. | ||
| session_id — ID сессии участника. Значение уникальное и генерируется при каждом новом подключении. | ||
| user_id — ID пользователя DION. | ||
| sfu_jitter_camera_ms{event_id="00000000-0000-0000-0000-000000000000",remote_ip="0.0.0.0",session_id="00000000-0000-0000-0000-000000000000",user_id="00000000-0000-0000-0000-000000000000"} | event_id — ID конференции. | Задержка в передаче видеопотока с камеры, исходящего от пользователя к медиасерверу, в данный момент времени в миллисекундах. |
| remote_ip — адрес, с которого участник подключился к SFU. | ||
| session_id — ID сессии участника. Значение уникальное и генерируется при каждом новом подключении. | ||
| user_id — ID пользователя DION. | ||
| sfu_jitter_content_ms{event_id="00000000-0000-0000-0000-000000000000",remote_ip="0.0.0.0",session_id="00000000-0000-0000-0000-000000000000",user_id="00000000-0000-0000-0000-000000000000"} | event_id — ID конференции. | Задержка в передаче видеопотока демонстрации, исходящего от пользователя к медиасерверу, в данный момент времени в миллисекундах. |
| remote_ip — адрес, с которого участник подключился к SFU. | ||
| session_id — ID сессии участника. Значение уникальное, генерируется при каждом новом подключении. | ||
| user_id — ID пользователя DION. | ||
| sfu_packet_loss_percent{event_id="00000000-0000-0000-0000-000000000000",remote_ip="0.0.0.0",session_id="00000000-0000-0000-0000-000000000000",user_id="00000000-0000-0000-0000-000000000000"} | event_id — ID конференции. | Средний процент потерь в потоках (аудио, видео, демонстрация контента), исходящих от клиента в данный момент времени. |
| remote_ip — адрес, с которого участник подключился к SFU. | ||
| session_id — ID сессии участника. Значение уникальное и генерируется при каждом новом подключении. | ||
| user_id — ID пользователя DION. | ||
| sfu_round_trip_time_audio_ms{event_id="00000000-0000-0000-0000-000000000000",remote_ip="0.0.0.0",session_id="00000000-0000-0000-0000-000000000000",user_id="00000000-0000-0000-0000-000000000000"} | event_id — ID конференции. | Время в миллисекундах, за которое пользователь получает исходящий с медиасервера UDP-трафик. |
| remote_ip — адрес, с которого участник подключился к SFU. | ||
| session_id — ID сессии участника. Значение уникальное и генерируется при каждом новом подключении. | ||
| user_id — ID пользователя DION. | ||
| sfu_request_processing_time_ms_bucket |
Время выполнения GRPC-запросов сервером в миллисекундах. Нормальным значением для 95-го перцентиля считается ≤1000 мс, предельным значением считается <5000 мс. |
| Метрика | Лейблы | Значение | |
|---|---|---|---|
| audiohub_events_count{event_id="00000000-0000-0000-0000-000000000000",organization="00000000-0000-0000-0000-000000000000"} | event_id — ID конференции. | Количество участников в конференции. | |
| organization — ID организации. | |||
| audiohub_request_processing_time_ms_bucket |
Время выполнения GRPC-запросов сервером в миллисекундах. Нормальным значением для 95-го перцентиля считается ≤1000 мс, предельным значением считается <5000 мс |
||
| Audiohub_mic_online{event_id="00000000-0000-0000-0000-000000000000",organization="00000000-0000-0000-0000-000000000000"} | event_id — ID конференции. | Количество включенных микрофонов в конференции. | |
| organization — ID организации. |