Skip to content

Карты захвата

Раздел Карты захвата отвечает на вопросы, которые до него выяснялись чтением конфигурации глазами и походом к серверу: какие карты стоят в машинах кластера, сколько у них портов, что на этих портах за сигнал, кто из стримов их уже занял и не перегрелась ли карта.

Список карт захвата

Что показано про карту

Колонка Значение
Нода стример, в котором стоит карта. Раздел показывает весь кластер
Модель, Серийный номер как их называет сама карта. Номер и есть ключ, которым карта адресуется в конфигурации стрима
Шина адрес PCIe, а под ним — линк до карты: ширина и скорость
Прошивка вариант прошивки: именно он задаёт раскладку портов
Температура, Вентиляторы показания датчиков карты. Порогов и суждения «горячо» раздел не выносит — это дело системы наблюдения

Линк PCI Express отмечается как ужатый, если карта стоит в слоте с меньшим числом линий, чем поддерживает сама. Линк общий для всех портов карты, поэтому он задаёт предел полосы сразу для всех. Ужатый линк не отключает порты, а уменьшает число потоков, которые карта успевает отдать. Один поток 2160p50 занимает около 1,1 ГБ/с: слот x4 Gen 3 пропускает около 3,5 ГБ/с, то есть три таких потока, слот x4 Gen 2 вдвое меньше, то есть один.

Вариант прошивки задаёт, сколько у карты каналов, какие из них входы, а какие выходы, и что на них: SDI или ASI. На снимке DTA-2178 в варианте «2x (12G-SDI+3G-SDI/ASI) with Genlock»: из восьми каналов входами работают порты 2 и 5, порты 1 и 6 выходы, остальные четыре внутренние выходы. Другой вариант прошивки расписал бы те же восемь разъёмов иначе, поэтому вывести направление порта из его номера нельзя. Полный список вариантов для каждой модели есть в документации DekTec.

Сменить вариант прошивки из интерфейса нельзя: это перепрошивка карты утилитой DekTec с выключением питания, и на время перепрошивки захват на всех портах карты останавливается.

Порты

Строка карты раскрывается в таблицу портов.

Порты карты захвата

Состояние порта названо словом закрытого словаря, потому что за каждым словом стоит своё действие оператора:

Состояние Что означает Что делать
не вход вариант прошивки сделал порт выводом или портом другого типа переложить кабель или перепрошить карту
свободен порт ввода, не назначенный ни одному стриму можно назначать
назначен стриму порт ввода, названный в применённой конфигурации стримера ничего; имя стрима стоит рядом ссылкой
держит зависший процесс процесс захвата этого порта не завершился ни по закрытию стандартного ввода, ни по SIGKILL разбираться надо на хосте
держит посторонний процесс по прошивке порт ввод, по нашей таблице свободен или наш, а захват отвечает «порт занят» искать постороннего держателя
состояние незнакомо этой версии стример новее панели и назвал состояние, слова для которого у панели нет стрим не назначать — порт вполне может быть занят; обновить панель

Общего слова «занят» в разделе нет: у каждого состояния своё действие, и оно названо в таблице.

Отдельно от состояния стоит направление. Пометка «вход невозможен» рядом с ним говорит не о том, чем порт занят сейчас, а о том, что вариант прошивки не сделал его входом. У обычного выхода пометки нет: прошивка может переключить его на вход. У внутреннего выхода пометка стоит всегда: прошивка отдала его соседнему порту. Изменить это можно только перепрошивкой, см. выше.

Два вида портов сигнала не принимают вовсе и разъёмом на планке не всегда представлены:

  • генлок — опорный вход: по нему карта берёт опорный сигнал, а не сигнал для записи;
  • виртуальный — разъёма нет вовсе, им карта показывает собственный свободный опорник, то есть состояние «ни к чему не привязана».

Колонка Тип показывает, на какой вид сигнала порт настроен сейчас: sd_sdi, hd_sdi, 3g_sdi или 12g_sdi. Это настройка, а не предел порта: свободный порт хранит последнее значение, и после подачи 12G-сигнала на порт с hd_sdi тип сменится сам.

Колонка Линия говорит, что карта видит на порту прямо сейчас:

  • разрешение и частота — сигнал есть, и вот какой. Буква после частоты — уровень 3G-сигнала, A или B;
  • «сигнала нет» — порт ввода, на котором карта ничего не видит;
  • «неизвестно» — карта не сообщила состояние линии. У выходов, генлока и виртуального порта его не бывает, и отсутствия сигнала это не означает.

Если карта масштабирует сигнал сама (принимает 12G и отдаёт наверх 3G) или детектирует на линии не тот вид сигнала, на который настроен порт, это отмечено подсказкой рядом. Без такой пометки расхождение стандарта на линии с разрешением стрима читается как дефект, которого нет.

Из строки порта ведёт ссылка в карточку стрима, который его занял. Обратная ссылка — «Показать в разделе карт» — стоит в секции входа стрима, рядом с полем серийного номера.

Оттуда же карта и порт выбираются: поля секции SDI (DekTec) берут значения из этого самого инвентаря. Подробности — в Приём SDI.

Назначение сверяется с прошивкой, но конфигурация от этого не отклоняется: она должна применяться и до установки карты, и на другом стримере. Стрим, назначенный на порт, который по последнему снимку не вход, получает этот факт в статистику входа. Именно так объясняется отказ «порт занят» без процесса-держателя.

Когда карт не видно

Раздел различает три разных «пусто», потому что действия у них разные:

  • Карт нет. Опрос прошёл, карт в машине не оказалось. Такие стримеры в списке не показываются вовсе.
  • Инвентарь неизвестен. Опрос не удался. Стример перечислен отдельной строкой с причиной и давностью последнего удавшегося опроса.
  • Стример недоступен. С самим стримером нет связи. Тоже отдельная строка со своей причиной.

У неудавшегося опроса называется своя причина:

  • опросчик не установлен — пакета dektec-bridge на хосте нет;
  • не уложился в таймаут — опрос не завершился в отведённое время;
  • завершился с ошибкой — ненулевой код выхода;
  • ответил неразбираемым — вывод прочитать не удалось;
  • причина, незнакомая этой версии — стример назвал причину, слова для которой у панели нет.

Данные снимает dektec_probe — разовый вызов, не демон: стример запускает его раз в минуту, читает JSON с его вывода и даёт процессу завершиться. Опросчик не открывает портов вовсе, поэтому захвату он помешать не может. Ставится он пакетом dektec-bridge рядом с dektec_ingest; отсутствие пакета на хосте — штатное состояние, при котором раздел говорит «инвентарь неизвестен», а не показывает пустой парк.

Что уходит в мониторинг

В Prometheus едут три ряда: capture_card_info со статикой карты в лейблах, capture_card_temperature_celsius и capture_card_fan_rpm. Ключ соединения — серийный номер, а не адрес на шине: карту переставляют в другой слот, и история по bus/slot прервалась бы, хотя карта та же.

Температура и обороты уходят в мониторинг всегда, а не только при тревожных значениях: ряд, который появлялся бы только при перегреве, нельзя отличить от отсутствия данных.

У карты с пассивным охлаждением ряда оборотов нет вовсе. Это не ноль оборотов: «вентилятора нет» и «вентилятор остановился» — разные вещи, и путать их нельзя.

Портов рядами нет: их состояние между скрейпами не меняется и алертов не порождает, а состояние линии занятого порта уже едет со стороны стрима.