您可以使用子句和設定資源項目別名來增強超級度量。

Where 子句

Where 子句會驗證某個特定的度量值是否可用在超級度量中。您可以使用這個子句來指向同一物件的不同度量,如 where = "metric_group|my_metric > 0

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

設定資源項目別名

資源項目用於從 vRealize Operations Manager 擷取度量資料,以計算超級度量。資源項目是運算式的一部分,其開頭是 $,後接 {..} block。計算超級度量時,您可能必須使用相同的資源項目一次以上。如果需要變更計算,則必須變更每個資源項目,而這麼做可能會產生錯誤。因此,您可以使用設定資源項目別名功能,來重新撰寫運算式。

下例示範使用一個資源項目兩次的計算。

(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,然後再寫上項目別名。例如:${…} as alias_name

  • 別名不能包含 ()[]+-*/%|&! =<>,.? :$ 等特殊字元,而且不能以數字開頭。

  • 別名名稱與超級度量運算式中的所有名稱一樣,均區分大小寫。

  • 您不一定要使用別名名稱。您可以定義別名,但不在運算式中使用。

  • 每個別名名稱只能使用一次。例如:${resource1,…} as r1 + ${resource2,…} as R1

  • 您可以對同一個資源項目指定多個別名。例如:${…} as a1 as a2

條件運算式 ?: 三元運算子

您可以在運算式中使用三元運算子來執行條件運算式。

例如:運算式條件 ? 若運算式條件成立 : 若運算式條件不成立

條件運算式的結果會轉換為數字。如果該值不是 0,則條件會假設為 True。

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

它會根據條件執行若運算式條件成立若運算式條件不成立,但不會兩者都執行。如此一來,您就可以將運算式寫成以下所示的樣子:${this, metric=cpu|demandmhz} as a ! = 0 ? 1/a : -1。所有三元運算子運算式中都可以包含其他運算子,包括其他三元運算子。

例如:! 1 ? 2 ? 3 : 4 : 5 等於 5。