Table of Contents

6 表达式宏

概述

表达式宏对于公式计算很有用。 它们是通过展开内部的所有宏并评估结果表达式来计算的。

表达式宏有一个特殊的语法:

· {?EXPRESSION}

在表达式中的语法与 触发器表达式 中的语法相同(请参阅以下的使用限制)。

表达式宏内支持 {HOST.HOST<1-9>} 和 {ITEM.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} 在这些位置是不正确的。

然而,在:

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

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

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

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

另请参阅:

  • 支持的宏 以获取表达式宏支持位置的列表
  • 示例 在事件名称中使用表达式宏