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

Что показано про карту¶
| Колонка | Значение |
|---|---|
| Нода | стример, в котором стоит карта. Раздел показывает весь кластер |
| Модель, Серийный номер | как их называет сама карта. Номер и есть ключ, которым карта адресуется в конфигурации стрима |
| Шина | адрес 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 прервалась бы, хотя карта та же.
Температура и обороты уходят в мониторинг всегда, а не только при тревожных значениях: ряд, который появлялся бы только при перегреве, нельзя отличить от отсутствия данных.
У карты с пассивным охлаждением ряда оборотов нет вовсе. Это не ноль оборотов: «вентилятора нет» и «вентилятор остановился» — разные вещи, и путать их нельзя.
Портов рядами нет: их состояние между скрейпами не меняется и алертов не порождает, а состояние линии занятого порта уже едет со стороны стрима.