Доступные метрики
WCS передает для сбора следующие характеристики потоков:
Метрика | Идентификатор | Описание |
VIDEO_HEIGHT | 1 | Высота видео |
VIDEO_WIDTH | 2 | Ширина видео |
VIDEO_RATE | 3 | Битрейт видео |
VIDEO_SYNC | 4 | Синхронизация видео |
VIDEO_FPS | 5 | Частота кадров видео |
VIDEO_NACK | 6 | Количество NACK-запросов |
VIDEO_PLI | 7 | Количество PLI-пакетов |
VIDEO_CODEC | 8 | Видеокодек |
AUDIO_SYNC | 9 | Синхронизация аудио |
AUDIO_RATE | 10 | Битрейт аудио |
AUDIO_LOST | 11 | Количество потерянных пакетов аудио |
AUDIO_CODEC | 12 | Аудиокодек |
Список доступных метрик может быть получен при помощи запроса /api/metric/list:
API | Request | Response | Response status |
---|---|---|---|
WS API | SEND destination:/app/api/metric/list content-length:100 {"requestId":"eb2c2807-8c2f-4418-aebe-03622404e4bb","realm":"/api/metric/list","payload":{"id":"3"}} | MESSAGE destination:/user/service content-type:application/json;charset=UTF-8 subscription:sub-1 message-id:3-8 content-length:159 {"requestId":"eb2c2807-8c2f-4418-aebe-03622404e4bb","status":200,"reason":"SUCCESS","payload":[{"id":3,"name":"Video rate","note":"","enumName":"VIDEO_RATE"}]} | 200 OK 400 Obkect not found 500 Persist exception |
REST API | POST: /api/metric/list "application/json; charset=utf-8" {"id":"3"} | { "status": 200, "reason": "SUCCESS", "payload": [ { "id": 3, "name": "Video rate", "note": "", "enumName": "VIDEO_RATE" } ] } | 200 OK 400 Obkect not found 500 Persist exception |
Здесь:
- id – идентификатор метрики.
Организация сбора метрик
Для сбора с конкретных узлов метрики объединяются в профили, каждый содержит определенный набор метрик и частоту их сбора. Для профиля могут быть заданы несколько правил сбора метрик, которые применяются к потоку на узле.
К одному узлу (экземпляру WCS) могут быть применены несколько профилей. В этом случае наборы метрик и правила, применяемые к потокам на узле, указанные в профилях, суммируются, а частота сбора метрики берется минимальная из указанных для одной и той же метрики. Рассмотрим пример:
1. К узлу test1.flasphoner.com применяются профили profile1 и profile2
2. profile1 включает:
- метрики VIDEO_RATE, VIDEO_FPS, собираемые с частотой 5
- правило
Stream name == stream1
3. profile2 включает:
- метрики VIDEO_RATE, AUDIO_RATE, собираемые с частотой 10
- правило
Stream name == stream1
В результате для потока stream1 на узле test1.flashphoner com будут собраны срезы метрик:
- VIDEO_RATE с частотой 5
- VIDEO_FPS с частотой 5
- AUDIO_RATE с частотой 10