http-webhook-connect-timeout

<acct-file>

Сколько ждать установления соединения с приёмником
в конфигурации это строкаhttp-webhook-connect-timeout 5sвнутри блока <acct-file>
Дозвон до приёмника

Строка ограничивает только установление соединения — от начала подключения до готовности говорить. Умолчание — 5s.

Пять секунд — это много для исправной сети и мало для больной. Приёмник в том же дата-центре отвечает за миллисекунды; приёмник за океаном с потерями пакетов может не уложиться, и тогда пачка уйдёт в повтор.

Истёкшее ожидание — не потеря. Пачка остаётся в промежуточном файле и будет отправлена снова. Ценой становится задержка данных и накопление файлов, если так происходит постоянно.

Вторая половина пары — http-webhook-io-timeout: она ограничивает уже сам разговор, и умолчание у неё то же.

Главная ловушка — увеличить ожидание вместо разбора сети. Если дозвон занимает больше пяти секунд, дело обычно не в пороге, а в маршруте, разрешении имён или перегруженном приёмнике. Увеличенный порог прячет симптом, оставляя причину.
Что делает Хаб. Не пишет — остаётся умолчание. Наш приёмник за обычным веб-сервером и отвечает сразу: он только проверяет токен и ставит задачу в очередь, а разбор идёт в фоне.

Строка пригодится, если узел стоит далеко и сеть до Хаба недостаточно устойчива.

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

Увеличивать только с измерением в руках:

Значение Когда
5s (умолчание) всегда
до 30s узел далеко, сеть с потерями, измерено

Проверять надо тем же, чем MTA дозванивается — обычным подключением к адресу приёмника.

Умолчание 5s и то, что порог касается только подключения, — из руководства (§ 3.3.11.24). Совет разбирать сеть вместо увеличения порога — наш.
Пример в конфигурации
# узел далеко, дозвон измеренно долгий
<acct-file /var/log/pmta/webhook.json>
    http-webhook-url https://hub.example.com/api/telemetry/pmta/7
    http-webhook-connect-timeout 15s</acct-file>
Значение ставят по измерению, а не на глаз. Постоянно не укладывающийся дозвон — повод разбирать сеть, а не поднимать порог.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Поднимают порог, приняв отказ приёмника за медленную сеть

наш опыт

Чем чреватоСимптом один и тот же — файлы копятся. Но если приёмник отвечает не 2xx, порог ни при чём, и его увеличение ничего не изменит.
Как заметитьПорог увеличен, накопление продолжается.
Как правильноВключить http-webhook-log-verbose и посмотреть, доходит ли дело до ответа.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
http-webhook-connect-timeout <time-interval>
Значения
интервал времени
Умолчание
5s § 3.3.11.24
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<acct-file>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: строка живёт внутри своего <acct-file> и касается соединений только его приёмника. У разных потоков учёта приёмники разные, и пороги у них могут быть свои.
Как проверить на узле
Меряем то же, что меряет MTA, — время установления соединения:
curl -s -o /dev/null -w 'connect=%{time_connect} total=%{time_total}\n' https://hub.example.com/
time_connect и есть то, что ограничивает эта строка. Значение заметно меньше порога означает, что дело не в нём.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Собрать телеметрию