句やリソース エントリ エイリアスを使用して、スーパー メトリックを拡張できます。
where 句
where 句は、スーパー メトリックに特定のメトリック値を使用できるかどうかを確認します。この句を使用して、where=(${metric=metric_group|my_metric} > 0) のように、同じオブジェクトの異なるメトリックを参照できます。
例: count(${objecttype = ExampleAdapter, adaptertype = ExampleObject, metric = ExampleGroup|Rating, depth=2, where =($value==1})
IsFresh 関数
where 句で isFresh 関数を使用して、メトリックの最後の値が最新であるかどうかを確認します。
VMware Aria Operations で公開されたすべてのメトリックについて、最新の公開時刻を持つポイントが、そのメトリックの最後のポイントとして呼び出されます。メトリックの最後のポイントの値が、そのメトリックの最後の値と呼ばれます。メトリックの最後のポイントから経過した時間がそのメトリックの推定公開間隔よりも小さくなった場合、そのメトリックの最後のポイントが最新のものと見なされます。
- ${this, metric=a|b, where=($value.isFresh())} は、最後の値が最新のものである場合にメトリック a|b の最後の値を返します。
- ${this, metric=a|b, where=($value == 7 && $value.isFresh())} は、最後の値が 7 に等しく最新である場合に、メトリック a|b の最後の値が返されます。
- ${this, metric=a|b, where=(${metric=c|d} == 7 && ${metric=c|d}.isFresh())} は、メトリック c|d の最後の値が 7 に等しく最新である場合にのみ、メトリック a|b の最後の値を返します。
リソース エントリ エイリアス
リソース エントリは、スーパー メトリックの計算で、VMware Aria Operations からメトリック データを取得するために使用します。リソース エントリを含む式は、$ で始まり、その後に {..} ブロック が続きます。スーパー メトリックの計算では、同じリソース エントリが複数回必要になる場合があります。計算の変更が必要な場合は、すべてのリソース エントリの変更が必要になり、これがエラーの原因となる可能性があります。リソース エントリ エイリアスを使用して、式を書き直すことができます。
次の例では、リソース エントリを 2 回使用しています。
(min(${adaptertype=VMWARE, objecttype=HostSystem, attribute= cpu|demand|active_longterm_load, depth=5, where=($value>=0)}) + 0.0001)/(max(${adaptertype=VMWARE, objecttype=HostSystem, attribute=cpu|demand|active_longterm_load, depth=5, where=($value>=0)}) + 0.0001)"次の例では、リソース エントリ エイリアスを使用する式の記述方法を示します。両方の式の出力は同じです。
(min(${adaptertype=VMWARE, objecttype=HostSystem, attribute= cpu|demand|active_longterm_load, depth=5, where=($value>=0)} as cpuload) + 0.0001)/(max(cpuload) + 0.0001)"- エイリアスを作成する場合は、リソースエントリの後に as、その後に alias:name を記述します。例、[${…} as alias_name]
- エイリアスには、()[]+-*/%|&! =<>,.? :$ の特殊文字を含めることはできず、数字で始めることはできません。
- エイリアスの名前は、スーパー メトリック式のすべての名前と同じように、大文字と小文字を区別します。
- エイリアス名の使用はオプションです。定義したエイリアスは、式で使わなくてもかまいません。
- 各エイリアス名は、1 回だけ使用できます。例、 ${resource1,…} as r1 + ${resource2,…} as R1
- 同じリソース エントリに複数のエイリアスを指定できます。例、[${…} as a1 as a2].
条件式 ?: の 3 項演算子
式で 3 項演算子を使用して、条件式を実行できます。
例、expression_condition ? expression_if_true : expression_if_false
条件式の結果は、数に変換されます。値が 0 以外の場合、条件は true とみなされます。
例:-0.7 ? 10 : 20 = 102 + 2 / 2 - 3 ? 4 + 5 / 6 : 7 + 8 = 15 (7 + 8)
条件に応じて、expression_if_true または expression_if_false が実行されますが、両方は実行されません。この方法で、次のような式を作成できます。${this, metric=cpu|demandmhz} as a ! = 0 ? 1/a : -13 項演算子では、他の 3 項演算子を含め、他の演算子をすべての式に含めることができます。
例、! 1 ? 2 ? 3 : 4 : 5 = 5