Sie können Ihre Super-Metriken verbessern, indem Sie Eintrags-Aliasing bei Klauseln und Ressourcen nutzen.

Wo-Klausel

Die Wo-Klausel prüft, ob ein bestimmter Metrikwert in der Super-Metrik genutzt werden kann. Benutzen Sie diese Klausel, um auf eine andere Metrik desselben Objekts zu zeigen, zum Beispiel metric_group|my_metric} > 0).

Zum Beispiel: count(${objecttype = ExampleAdapter, adaptertype = ExampleObject, metric = ExampleGroup|Rating, depth=2, where =($value==1})

IsFresh-Funktion

Nutzen Sie die Funktion isFresh in der where-Klausel, um zu überprüfen, ob der letzte Wert der Metriken neu ist oder nicht.

Für jede in VMware Aria Operations veröffentlichte Metrik wird der Punkt mit der aktuellen Veröffentlichungszeit als letzter Punkt dieser Metrik bezeichnet. Der Wert des letzten Punktes dieser Metrik wird als letzter Wert dieser Metrik bezeichnet. Der letzte Punkt einer Metrik wird als neu eingestuft, wenn die Zeit, die nach dem letzten Punkt der Metrik verstrichen ist, kürzer ist als das geschätzte Veröffentlichungsintervall dieser Metrik.

Die Funktion isFresh gibt „true“ zurück, wenn der letzte Wert der Metriken neu ist. Beispielsweise gibt in den folgenden Szenarien die Funktion:
  • ${this, metric=a|b, where=($value.isFresh())} den letzten Wert der Metrik a|b zurück, wenn der letzte Wert neu ist.
  • ${this, metric=a|b, where=($value == 7 && $value.isFresh())} gibt den letzten Wert der Metrik a|b zurück, wenn er gleich sieben und neu ist.
  • ${this, metric=a|b, where=(${metric=c|d} == 7 && ${metric=c|d}.isFresh())} gibt den letzten Wert der Metrik a|b nur dann zurück, wenn der letzte Wert der Metrik c|d gleich sieben und neu ist.

Ressourcen-Eintrag-Aliasing

Ressourcen-Einträge werden genutzt, um von VMware Aria Operations Metrikdaten für Supermetrik-Berechnungen abzurufen. Ein Ressourcen-Eintrag ist Teil eines Ausdrucks, welcher mit $ beginnt, gefolgt von einem {..} Block. Bei der Berechnung einer Super-Metrik kann es vorkommen, dass Sie denselben Ressourcen-Eintrag mehrmals benutzen müssen. Wenn Sie Veränderungen in Ihrer Berechnung vornehmen müssen, müssen Sie alle Ressourcen-Einträge ändern, wodurch möglicherweise Fehler auftreten können. Nutzen Sie Ressourcen-Eintrag-Aliasing, um den Ausdruck erneut zu schreiben.

Das folgende Beispiel zeigt einen Ressourcen-Eintrag, der zweimal benutzt worden ist.

(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)"

Im folgenden Beispiel wird gezeigt, wie Sie einen Ausdruck mithilfe von Ressourcen-Eintrag-Aliasing schreiben können. Das Ergebnis beider Ausdrücke ist identisch.

(min(${adaptertype=VMWARE, objecttype=HostSystem, attribute= cpu|demand|active_longterm_load, depth=5, where=($value>=0)} as cpuload) + 0.0001)/(max(cpuload) + 0.0001)"
Richten Sie sich nach diesen Leitlinien, wenn Sie Ressourcen-Eintrag-Aliasing benutzen:
  • Achten Sie bei der Erstellung eines Alias darauf, nach dem Ressourcen-Eintrag als und anschließend alias:name zu schreiben. Beispiel: ${…} als alias_name.
  • Das Alias darf die Sonderzeichen ()[]+-*/%|&!=<>,.?:$ nicht enthalten und darf nicht mit einer Ziffer beginnen.
  • Bei einem Aliasnamen werden Klein- und Großbuchstaben unterschieden, wie bei allen Namen in Super-Metrik-Ausdrücken.
  • Die Benutzung eines Aliasnamens ist optional. Sie können ein Alias definieren, ohne ihn in einem Ausdruck zu benutzen.
  • Jeder Aliasname darf nur einmal verwendet werden. Beispiel: ${resource1,…} as r1 + ${resource2,…} als R1.
  • Sie können mehrere Aliase für denselben Ressourcen-Eintrag spezifizieren. Beispiel: ${…} als a1 als a2.

Konditionaler Ausdruck ?: Dreifachoperatoren

Sie können einen Dreifachoperator in einem Ausdruck für die Ausführung konditionaler Ausdrücke nutzen.

Beispiel: expression_condition ? expression_if_true : expression_if_false.

Das Ergebnis des konditionalen Ausdrucks wird in eine Zahl umgewandelt. Wenn der Wert nicht 0 ist, wird angenommen, dass die Bedingung korrekt ist.

Beispiel: -0.7 ? 10 : 20 entspricht 10. 2 + 2 / 2 - 3 ? 4 + 5/6 : 7 + 8 entspricht 15 (7 + 8).

Je nach Bedingung wird entweder expression_if_true oder expression_if_false ausgeführt, aber nicht beide zusammen. Dies ermöglicht Ihnen, Ausdrücke zu schreiben wie z. B. ${this, metric=cpu|demandmhz} als ein != 0 ? 1/a : -1. Ein Dreifach-Operator kann in all seinen Ausdrücken andere Operatoren enthalten, einschließlich anderer Dreifach-Operatoren.

Beispiel: !1 ? 2 ? 3 : 4 : 5 entspricht 5.