Table of Contents

6 表达式宏

概述

表达式宏对于公式计算非常有用。它们通过展开内部的所有宏并计算生成的表达式来得出结果。

表达式宏具有特殊的语法:

{?EXPRESSION}

其中,EXPRESSION 的语法与 trigger expressions 中的语法相同(请参见下面的使用限制)。

支持在表达式宏中使用 {主机.主机<1-9>} 和 {监控项.KEY<1-9>} 宏。

使用

以下位置中:

  • 图形名称
  • 地图元素标签
  • 地图形状标签
  • 地图链接标签

仅允许使用以下集合中的一个函数作为表达式宏,例如:avglastmaxmin

{?avg(/{HOST.HOST}/{ITEM.KEY},1h)}

类似 {?last(/host/item1)/last(/host/item2)}{?count(/host/item1,5m)}{?last(/host/item1)*10} 的表达式在这些位置是不允许的。

然而,在以下位置中:

  • 触发器事件名称
  • 基于触发器的通知和命令
  • 问题 update 的通知和命令

允许使用复杂表达式,例如:

{?trendavg(/主机/item1,1M:now/M)/trendavg(/主机/item1,1M:now/M-1y)*100}

在模板中使用表达式宏时,请不要指定模板名称,而应使用 {主机.主机<N>},因为在链接过程中模板名称不会被替换为 主机。
对于第一个 主机,你也可以完全省略 主机 的引用,例如:{?avg(//item1,1h)}

另请参阅: