vRealize Operations Manager 使您能够通过使用子句和资源条目别名来增强您的超级衡量指标。

Where 子句

Where 子句检查是否应在超级衡量指标中使用特定的衡量指标值。使用此子句指向同一对象的不同衡量指标,例如 where = "metric_group|my_metric > 0

例如:count(${adaptertype = ExampleAdapter, objecttype = ExampleObject, metric = ExampleGroup|Rating, depth=2, where = "==1"})

资源条目别名

资源条目用于从 vRealize Operations Manager 检索衡量指标数据以用于超级衡量指标计算。资源条目是表达式的一部分,以 $ 开头,后跟 {..} 块。当计算超级衡量指标时,您可能必须多次使用相同的资源条目。如果您需要更改您的计算,则必须对每个资源条目进行更改,这可能会导致错误。使用资源条目别名重写表达式。

以下示例显示已使用两次的资源条目。

(min(${adapterkind=VMWARE, resourcekind=HostSystem, attribute= cpu|demand|active_longterm_load, depth=5, where=”>=0”}) + 0.0001)/(max(${adapterkind=VMWARE, resourcekind=HostSystem, attribute=cpu|demand|active_longterm_load, depth=5, where=”>=0”}) + 0.0001)"

使用资源条目别名,您可以编写类似表达式。这两个表达式的输出是相同的。

(min(${adapterkind=VMWARE, resourcekind=HostSystem, attribute= cpu|demand|active_longterm_load, depth=5, where=”>=0”} as cpuload) + 0.0001)/(max(cpuload) + 0.0001)"

在使用资源条目别名时,请遵循以下准则:

  • 要创建别名,资源条目应该后跟 as,然后是 alias:name。例如:${…} as alias_name

  • 别名不得包含 ()[]+-*/%|&! =<>,.? :$ 特殊字符,并且不能以数字开头。

  • 别名名称(如超级衡量指标表达式中的所有名称)不区分大小写。

  • 使用别名是可选的。您可以定义别名,而不要在表达式中使用它。

  • 您不能多次指定相同别名。例如: ${resource1,…} as r1 + ${resource2,…} as R1

  • 您可以为同一资源条目指定多个别名。例如:${…} as a1 as a2

条件表达式 ?: 三元运算符

您可以在表达式中使用三元运算符来执行条件表达式。

例如:expression_condition ? expression_if_true : expression_if_false

条件表达式的结果将转换为数字。如果值不为 0,则条件假设为 true。

例如:-0.7 ? 10 : 20 结果为 10。2 + 2 / 2 - 3 ? 4 + 5 / 6 : 7 + 8 结果为 15 (7 + 8)。

根据条件,将执行 expression_if_trueexpression_if_false,但不会同时执行两者。这使您可以编写表达式,例如 ${this, metric=cpu|demandmhz} as a ! = 0 ? 1/a : -1。三元运算符可以在其所有表达式中包含其他运算符,包括其他三元运算符。

例如:! 1 ? 2 ? 3 : 4 : 5 结果为 5。