vRealize Operations Manager包含可以在超级衡量指标公式中使用的函数和运算符。这些函数可能是循环函数,也可能是单一函数。

循环函数

循环函数可对多个值进行计算。

表 1. 循环函数

功能

描述

avg

所收集值的平均值。

combine

将所含对象的所有衡量指标值组合到单一衡量指标时间轴中。

count

所收集值的数目。

max

所收集值的最大值。

分钟

所收集值的最小值。

sum

所收集值的总和。

注:

vRealize Operations Manager5.x 包括两个求和函数:sum (expr) 和 sumN (expr, depth)。vRealize Operations Manager6.x 包括一个求和函数:sum (expr)。默认情况下,depth 设置为 depth=1。有关设置 depth 的更多信息,请参阅创建超级衡量指标

循环函数参数

循环函数返回对象或对象类型的属性或衡量指标值。属性是元数据,描述要从对象中收集的适配器的衡量指标。衡量指标是属性的实例。参数语法定义所需的结果。

例如,CPU 利用率是虚拟机对象的一个属性。如果虚拟机具有多个 CPU,每个 CPU 的 CPU 利用率都是一个衡量指标实例。如果虚拟机具有一个 CPU,则属性或衡量指标的函数返回相同的结果。

表 2. 循环函数格式

参数语法示例

描述

funct(${this, metric =a|b:optional_instance|c})

返回已将超级衡量指标分配到的对象的特定衡量指标的单一数据点。此超级衡量指标不获取该对象的子项或父项中的值。

funct(${this, attribute=a|b:optional_instance|c})

返回已将超级衡量指标分配到的对象的属性的一组数据点。此超级衡量指标不获取该对象的子项或父项中的值。

funct(${adapterkind=adaptkind, resourcekind=reskind, resourcename=resname, identifiers={id1=val1id2=val2,…}, metric=a|b:instance|c})

返回参数中指定的 resname 的特定衡量指标的单一数据点。此超级衡量指标不获取该对象的子项或父项中的值。

funct(${adapterkind=adaptkind, resourcekind=reskind, resourcename=resname, identifiers={id1=val1, id2=val2,…}, attribute=a|b:optional_instance|c})

返回一组数据点。此函数迭代参数中指定的 resname 的属性。此超级衡量指标不获取该对象的子项或父项中的值。

funct(${adapterkind=adaptkind, resourcekind=reskind, depth=dep}, metric=a|b:optional_instance|c})

返回一组数据点。此函数迭代参数中指定的 reskind 的衡量指标。此超级衡量指标获取子项(深度 > 0)或父项(深度 < 0)中的值,其中的深度描述关系链中的对象位置。

例如,一个典型的关系链包括一个数据中心、群集、主机和虚拟机,其中数据中心在顶层,虚拟机在底层。如果已为群集分配此超级衡量指标,并且函数定义包括深度 = 2,则超级衡量指标会获取虚拟机中的值。如果函数定义包括深度 = -1,则超级衡量指标会获取数据中心中的值。

funct(${adapterkind=adaptkind, resourcekind=reskind, depth=dep}, attribute=a|b:optional_instance|c})

返回一组数据点。此函数迭代参数中指定的 reskind 的属性。此超级衡量指标获取子项(深度 > 0)或父项(深度 < 0)对象中的值。

例如,avg(${adapterkind=VMWARE, resourcekind=VirtualMachine, attribute=cpu|usage_average, depth=1}) 会通过 vCenter 适配器找到的类型为 VirtualMachine 的所有对象的 cpu|usage_average 属性计算所有衡量指标实例的平均值。vRealize Operations Manager在分配超级衡量指标所在的对象类型的下一级中搜索对象。

单一函数

单一函数仅对一个值或一对值进行计算。

表 3. 单一函数

功能

格式

描述

abs

abs(x)

x 的绝对值。x 可以是任意浮点数。

acos

acos(x)

x 的反余弦。

asin

asin(x)

x 的反正弦。

atan

atan(x)

x 的反正切。

ceil

ceil(x)

大于或等于 x 的最小整数。

cos

cos(x)

x 的余弦。

cosh

cosh(x)

x 的双曲余弦。

exp

exp(x)

e 的 x 次幂。

floor

floor(x)

小于或等于 x 的最大整数。

log

log(x)

x 的自然对数(底为 x)。

log10

log10(x)

x 的常用对数(底为 10)。

pow

pow(x,y)

x 的 y 次幂。

rand

rand()

生成大于或等于 0.0 且小于 1.0 的伪随机浮点数。

sin

sin(x)

x 的正弦。

sinh

sinh(x)

x 的双曲正弦。

sqrt

sqrt(x)

x 的平方根。

tan

tan(x)

x 的正切。

tanh

tanh(x)

x 的双曲正切。

运算符

运算符是要在函数之间包含或插入的数学符号。

表 4. 运算符

运算符

描述

+

-

*

/

%

取模

==

等于

! =

不等于

<

小于

<=

小于或等于

>

大于

>=

大于或等于

||

&&

!

? :

三元运算符。if/then/else

例如:conditional_expression ? expression_if_condition_is_true : expression_if_condition_is_false

有关三元运算符的更多信息,请参见 增强您的超级衡量指标

( )

括号

[ ]

在表达式数组中使用

[x, y, z]

一个包含 x、y、z 的数组。例如,min([x, y, z])