🛠️ API отвечает, а метрика в Zabbix исчезла

HTTP 200 есть.

Raw JSON приходит.

Но в Latest data нужного значения нет.

Проверьте preprocessing.

Цепочка выглядит так:

API → raw value → preprocessing → value type conversion → item value → history

Если используется dependent item:

master item → raw JSON → dependent item → JSONPath → value

Пример.

Было:

{ "service": { "latency_ms": 42 } }

JSONPath:

$.service.latency_ms

Стало:

{ "service": { "metrics": { "latency_ms": 42 } } }

HTTP всё ещё 200.

Но старый JSONPath больше не совпадает со структурой.

Что проверить:

— реальный raw response; — master item, если он есть; — preprocessing steps; — порядок steps; — Test / Test all steps; — первый failing step; — Custom on fail; — итоговый value; — type conversion после preprocessing.

Почему важен Custom on fail?

При preprocessing error можно настроить:

— Discard value; — Set custom value; — Set custom error.

Если выбран Discard value, endpoint может работать и raw response может приходить, но конкретное значение не попадёт в history.

А Set value to 0 — не универсальная страховка. Если 0 не имеет правильной семантики, ошибка preprocessing превращается в ложную метрику.

Для dependent item важно разделять:

master не получает raw JSON

и

master работает, а dependent item ломается на preprocessing

Во втором случае API/transport уже менее вероятная ветка.

Типичная ошибка — увидеть пустую Latest data и сразу диагностировать endpoint.

Хотя сначала нужно проверить путь:

raw response → preprocessing → JSONPath/regex/script → Custom on fail → final value → history

Сохраните, что проверять между сырым ответом API и значением, которое дошло до history.

🔹🔹🔹🔹

🛠️ API отвечает, а метрика в Zabbix исчезла
HTTP 200 есть.
Raw JSON приходит.
Но в Latest data нужного значения нет.
Проверьте preprocessing | Сетка — социальная сеть от hh.ru