5 表达式宏
概述
表达式宏在公式计算中非常有用。它们通过展开内部所有宏并评估结果表达式来进行计算。
表达式宏具有特殊语法:
{?EXPRESSION}
EXPRESSION中的语法与trigger expressions相同(参见下方的使用限制)。
表达式宏支持{主机.主机<1-9>}和{监控项.KEY<1-9>}宏。自Zabbix 6.0.9起,表达式宏中支持{监控项.KEY<1-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}不正确。
然而,在:
- 触发器事件名称
- 基于触发器的通知和命令
- 问题 update 通知和命令
复杂表达式是允许的,例如:
{?trendavg(/host/item1,1M:now/M)/trendavg(/host/item1,1M:now/M-1y)*100}
在模板中使用表达式宏时,请勿指定模板名称,而应使用{主机.主机<N>},因为在链接过程中模板名称不会通过主机进行替换。
你也可以完全省略第一个主机的主机引用,例如{?avg(//item1,1h)}
另请参阅:
- Supported macros 获取表达式宏支持的位置列表
- 在事件名称中使用表达式宏的示例-18