enable-signals

Global

Где именно включена выгрузка событий
в конфигурации это строкаenable-signals true на глобальном уровне, если блок настроек естьвнутри блока Global
Три уровня и одна тонкость наследования

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

Умолчание неочевидное: если строки нет на уровне узла, она считается true при наличии блока <signals> — ради совместимости с прежними версиями, где выгрузка включалась самим блоком.

К значению true дописываются две вещи: субсчёт (subaccount=N) и область отслеживания (tracking-domain=X). Только к true — ни к false, ни к имени списка правил их приписать нельзя.

🔴 true без субсчёта не наследует его, а обнуляет. Руководство говорит это прямо: значение без уточнения отменяет субсчёт, заданный уровнем выше. Ровно та же тонкость, что у засеивания.

Четвёртая форма записи — имя списка правил: enable-signals ИмяСписка подключает <signals-filter>. При этом всё, что не совпало ни с одним правилом, считается выключенным.

Главная ловушка — писать true на нижнем уровне, чтобы «включить здесь тоже». Субсчёт при этом теряется, и события потока уходят без привязки к клиенту. Чтобы просто унаследовать, строку не пишут вовсе.
Что делает Хаб. Не пишет: выгрузкой во внешнюю аналитику мы не пользуемся, и блока <signals> в конфигурации нет.

🔎 Устройство охвата при этом стоит знать: тот же приём — три уровня с перекрытием — у нас работает в лимитах и в подписи, и тонкость с обнулением встречается только здесь и у засеивания.

Рекомендуемые значения

Четыре формы записи, и три из них с оговорками:

Значение Что означает
не писать унаследовать сверху — единственный способ
true включить, обнулив субсчёт сверху
true,subaccount=N включить с указанным субсчётом
false выключить; уточнения приписать нельзя
ИмяСписка отбор правилами; несовпавшее выключено
Три уровня наследования, умолчание при наличии блока, обнуление субсчёта при голом true, запрет уточнений при false и форма с именем списка — из руководства (§ 11.1.6.1.1).
Пример в конфигурации
# на узле — общий субсчёт, в пуле свой, у одного адреса — свой
enable-signals true,subaccount=555
<virtual-mta-pool pond>
    enable-signals true,subaccount=999
</virtual-mta-pool>

<virtual-mta v3>
    enable-signals true
</virtual-mta>
У v3 субсчёт обнулён, а не унаследован. Чтобы унаследовать, строку в блоке не пишут вовсе.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Пишут голое true, чтобы включить на нижнем уровне

§ 11.1.6.1.1

Чем чреватоСубсчёт, заданный выше, обнуляется. События потока уходят без привязки к клиенту, и в отчётах службы они окажутся в общей куче.
Как заметитьУ части потоков субсчёт в отчётах пустой.
Как правильноНе писать строку вовсе, если нужно унаследовать; писать с субсчётом, если нужно своё.

Приписывают субсчёт к выключению или к списку правил

§ 11.1.6.1.1

Чем чреватоУточнения допустимы только при true. С false или с именем списка конфигурация не пройдёт проверку.
Как заметитьСогласование конфигурации ругается на значение строки.
Как правильноЗадавать субсчёт в правилах списка, если пользуетесь отбором.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
enable-signals { true | false } [subaccount N] [tracking-domain X] | enable-signals <filter-name>
Значения
true с необязательными subaccount и tracking-domain, либо false, либо имя списка правил
Умолчание
true на глобальном уровне, если блок настроек есть § 11.1.6.1.1
Применение
нужен перезапуск сервиса
Очередь
затронет и то, что уже стоит в очереди
Где писать
Global, <virtual-mta-pool>, <virtual-mta>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Три уровня: узел → пул → адрес отправки, и пул сильнее узла. Но наследование работает только при отсутствии строки: написанная строка перекрывает уровень выше целиком, включая субсчёт.
Как проверить на узле
Действующее значение для адреса отправки показывает его сводка настроек:
pmta show vmta-settings vmta1 | grep -i enable-signals
Расхождение с ожиданием чаще всего означает голое true на нижнем уровне — оно обнулило субсчёт.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Безопасность узла · Собрать телеметрию