Qprober¶
Обзор¶
Qprober — это интегрированная во все компоненты Mcaster система мониторинга, которая замеряет количество различных событий в разрезе по источникам и отдельным потокам данных внутри источников, например по MPEG-TS PID'ам. Модуль обеспечивает комплексный анализ качества потоков и диагностику проблем в реальном времени.
Архитектура системы¶
Интеграция с компонентами¶
Qprober интегрирован во все компоненты Mcaster:
- Входные модули — мониторинг источников и потоков
- Обрабатывающие модули — анализ качества обработки
- Выходные модули — контроль состояния выходных потоков
- Системные компоненты — мониторинг ресурсов сервера
Централизованный мониторинг¶
Замерянные счетчики могут сниматься централизованно по целому кластеру серверов, но в случае когда централизованная система организационно невозможна, в комплекте Mcaster Appliance может идти встроенная визуализация всех счетчиков.
Основные метрики¶
Базовые показатели сервера¶
- Нагрузка на CPU — использование процессорных ресурсов
- Нагрузка на диски — I/O операции и производительность
- Нагрузка на GPU — использование графических процессоров
- Использование памяти — потребление RAM и swap
Общие показатели видеопотоков¶
- Битрейт — текущий и средний битрейт потоков
- Состояние источников — доступность и качество источников
- Частота кадров — FPS входных и выходных потоков
- Разрешение — текущее разрешение видеопотоков
Мониторинг ошибок¶
Недоступность источников¶
Qprober отслеживает:
- Потеря соединения с источниками
- Таймауты подключения
- Ошибки аутентификации
- Проблемы с сетью до источника
Инструментальный анализ MPEG-TS потоков¶
Анализ по стандарту TR101290 включает:
Приоритет 1 (Критические ошибки)¶
- Синхронизация — потеря синхронизации потока
- PAT — ошибки в таблице Program Association Table
- PMT — ошибки в таблице Program Map Table
- CC — ошибки Continuity Counter
Приоритет 2 (Важные ошибки)¶
- PCR — ошибки Program Clock Reference
- PTS/DTS — ошибки временных меток
- CAT — ошибки в таблице Conditional Access
Приоритет 3 (Информационные ошибки)¶
- NIT — ошибки Network Information Table
- SDT — ошибки Service Description Table
- EIT — ошибки Event Information Table
Анализ сетевых протоколов¶
SRT анализ¶
- Потеря кадров — количество потерянных кадров
- Аварийные скачки таймстемпов — резкие изменения времени
- RTT — Round Trip Time соединения
- Retransmissions — количество перепосланных пакетов
RTSP анализ¶
- Потеря пакетов — статистика потерь RTP пакетов
- Jitter — вариации задержки
- Ошибки сессии — проблемы с RTSP сессией
RTMP анализ¶
- Потеря кадров — статистика потерь
- Ошибки протокола — проблемы с RTMP соединением
- Буферизация — состояние буферов
Мониторинг выходных потоков¶
Внутренние проблемы¶
Qprober отслеживает:
- Ошибки кодирования — проблемы в транскодере
- Проблемы мультиплексирования — ошибки в мультиплексоре
- Ошибки буферизации — переполнение буферов
Реакция на проблемы входа¶
Модуль фиксирует:
- Коррекция таймстемпов — автоматические исправления времени
- Сброс счетчиков — при накопившемся дрифте
- Переключение источников — автоматическое переключение на резерв
Примеры отслеживаемых событий¶
{
"timestamp": "2024-01-15T10:30:00Z",
"source": "input_stream_1",
"event": "timestamp_correction",
"details": {
"drift_accumulated": 1500,
"correction_applied": 1500,
"counters_reset": true
}
}
Диагностика проблем¶
Определение источника проблем¶
Qprober позволяет определить источник входящих проблем:
Проблемы сети¶
- Высокий RTT в SRT соединениях
- Потеря пакетов в RTMP/RTSP
- Нестабильный битрейт
- Частые переподключения
Проблемы источника¶
- Ошибки TR101290 в MPEG-TS
- Потеря синхронизации
- Некорректные таймстемпы
- Проблемы с кодированием
Метрики для анализа¶
Основные метрики, которые нужно изучать, получаются через streams_list
API. В объекте streams
содержится список всех стримов, где каждый стрим имеет объект stats
с более чем сотней параметров для анализа.
Получение метрик¶
# Получение списка всех стримов с метриками
curl -X GET "http://localhost:8080/api/streams_list"
Структура ответа¶
{
"streams": [
{
"name": "main_stream",
"stats": {
// Более 100 параметров для анализа
"input": {
"packets_received": 125000,
"packets_lost": 5,
"bitrate": 5000000,
"fps": 25.0,
"tr101290": {
"priority1_errors": 0,
"priority2_errors": 2,
"priority3_errors": 5
},
"srt": {
"rtt": 25.5,
"retransmitted_packets": 15,
"latency": 35.2
}
}
}
}
]
}
Ключевые группы метрик¶
Входные метрики (stats.input
):
- packets_received/lost — статистика пакетов
- bitrate/fps — качество потока
- tr101290 — ошибки MPEG-TS по стандарту
- srt/rtmp/rtsp — специфичные метрики протоколов
Выходные метрики (stats.output
):
- packets_sent — отправленные пакеты
- bitrate/fps — качество выходного потока
- errors — ошибки кодирования/мультиплексирования
Системные метрики (stats.system
):
- cpu_usage — загрузка процессора
- memory_usage — использование памяти
- disk_io — операции ввода-вывода
Интеграция с Retroview¶
Онлайн режим¶
Рекомендуется использовать Qprober в онлайн варианте вместе с сервисом Retroview:
- Реальное время — мгновенный анализ проблем
- Исторические данные — долгосрочный анализ трендов
- Автоматические алерты — уведомления о проблемах
- Централизованный мониторинг — единая точка контроля
Офлайн режим¶
Можно использовать и в офлайн on-premises варианте:
- Локальное хранение — данные остаются в инфраструктуре
- Автономная работа — независимость от внешних сервисов
- Встроенная визуализация — в составе Mcaster Appliance
Конфигурация¶
Базовые настройки¶
qprober {
enabled true;
sampling_interval 1000; # миллисекунды
retention_period 86400; # секунды
log_level info;
}
Настройка мониторинга потоков¶
stream monitored_stream {
input udp://239.0.0.1:1234;
qprober {
tr101290_analysis true;
network_metrics true;
output_metrics true;
alert_threshold 10;
}
}
Параметры конфигурации¶
Параметр | Описание | Обязательный | Пример |
---|---|---|---|
enabled |
Включение Qprober | Да | true |
sampling_interval |
Интервал сбора метрик | Нет | 1000 |
retention_period |
Период хранения данных | Нет | 86400 |
tr101290_analysis |
Анализ TR101290 | Нет | true |
network_metrics |
Сетевые метрики | Нет | true |
alert_threshold |
Порог для алертов | Нет | 10 |
API и интерфейсы¶
HTTP API¶
# Получение метрик потока
GET /api/qprober/stream/stream_name
# Получение системных метрик
GET /api/qprober/system
# Получение TR101290 ошибок
GET /api/qprober/tr101290/stream_name
# Получение сетевых метрик
GET /api/qprober/network/stream_name
Prometheus метрики¶
# Системные метрики
mcaster_cpu_usage{server="server1"} 45.2
mcaster_memory_usage{server="server1"} 67.8
mcaster_disk_io{server="server1"} 125.5
# Метрики потоков
mcaster_stream_bitrate{stream="main",server="server1"} 5000000
mcaster_stream_fps{stream="main",server="server1"} 25.0
# TR101290 ошибки
mcaster_tr101290_priority1{stream="main",server="server1"} 0
mcaster_tr101290_priority2{stream="main",server="server1"} 2
mcaster_tr101290_priority3{stream="main",server="server1"} 5
Визуализация данных¶
Встроенная визуализация¶
Mcaster Appliance включает встроенную визуализацию:
- Дашборды — основные показатели в реальном времени
- Графики — исторические данные и тренды
- Алерты — уведомления о критических событиях
- Отчеты — детальная аналитика
Интеграция с внешними системами¶
Qprober поддерживает интеграцию с:
- Grafana — для продвинутой визуализации
- Prometheus — для сбора метрик
- ELK Stack — для анализа логов
- Zabbix — для мониторинга инфраструктуры
Рекомендации по использованию¶
Оптимизация производительности¶
- Настройте интервал сбора метрик под ваши потребности
- Используйте фильтрацию для снижения нагрузки
- Планируйте хранение исторических данных
- Мониторьте ресурсы самого Qprober
Настройка алертов¶
- Определите критические пороги для ваших потоков
- Настройте эскалацию уведомлений
- Используйте разные уровни важности алертов
- Тестируйте алерты в тестовой среде
Анализ данных¶
- Регулярно анализируйте тренды качества
- Коррелируйте проблемы с внешними факторами
- Документируйте типичные проблемы и решения
- Планируйте улучшения на основе данных
Заключение¶
Qprober представляет собой мощную систему мониторинга и анализа качества потоков, интегрированную во все компоненты Mcaster. Модуль обеспечивает комплексную диагностику проблем, от базовых системных метрик до детального анализа MPEG-TS потоков по стандарту TR101290. Возможность централизованного мониторинга кластера серверов и встроенная визуализация делают Qprober незаменимым инструментом для обеспечения качества вещания в профессиональных системах.