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

Мониторинг качества канала между узлами CDN

Описание

Начиная со сборки 5.3.434, каждый узел CDN автоматически проверяет качество каналов связи с другими узлами. Получая медиа потоки с другого узла CDN, текущий узел проверят счетчики пакетов, вычисляет количество потерь и на этом основании определяет качество канала.

Warning

Качество измеряется только для WebRTC UDP каналов

Метрика качества и статистика отображается в ответе на REST API запрос /rest-api/v3/cdn/show_nodes:

[
  {
    "id": "172.11.0.3",
    "version": "2.17",
    "role": "ORIGIN",
    "inboundConnected": false,
    "outboundConnected": true,
    "globalState": "ACTIVE",
    "processingState": "NEW_STREAMS_ALLOWED",
    "group": "group_A",
    ...,
    "monitorStats": {
      "mediaStats": {
        "packetLostPercent": 0,
        "incomingBitrate": 663328,
        "outgoingBitrate": 0
      },
      "signalingStats": {
        "rtt": 128
      },
      "connectionQuality": "PERFECT"
    }
  },
  ...
]

Здесь:

  • packetLostPercent - процент потерянных медиа пакетов относительно общего числа полученных пакетов
  • incomingBitrate - эффективный входящий битрейт для потоков, получаемых от другого узла
  • outgoingBitrate - эффективный исходящий битрейт, если измеряющий узел отправляет медиа другому узлу
  • rtt - задержка при обмене сигнальными сообщения с данных узлом, в миллисекундах
  • connectionQuality - метрика качества канала

Метрика качества принимает следующие значения:

  • PASSIVE - с данным узлом нет ни сигнального обмена, ни обмена медиа трафиком. Возможно, узел отключен.
  • UNKNOWN - С данного узла не принимается ни одного медиа потока. Качество канала не может быть измерено.
  • BAD - с данного узла принимается поток с потерями более 10 %.
  • GOOD - с данного узла принимается поток с потерями меньше либо равно 10 %.
  • PERFECT - с данного узла принимается поток с потерями менее 5 %.

Метрика качества канала используется при выборе маршрута для проигрывания потоков в CDN. Например, если Edge сервер определил качество канала до Transcoder сервера как BAD, он выберет маршрут получения потока для новых подписчиков через другой Transcoder, если он доступен.

Захват специального потока для тестирования канала между узлами CDN

Качество канала между двумя узлами CDN может быть проверено только в том случае, если с одного узла на другой захватывается медиапоток. Если ни один поток не проходит между узлами в данный момент, качество канала невозможно определить.

Начиная со сборки 5.3.458, каждый узел CDN может захватывать специальный тестовый поток с вышестоящего узла. Это позволяет периодически тестировать качество канала на основе данных о проигрывании потока. Эта возможность включается следующей настройкой

cdn_route_test_enabled=true

В этом случае, узел пытается захватить поток с именем cdn-route-test со всем вышестоящих узлов:

  • Edge и Recorder узлы захватывают тестовый поток со всех Transcoder и Origin узлов в группе
  • Transcoder захватывают тестовый поток со всех Origin узлов в группе

Имя потока задается следующим параметром

cdn_route_test_stream_name=cdn-route-test

По умолчанию, тестовый поток будет захватываться в течение 30 секунд каждую минуту

cdn_route_test_active_duration=30000
cdn_route_test_idle_duration=60000

Следовательно, по умолчанию узел CDN будет проверять каналы со всеми вышестоящими узлами каждые 90 секунд.

Если какой-либо поток уже захватывается данным узлом с вышестоящего узла, то тестовый поток захватываться не будет, поскольку для тестирования канала достаточно хотя бы одного медиапотока между узлами

cdn_route_test_min_streams=1

Все перечисленные выше настройки применяются ко всем узлам CDN, кроме Origin узлов.

Исходный тестовый поток для захвата должен быть опубликован на primary Origin узле в группе

cdn_route_test_publish_enabled=true

Исходный поток может быть синтетическим, сгенерированным из темного экрана и тишины. Также можно использовать обычный медиафайл с аулдио и видео

cdn_route_test_file=/usr/local/FlashphonerWebCallServer/media/test-720p.mp4

Файл должен соответствовать требованиям к VOD источнику.

Параметры публикации исходного потока устанавливаются только на primary Origin узле в группе.