Доступные метрики
WCS передает для сбора следующие характеристики потоков:
Метрика | Идентификатор | Описание |
VIDEO_HEIGHT | 2 | Высота видео |
VIDEO_WIDTH | 3 | Ширина видео |
VIDEO_RATE | 4 | Битрейт видео |
VIDEO_SYNC | 5 | Синхронизация видео |
VIDEO_FPS | 6 | Частота кадров видео |
VIDEO_NACK | 7 | Количество NACK-запросов |
VIDEO_PLI | 8 | Количество PLI-пакетов |
VIDEO_CODEC | 9 | Видеокодек |
AUDIO_SYNC | 10 | Синхронизация аудио |
AUDIO_RATE | 11 | Битрейт аудио |
AUDIO_LOST | 12 | Количество потерянных пакетов аудио |
AUDIO_CODEC | 13 | Аудиокодек |
VIDEO_B_FRAMES | 16 | Количество B-фреймов в потоке |
VIDEO_K_FRAMES | 17 | Количество K-фреймов в потоке |
VIDEO_P_FRAMES | 18 | Количество P-фреймов в потоке |
Список доступных метрик может быть получен при помощи запроса /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 Object 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 – идентификатор метрики.
- name - название метрики
- note - примечание
- enumName - мнемонический идентификатор метрики
Если в запросе указан идентификатор метрики, ответ будет содержать информацию только об этой метрике. Если идентификатор не указан, ответ будет содержать список всех метрик.
Организация сбора метрик
Для сбора с конкретных узлов метрики объединяются в профили, каждый содержит определенный набор метрик и частоту их сбора. Для профиля могут быть заданы несколько правил сбора метрик, которые применяются к потоку на узле.
К одному узлу (экземпляру 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