Отдача показателей сборщику

metrics exporter implementation
Свой формат для внешнего наблюдения

Отдача показателей узла сборщику Prometheus: MTA поднимает свой слушатель <prometheus-listener> — один на узел, на адресе и порту из его имени, — а формат обеспечивает встроенная библиотека prometheus-cpp, которую руководство называет среди сторонних составляющих.

Два показателя задержки — сводки с готовыми квантилями: 0,50, 0,90, 0,95 и 0,99 считаются внутри каждого узла по его собственным наблюдениям. Поэтому квантиль парка из них не сложить: среднее p95 восьми узлов — не p95 парка.

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

Что задаётся:

Что Как
адрес и порт имя блока <prometheus-listener>, например 127.0.0.1:9090
диапазон вместо адреса MTA возьмёт один подходящий и напишет его в журнал
домены для показателя первой попытки time-first-attempt-domains-file, до 100 доменов
Один слушатель, форма адреса, выбор адреса из диапазона и файл доменов — из руководства (§ 3.3.25, § 14). Разбор ловушки — наш.
Пример в конфигурации
# показатели только на внутреннем адресе
<prometheus-listener 10.0.0.5:9090>
    time-first-attempt-domains-file /etc/pmta/ttfa-domains</prometheus-listener>
Файл доменов нужен только показателю времени первой попытки и работает вместе с track-time-first-attempt.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Как проверить на узле
Проверить, что показатели отдаются:
curl -s http://10.0.0.5:9090/metrics | head -20
Строки вида pmta_… — показатели MTA, путь /metrics — обычный для сборщика Prometheus; пустой ответ — слушатель не поднят или слушает другой адрес.
В Хабе
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Планирование мощности · Разобраться с доставляемостью · Собрать телеметрию