Мониторинг качества канала между узлами 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 со всем вышестоящих узлов:
- Edge и Recorder узлы захватывают тестовый поток со всех Transcoder и Origin узлов в группе
- Transcoder захватывают тестовый поток со всех Origin узлов в группе
Имя потока задается следующим параметром
По умолчанию, тестовый поток будет захватываться в течение 30 секунд каждую минуту
Следовательно, по умолчанию узел CDN будет проверять каналы со всеми вышестоящими узлами каждые 90 секунд.
Если какой-либо поток уже захватывается данным узлом с вышестоящего узла, то тестовый поток захватываться не будет, поскольку для тестирования канала достаточно хотя бы одного медиапотока между узлами
Все перечисленные выше настройки применяются ко всем узлам CDN, кроме Origin узлов.
Исходный тестовый поток для захвата должен быть опубликован на primary Origin узле в группе
Исходный поток может быть синтетическим, сгенерированным из темного экрана и тишины. Также можно использовать обычный медиафайл с аулдио и видео
Файл должен соответствовать требованиям к VOD источнику.
Параметры публикации исходного потока устанавливаются только на primary Origin узле в группе.