Skip to content

Мониторинг Flussonic с помощью Prometheus

Во Flussonic есть возможность мониторинга и сбора данных серверов с помощью Prometheus. Ранее это было возможно только через SNMP, парсинг файлов JSON (/flussonic/api/[server|sessions|media]) либо же графиков на вкладке Pulse в веб-интерфейсе Flussonic UI.

Что такое Prometheus?

Prometheus – это система мониторинга и сбора аналитики с открытым исходным кодом. Хранение значений метрик реализовано на базе данных временных рядов, где каждому моменту времени соответствует пара "ключ (т.е. имя метрики) - значение" метрики в этот момент. Таким образом осуществляется быстрый и эффективный доступ к данным.

Для визуализации данных метрик Prometheus интегрируется с Grafana.

Почему именно Prometheus?

  • быстрый и эффективный доступ к данным;
  • возможность отправлять уведомления в любые современные мессенджеры и сервисы (все от SMPT до Slack и т.д.), а также по email, так что Вы можете определить наиболее удобный для себя и подходящий Вам метод оповещения;
  • возможность отображения данных группы серверов на одном дашборде, что весьма удобно для отслеживания состояния нескольких серверов;
  • осуществляет хранение метрик на протяжении некоторого времени, что позволяет Вам отслеживать состояние сервера или серверов в динамике;
  • позволяет отслеживать состояние не только целого сервера, но и его отдельных потоков.

Получение данных метрик из Flussonic

В данном параграфе мы рассмотрим каким образом можно посмотреть данные метрик из Flussonic.
Нужно пройти всего лишь несколько простых шагов:

Шаг 1.
Сначала скачайте Prometheus для своей платформы и установите его. Используйте эту инструкцию для корректной установки и запуска. Если Prometheus уже установлен на вашей платформе, тогда пропустите этот шаг.

Шаг 2.
Настройте Prometheus с помощью конфигурационного файла prometheus.yml, добавив в него следующие строки:

scrape_configs:
  - job_name: 'myflussonic'
    metrics_path: /flussonic/api/metrics
    basic_auth:
      username: 'flussonic'
      password: 'password'
    static_configs:
      - targets: ['FLUSSONIC-IP:80']

Параметры:

  • job_name — название процесса;
  • matrics_path — путь до метрик, рассчитываемых Flussonic;
  • username — Ваш логин как во Flussonic;
  • password — Ваш пароль как во Flussonic;
  • targets — список URL серверов, которые Вы хотите отслеживать.

Шаг 3.
Добавьте дешборд в Grafana, перейдя по ссылке.

Какие метрики Вы можете отслеживать?

Ниже приведены метрики, которые используются Flussonic для отслеживания состояния серверов и потоков. Есть метрики как для отслеживания данных сервера, так и отдельного потока.

Метрики сервера:

Метрика Единица измерения Описание
flussonic_version_info - Текущая версия Flussonic
flussonic_boot_time_seconds с (Unix-время) Время загрузки Flussonic
flussonic_memory_usage % Использование памяти
flussonic_clients - Число клиентов сервера
flussonic_streams - Число потоков на сервере
flussonic_opened_files - Число открытых файлов сервера на данный момент
flussonic_scheduler_load - Загрузка планировщика процессов Erlang
flussonic_cpu_usage % Расход CPU
flussonic_disk_size байты Размер диска
flussonic_disk_usage % Расход диска
flussonic_disk_io_usage % Расход Disk I/O
flussonic_net_input_bytes байты Network interface input
flussonic_net_output_bytes байты Network interface output
flussonic_dvb_card_strength - Качество сигнала с DVB-платы
flussonic_gpu_dec % Расход декодера GPU
flussonic_gpu_enc % Расход энкодера GPU
flussonic_gpu_temp °C (в градусах Цельсия) Температура GPU

Метрики потока:

Метрика Единица измерения Описание
flussonic_stream_client_delay мс Клиентская задержка
flussonic_stream_bytes_in байты Входная пропускная способность
flussonic_stream_bytes_out байты Выходная пропускная способность
flussonic_stream_bitrate кбит/с Текущий битрейт
flussonic_stream_start_running_at мс Время, прошедшее с запуска потока
flussonic_stream_retry_count - Число попыток подключения сервером
flussonic_stream_client_count - Число клиентов потока
flussonic_stream_dvr_info_disk_size байты Размер диска DVR
flussonic_stream_dvr_info_depth с Глубина DVR
flussonic_stream_dvr_info_duration с Продолжительность DVR

Теперь Вы можете отслеживать состояние вашего сервера Flussonic или групп серверов так же как и отдельных потоков с помощью Prometheus и Grafana.