Ошибка запроса статистики качества cdn/stats/print

temonich

New Member
Добрый день

1. При запросе /cdn/stats/print
в формате json выдается ошибка:
JSON:
{
  "exception": "org.codehaus.jackson.map.JsonMappingException",
  "path": "/rest-api/cdn/stats/print",
  "error": "Internal Server Error",
  "message": "No serializer found for class com.flashphoner.media.B.A.A and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.HashMap[\"185.132.178.50\"]->java.util.ArrayList[0])",
  "timestamp": 1630330030311,
  "status": 500
}

если запрашивать в режиме prometeus, то все отлично.
Подскажите, где чего доставить/поменять нужно?
Версия флешфонера 5.2.971

2. Еcли на edge входящий битрейт меньше чем исходящий, значит мы пережимаем в больший битрейт?
cdn_connection_quality{param="inboundBitrate",node="_._._.50",name="2322"} 1009460
cdn_connection_quality{param="outboundBitrate",node="_._._.50",name="2322"} 3485480

3. Что такое качество NACK и какое приемлемо. Что влияет на этот параметр.

4. Можно ли получить подобную статистику для клиента. Т.е. отправляет он нам 1МБ, а на ориджине получаем 0.5МБ ?

5. метод cdn/stats/print может нам подсказать на проблемы между нашими серверами или самими серверами, но не с публикатором или с просматривающим. Так?

6. что значит отрицательный битрейт?
cdn_connection_quality{param="inboundBitrate",node=".50",name="2322"} 1071996
cdn_connection_quality{param="outboundBitrate",node=".50",name="2322"} -16555793
 
Last edited:

Max

Administrator
Staff member
Добрый день.
1. При запросе /cdn/stats/print
в формате json выдается ошибка:
Проблема не воспроизводится на последней сборке 5.2.1031 (на Origin и Edge):
1630376539769.png

Пожалуйста, обновите WCS и попробуйте.
Также обратите внимание, что статистика может быть запрошена только для входящего потока (в данном примере мы запрашиваем статистику на Edge для потока, получаемого с Origin), и на стороне Origin для замера статистики должна быть включена настройка
Code:
outbound_video_rate_stat_send_interval=1
2. Еcли на edge входящий битрейт меньше чем исходящий, значит мы пережимаем в больший битрейт?
cdn_connection_quality{param="inboundBitrate",node="_._._.50",name="2322"} 1009460
cdn_connection_quality{param="outboundBitrate",node="_._._.50",name="2322"} 3485480
Это означает, что пропускной способности канала между узлами не хватает, то есть пакеты, помещенные в буфер на отправку, не отправляются своевременно. Визуально при проигрывании потока на Edge это может выглядеть, как фризы.
3. Что такое качество NACK и какое приемлемо. Что влияет на этот параметр.
Это количество пакетов, доставку которых не удалось подтвердить. Чем выше этот параметр, тем больше потерь на канале между узлами
4. Можно ли получить подобную статистику для клиента. Т.е. отправляет он нам 1МБ, а на ориджине получаем 0.5МБ ?
Можно контролировать качество канала на стороне клиента. Принципы здесь те же, поскольку в качестве транспортного протокола внутри CDN используется тот же WebRTC - сравнение исходящего и полученного битрейтов, сглаживание пиков фильтром Калманна и оценка качества канала по разнице усредненных значений битрейтов.\
5. метод cdn/stats/print может нам подсказать на проблемы между нашими серверами или самими серверами, но не с публикатором или с просматривающим. Так?
Да, этот механизм предназначен именно для контроля канала между серверами.
6. что значит отрицательный битрейт?
cdn_connection_quality{param="inboundBitrate",node=".50",name="2322"} 1071996
cdn_connection_quality{param="outboundBitrate",node=".50",name="2322"} -16555793
Это нам не удалось воспроизвести на последней сборке, но, вероятно, это проблема преобразования беззнакового целого значения в знаковое при форматировании. Если проблема будет устойчиво воспроизводиться, заведем тикет.
 

temonich

New Member
Канал между edge и origin и transcoder я сервере я смотрю через cdn/stats/print
Канал между клиентами и нашими серверами на клиенте я смотрю так: качество канала на клиенте
А как мне качество между клиентами и серверами узнать на сервере?
Как вариант, с клиентов я могу собирать данные и отправлять на сервер или есть что-то готовое и более верное?
 

Max

Administrator
Staff member
А как мне качество между клиентами и серверами узнать на сервере?
На стороне сервера можно контролировать метрики потока: например, NACK_COUNT, VIDEO_LOST, AUDIO_LOST покажут качество канала между клиентом и сервером. Точнее, Вы можете эти параметры собирать на бэкенде и в зависимости от этого, например, давать команду на клиента: перепубликовать поток с меньшим разрешением и т.д.
Как вариант, с клиентов я могу собирать данные и отправлять на сервер или есть что-то готовое и более верное?
Вы можете отправлять значение качества канала с клиента на свой бэкенд. Сам по себе WCS только принимает публикации и раздает потоки подписчикам, он не может принять решение о том, должен клиент переподключиться или не должен. Для этого должен быть отдельный бэкенд, которому WCS при необходимости может отправлять REST хуки.
 
Top