5. Макросы выражений
Обзор
Макросы выражений полезны для вычислений формул. Такие макросы вычисляются путем раскрытия всех макросов внутри и оценки результирующего выражения.
Макросы выражений имеют специальный синтаксис:
{?ВЫРАЖЕНИЕ}
Синтаксис внутри ВЫРАЖЕНИЯ такой же, как в триггерных выражениях (смотрите ниже ограничения по использованию).
Внутри макросов выражений поддерживаются макросы {HOST.HOST<1-9>} и {ITEM.KEY<1-9>}. Макросы {ITEM.KEY<1-9>} поддерживаются в макросах выражений, начиная с версии Zabbix 6.0.9.
Использование
В следующих местах:
- именах графиков
- подписях к элементам карт
- подписях к фигурам карт
- подписях к связям карт
в качестве макроса выражения допускается только одна функция из следующего списка: avg, last, max, min, например:
{?avg(/{HOST.HOST}/{ITEM.KEY},1h)}
Такие выражения как {?last(/host/item1)/last(/host/item2)}, {?count(/host/item1,5m)} и {?last(/host/item1)*10} в этих местах недопустимы.
Однако, в:
- именах событий на триггеры
- оповещениях и командах на триггеры
- оповещениях и командах на обновление проблем
разрешены сложные выражения, например:
{?trendavg(/host/item1,1M:now/M)/trendavg(/host/item1,1M:now/M-1y)*100}
При использовании макросов выражений в шаблонах, пожалуйста, не указывайте имя шаблона, а вместо этого используйте {HOST.HOST<N>}, поскольку имена шаблонов не заменяются именами узлов сети во время присоединения шаблонов.
Вы также можете вообще опустить ссылку на узел сети для первого узла сети, например: {?avg(//item1,1h)}
Смотрите также:
- Поддерживаемые макросы для списка поддерживаемых мест использования макросов выражений
- Пример использования макроса выражений в имени события