Перейти к содержанию

Получение данных от WCS

Доступные метрики

WCS передает для сбора следующие характеристики потоков:

Metric Id Description
VIDEO_HEIGHT 2 Video height
VIDEO_WIDTH 3 Video width
VIDEO_RATE 4 Video bitrate, bps
VIDEO_SYNC 5 Video synchronization
VIDEO_FPS 6 Video frame rate per second
VIDEO_NACK 7 NACK requests count
VIDEO_PLI 8 PLI packets count
VIDEO_CODEC 9 Video codec
AUDIO_SYNC 10 Audio synchronization
AUDIO_RATE 11 Audio bitrate
AUDIO_LOST 12 Lost audio packets count
AUDIO_CODEC 13 Audio codec
VIDEO_B_FRAMES 16 B-frames count in the stream
VIDEO_K_FRAMES 17 K-frames count in the stream
VIDEO_P_FRAMES 18 P-frames count in the stream

Список доступных метрик может быть получен при помощи запроса /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 Object not found 500 Persist exception

Здесь:

  • id – идентификатор метрики.
  • name - название метрики
  • note - примечание
  • enumName - мнемонический идентификатор метрики

Если в запросе указан идентификатор метрики, ответ будет содержать информацию только об этой метрике. Если идентификатор не указан, ответ будет содержать список всех метрик.

Организация сбора метрик

Для сбора с конкретных узлов метрики объединяются в профили, каждый содержит определенный набор метрик и частоту их сбора. Для профиля могут быть заданы несколько правил сбора метрик, которые применяются к потоку на узле.

К одному узлу (экземпляру WCS) могут быть применены несколько профилей. В этом случае наборы метрик и правила, применяемые к потокам на узле, указанные в профилях, суммируются, а частота сбора метрики берется минимальная из указанных для одной и той же метрики. Рассмотрим пример:

  1. К узлу test1.flasphoner.com применяются профили profile1 и profile2

  2. profile1 включает:

  3. метрики VIDEO_RATE, VIDEO_FPS, собираемые с частотой 5
  4. правило Stream name == stream1

  5. profile2 включает:

  6. метрики VIDEO_RATE, AUDIO_RATE, собираемые с частотой 10
  7. правило Stream name == stream1

В результате для потока stream1 на узле test1.flashphoner com будут собраны срезы метрик:

  • VIDEO_RATE с частотой 5
  • VIDEO_FPS с частотой 5
  • AUDIO_RATE с частотой 10