Skip to content

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 незаменимым инструментом для обеспечения качества вещания в профессиональных системах.