vRealize Operations Manager には、スーパー メトリック数式で使用できる関数と演算子が用意されています。関数はループ関数またはシングル関数のいずれかです。

ループ関数

ループ関数は、複数の値で動作します。
表 1. ループ関数
関数 説明
avg 収集された値の平均値。
combine 含まれるオブジェクトのすべてのメトリック値を結合して単一のメトリック タイムラインにします。
count 収集された値の数
max 収集された値の最大値。
収集された値の最小値。
sum 収集された値の合計値
注: vRealize Operations Manager 5.x では 2 種類の合計関数 sum (expr)sumN (expr, depth) が存在しました。 vRealize Operations Manager 6.x では合計関数 sum (expr) のみがあります。Depth は、デフォルトでは depth=1 で設定されます。depth の設定については、 スーパー メトリックの作成を参照してください。

ループ関数の引数

ループ関数は、オブジェクトまたはオブジェクト タイプの属性またはメトリック値を返します。属性は、オブジェクトから収集するアダプタのメトリックを記述するメタデータです。メトリックは属性のインスタンスです。引数構文は任意の結果を定義します。

たとえば、CPU 使用率は仮想マシン オブジェクトの属性です。仮想マシンが複数の CPU を備える場合、各 CPU の CPU 使用率がメトリック インスタンスになります。仮想マシンが 1 つの CPU を備えるばあい、属性またはメトリックの関数は同じ結果を返します。

表 2. ループ関数の形式
引数構文の例 説明
funct(${this, metric =<a|b:optional_instance|c>}) スーパー メトリックが割り当てられているオブジェクトの特定のメトリックの単一データ ポイントを返します。このスーパー メトリックはオブジェクトの子または親から値を取りません。
funct(${this, attribute=<a|b:optional_instance|c>}) スーパー メトリックが割り当てられているオブジェクトの属性のデータ ポイントのセットを返します。このスーパー メトリックはオブジェクトの子または親から値を取りません。
funct(${adaptertype=adaptkind, objecttype=reskind, resourcename=resname, identifiers={id1=val1id2=val2,…}, metric=a|b:instance|c}) 引数で指定されている resname の特定のメトリックの単一データ ポイントを返します。このスーパー メトリックはオブジェクトの子または親から値を取りません。
funct(${adaptertype=adaptkind, objecttype=reskind, resourcename=resname, identifiers={id1=val1, id2=val2,…}, attribute=a|b:optional_instance|c}) データ ポイントのセットを返します。この関数は引数で指定されている resname の属性を繰り返し使用します。このスーパー メトリックはオブジェクトの子または親から値を取りません。
funct(${adaptertype=adaptkind, objecttype=reskind, depth=dep}, metric=a|b:optional_instance|c}) データ ポイントのセットを返します。この関数は引数で指定されている reskind のメトリックを繰り返し使用します。このスーパー メトリックは、子(depth > 0)または親(depth < 0)のオブジェクトから値を取ります。ここで、depth は関係チェーンにおけるオブジェクトの場所を記述します。

たとえば、標準的な関係チェーンにはデータセンター、クラスタ、ホスト、仮想マシンが含まれます。データセンターが最上位で、仮想マシンが最下位です。スーパー メトリックがクラスタに割り当てられ、関数の定義に depth = 2 が含まれる場合、スーパー メトリックは仮想マシンから値を取ります。関数の定義に depth = -1 が含まれる場合、スーパー メトリックはデータセンターから値を取得します。

funct(${adaptertype=adaptkind, objecttype=reskind, depth=dep}, attribute=a|b:optional_instance|c}) データ ポイントのセットを返します。この関数は引数で指定されている reskind の属性を繰り返し使用します。このスーパー メトリックはオブジェクトの子(depth > 0)または親(depth < 0)から値を取りません。

たとえば、avg(${adaptertype=VMWARE, objecttype=VirtualMachine, attribute=cpu|usage_average, depth=1}) は、vCenter Server アダプタが検出したタイプ VirtualMachine のすべてのオブジェクトについて、cpu|usage_average 属性を持つすべてのメトリック インスタンスの平均を算出します。vRealize Operations Manager は、スーパー メトリックを割り当てたオブジェクト タイプの 1 レベル下位のオブジェクトを検索します。

シングル関数

シングル関数は、単一の値または単一の値ペアに対してのみ動作します。

表 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. 数値演算子
演算子 説明
+ 加算
- 減算
* 乗算
/ 除算
% モジュロ
== 等しい
! = 等しくない
< 小さい
<= 小さいか等しい
> 大きい
>= 大きいか等しい
|| または
&& および
! Not
? : 3 項演算子。If/then/else

例:conditional_expression ? expression_if_condition_is_true : expression_if_condition_is_false

3 項演算子については、スーパー メトリックを拡張するを参照してください。

( ) 括弧
[ ] 配列式で使用
[x, y, z] x, y, z を含む配列。例、min([x, y, z])
表 5. 文字列演算子
文字列演算子 説明
が次と等しい メトリック/プロパティ文字列の値が指定された文字列と等しい場合に true を返します。
を含む メトリック/プロパティ文字列の値が指定された文字列を含んでいる場合に true を返します。
startsWith メトリック/プロパティ文字列の値が指定されたプリフィックスで始まる場合に true を返します。
endsWith メトリック/プロパティ文字列の値が指定されたサフィックスで終わる場合に true を返します。
!equals メトリック/プロパティ文字列の値が指定された文字列と等しくない場合に true を返します。
!contains メトリック/プロパティ文字列の値が指定された文字列を含んでいない場合に true を返します。
!startsWith メトリック/プロパティ文字列の値が指定されたプリフィックスで始まらない場合に true を返します。
!endsWith メトリック/プロパティ文字列の値が指定されたサフィックスで終わらない場合に true を返します。
注: 文字列演算子は、「where」条件でのみ有効です。例: ${this, metric=summary|runtime|isIdle, where = "System Properties|resource_kind_type !contains GENERAL"}