1 Aggregatfunktionen

Sofern nicht anders angegeben, werden alle hier aufgeführten Funktionen unterstützt in:

Aggregatfunktionen können arbeiten mit:

  • der Historie von Datenpunkten, zum Beispiel min(/host/key,1h)
  • foreach-Funktionen als einzigem Parameter, zum Beispiel min(last_foreach(/*/key)) (nur in berechneten Datenpunkten; kann nicht in Auslösern verwendet werden)

Die Funktionen sind ohne zusätzliche Informationen aufgeführt. Klicken Sie auf die Funktion, um die vollständigen Details anzuzeigen.

Function Description
avg Der Durchschnittswert eines Datenpunkts innerhalb des definierten Auswertungszeitraums.
bucket_percentile Berechnet das Perzentil aus den Buckets eines Histogramms.
count Die Anzahl der Werte in einem von einer foreach-Funktion zurückgegebenen Array.
histogram_quantile Berechnet das φ-Quantil aus den Buckets eines Histogramms.
item_count Die Anzahl vorhandener Datenpunkte in der Konfiguration, die den Filterkriterien entsprechen.
kurtosis Die „Schwanzlastigkeit“ der Wahrscheinlichkeitsverteilung der erfassten Werte innerhalb des definierten Auswertungszeitraums.
mad Die mediane absolute Abweichung der erfassten Werte innerhalb des definierten Auswertungszeitraums.
max Der höchste Wert eines Datenpunkts innerhalb des definierten Auswertungszeitraums.
min Der niedrigste Wert eines Datenpunkts innerhalb des definierten Auswertungszeitraums.
skewness Die Asymmetrie der Wahrscheinlichkeitsverteilung der erfassten Werte innerhalb des definierten Auswertungszeitraums.
stddevpop Die Populationsstandardabweichung der erfassten Werte innerhalb des definierten Auswertungszeitraums.
stddevsamp Die Stichprobenstandardabweichung der erfassten Werte innerhalb des definierten Auswertungszeitraums.
sum Die Summe der erfassten Werte innerhalb des definierten Auswertungszeitraums.
sumofsquares Die Summe der Quadrate der erfassten Werte innerhalb des definierten Auswertungszeitraums.
varpop Die Populationsvarianz der erfassten Werte innerhalb des definierten Auswertungszeitraums.
varsamp Die Stichprobenvarianz der erfassten Werte innerhalb des definierten Auswertungszeitraums.

Allgemeine Parameter

  • /host/key ist ein allgemeiner obligatorischer erster Parameter für die Funktionen, die auf die Historie des Host-Datenpunkts verweisen
  • (sec|#num)<:time shift> ist ein allgemeiner zweiter Parameter für die Funktionen, die auf die Historie des Host-Datenpunkts verweisen, wobei:
    • sec - maximaler Auswertungszeitraum in Sekunden (Zeit-Suffixe können verwendet werden), oder
    • #num - maximaler Auswertungsbereich in den zuletzt erfassten Werten (wenn ihm ein Hash-Zeichen vorangestellt ist)
    • time shift (optional) ermöglicht es, den Auswertungszeitpunkt zeitlich zurückzuverschieben. Siehe weitere Details zur Angabe von time shift.

Funktionsdetails

Einige allgemeine Hinweise zu Funktionsparametern:

  • Funktionsparameter werden durch ein Komma getrennt
  • Optionale Funktionsparameter (oder Parameterteile) werden durch < > gekennzeichnet
  • Funktionsspezifische Parameter werden bei jeder Funktion beschrieben
  • Die Parameter /host/key und (sec|#num)<:time shift> dürfen niemals in Anführungszeichen gesetzt werden
avg(/host/key,(sec|#num)<:time shift>)

Der Durchschnittswert eines Datenpunkts innerhalb des definierten Auswertungszeitraums.
Unterstützte Werttypen: Float, Integer.
Unterstützte foreach-Funktionen: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.

Parameter: siehe allgemeine Parameter.

Time shift ist nützlich, wenn der aktuelle Durchschnittswert mit dem Durchschnittswert zu einem früheren Zeitpunkt verglichen werden soll.

Beispiele:

avg(/host/key,1h) #der Durchschnittswert der letzten Stunde bis jetzt
avg(/host/key,1h:now-1d) #der Durchschnittswert für eine Stunde von vor 25 Stunden bis vor 24 Stunden
avg(/host/key,#5) #der Durchschnittswert der fünf neuesten Werte
avg(/host/key,#5:now-1d) #der Durchschnittswert der fünf neuesten Werte, ausgenommen der in den letzten 24 Stunden empfangenen Werte
avg(/host/proc.num,5m)>300 #Auslöser, wenn die durchschnittliche Anzahl der Prozesse in den letzten 5 Minuten über 300 lag
bucket_percentile(item filter,time period,percentage)

Berechnet das Perzentil aus den Buckets eines Histogramms.

Parameter:

Kommentare:

  • Nur in berechneten Datenpunkten unterstützt;
  • Diese Funktion ist ein Alias für histogram_quantile(percentage/100, bucket_rate_foreach(item filter, time period, 1)).

Beispiele:

bucket_percentile(/*/http_request_duration_seconds_bucket[*],5m,95) #calculate the 95th percentile response time over 5 minutes
bucket_percentile(/*/apiserver_request_duration_seconds_bucket[*],10m,99) #calculate the 99th percentile API latency
count(func_foreach(item filter,<time period>),<operator>,<pattern>)

Die Anzahl der Werte in einem Array, das von einer foreach-Funktion zurückgegeben wird.
Unterstützte foreach-Funktionen: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.

Parameter:

  • func_foreach - foreach-Funktion, für die die Anzahl der zurückgegebenen Werte gezählt werden soll. Siehe foreach-Funktionen für Details. Beachten Sie, dass count_foreach und bucket_rate_foreach zusätzliche Parameter unterstützen.
  • item filter - siehe item filter;
  • time period - siehe time period;
  • operator (muss in doppelte Anführungszeichen gesetzt werden). Unterstützte operators:
    eq - gleich
    ne - ungleich
    gt - größer als
    ge - größer oder gleich
    lt - kleiner als
    le - kleiner oder gleich
    like - trifft zu, wenn das Muster enthalten ist (Groß-/Kleinschreibung wird beachtet)
    bitand - bitweises UND
    regexp - Groß-/Kleinschreibung beachtende Übereinstimmung mit dem in pattern angegebenen regulären Ausdruck
    iregexp - Groß-/Kleinschreibung ignorierende Übereinstimmung mit dem in pattern angegebenen regulären Ausdruck
  • pattern - das erforderliche Muster (String-Argumente müssen in doppelte Anführungszeichen gesetzt werden); unterstützt, wenn operator im dritten Parameter angegeben ist.

Kommentare:

  • Die Verwendung von count() mit einer verlaufsbezogenen foreach-Funktion (max_foreach, avg_foreach usw.) kann Auswirkungen auf die Performance haben, während die Verwendung von exists_foreach(), das nur mit Konfigurationsdaten arbeitet, keinen solchen Effekt hat.
  • Optionale Parameter operator oder pattern können nach einem Komma nicht leer gelassen, sondern nur vollständig weggelassen werden.
  • Wenn bitand als dritter Parameter verwendet wird, kann der vierte Parameter pattern als zwei durch '/' getrennte Zahlen angegeben werden: number_to_compare_with/mask. count() berechnet ein „bitweises UND“ aus dem Wert und der mask und vergleicht das Ergebnis mit number_to_compare_with. Wenn das Ergebnis des „bitweisen UND“ gleich number_to_compare_with ist, wird der Wert gezählt.
    Wenn number_to_compare_with und mask gleich sind, muss nur die mask angegeben werden (ohne '/').
  • Wenn regexp oder iregexp als dritter Parameter verwendet wird, kann der vierte Parameter pattern ein gewöhnlicher oder globaler (beginnend mit '@') regulärer Ausdruck sein. Bei globalen regulären Ausdrücken wird die Groß-/Kleinschreibung aus den Einstellungen des globalen regulären Ausdrucks übernommen. Für den Zweck des regexp-Abgleichs werden Float-Werte immer mit 4 Dezimalstellen nach dem '.' dargestellt. Beachten Sie außerdem, dass bei großen Zahlen Unterschiede zwischen der dezimalen (in der Datenbank gespeicherten) und der binären (vom Zabbix-Server verwendeten) Darstellung die 4. Dezimalstelle beeinflussen können.

Beispiele:

count(max_foreach(/*/net.if.in[*],1h)) #calculate the number of net.if.in items that received data in the last hour until now
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #calculate the number of file systems with over 95% of disk space used
histogram_quantile(quantile,bucket1,value1,bucket2,value2,...)

Berechnet das φ-Quantil aus den Buckets eines Histogramms.
Unterstützte foreach-Funktion: bucket_rate_foreach.

Parameter:

  • quantile - 0 ≤ φ ≤ 1;
  • bucketN, valueN - manuell eingegebene Parameterpaare (>=2) oder die Antwort von bucket_rate_foreach.

Kommentare:

  • Nur in berechneten Datenpunkten unterstützt;
  • Entspricht funktional 'histogram_quantile' aus PromQL;
  • Gibt -1 zurück, wenn die Werte des letzten 'Infinity'-Buckets ("+inf") gleich 0 sind.

Beispiele:

histogram_quantile(0.75,1.0,last(/host/rate_bucket[1.0]),"+Inf",last(/host/rate_bucket[Inf]))
histogram_quantile(0.5,bucket_rate_foreach(//item_key,30s))
item_count(item filter)

Die Anzahl der in der Konfiguration vorhandenen Datenpunkte, die den Filterkriterien entsprechen.
Unterstützter Werttyp: Integer.

Parameter:

  • item filter - Kriterien für die Auswahl von Datenpunkten; ermöglicht Referenzen nach Host-Gruppe, Host, Datenpunktschlüssel und Tags. Platzhalter werden unterstützt. Siehe item filter für weitere Details.

Kommentare:

  • Nur in berechneten Datenpunkten unterstützt;
  • Funktioniert als Alias für die Funktion count(exists_foreach(item_filter)).

Beispiele:

item_count(/*/agent.ping?[group="Host group 1"]) #calculate the number of hosts with the agent.ping item in "Host group 1"
kurtosis(/host/key,(sec|#num)<:time shift>)

Die „Schwänzigkeit“ der Wahrscheinlichkeitsverteilung der erfassten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: Kurtosis.
Unterstützte Werttypen: Float, Integer.
Unterstützte foreach-Funktion: last_foreach.

Parameter: siehe allgemeine Parameter.

Beispiele:

kurtosis(/host/system.cpu.util[,user],5m)>5 #trigger on sharp spikes of CPU utilization over 5 minutes
mad(/host/key,(sec|#num)<:time shift>)

Die mittlere absolute Abweichung vom Median der erfassten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: Median absolute deviation.
Unterstützte Wertetypen: Float, Integer.
Unterstützte foreach-Funktion: last_foreach.

Parameter: siehe allgemeine Parameter.

Beispiele:

last(/host/system.cpu.util[,user])>avg(/host/system.cpu.util[,user],1h)+3*mad(/host/system.cpu.util[,user],1h) #Auslöser, wenn der letzte CPU-Auslastungswert statistisch signifikant ist
max(/host/key,(sec|#num)<:time shift>)

Der höchste Wert eines Datenpunkts innerhalb des definierten Auswertungszeitraums.
Unterstützte Werttypen: Float, Integer.
Unterstützte foreach-Funktionen: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.

Parameter: siehe allgemeine Parameter.

Beispiele:

max(/host/key,1h) - min(/host/key,1h) #berechnet die Differenz zwischen den maximalen und minimalen Werten innerhalb der letzten Stunde bis jetzt (die Delta der Werte)
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #gibt die höchste Festplattenauslastung über alle Linux-Server zurück
min(/host/key,(sec|#num)<:time shift>)

Der niedrigste Wert eines Datenpunkts innerhalb des definierten Auswertungszeitraums.
Unterstützte Wertetypen: Float, Integer.
Unterstützte foreach-Funktionen: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.

Parameter: siehe allgemeine Parameter.

Beispiele:

max(/host/key,1h) - min(/host/key,1h) #calculate the difference between the maximum and minimum values within the last hour until now (the delta of values)
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #return the minimum operational state for any interface across all Linux servers
skewness(/host/key,(sec|#num)<:time shift>)

Die Asymmetrie der Wahrscheinlichkeitsverteilung der erfassten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: Skewness.
Unterstützte Wertetypen: Float, Integer.
Unterstützte foreach-Funktion: last_foreach.

Parameter: siehe allgemeine Parameter.

Beispiele:

skewness(/host/vm.memory.size[used],5m)<-20 #Auslöser bei plötzlichen negativen Einbrüchen, die auf Abstürze/Neustarts hinweisen
stddevpop(/host/key,(sec|#num)<:time shift>)

Die Populationsstandardabweichung der erfassten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: Standardabweichung.
Unterstützte Wertetypen: Float, Integer.
Unterstützte foreach-Funktion: last_foreach.

Parameter: siehe allgemeine Parameter.

Beispiele:

stddevpop(/host/system.cpu.util[,user],10m)>7 #Auslöser, wenn die CPU-Auslastung stark schwankt (die Populationsstandardabweichung liegt über 7 innerhalb von 10 Minuten)
stddevsamp(/host/key,(sec|#num)<:time shift>)

Die Stichproben-Standardabweichung der erfassten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: Standardabweichung.
Unterstützte Wertetypen: Float, Integer.
Unterstützte foreach-Funktion: last_foreach.

Parameter: siehe allgemeine Parameter.

Mindestens zwei Datenwerte sind erforderlich, damit diese Funktion arbeitet.

Beispiele:

stddevsamp(/host/system.cpu.util[,user],10m)>7 #Auslöser, wenn die CPU-Auslastung stark schwankt (die Stichproben-Standardabweichung liegt über 7 innerhalb von 10 Minuten)
sum(/host/key,(sec|#num)<:time shift>)

Die Summe der erfassten Werte innerhalb des definierten Auswertungszeitraums.
Unterstützte Wertetypen: Float, Integer.
Unterstützte foreach-Funktionen: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.

Parameter: siehe allgemeine Parameter.

Beispiele:

sum(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #die Summe der neuesten Werte für den eingehenden Netzwerkverkehr über alle Linux-Server hinweg
sumofsquares(/host/key,(sec|#num)<:time shift>)

Die Summe der Quadrate der erfassten Werte innerhalb des definierten Auswertungszeitraums.
Unterstützte Wertetypen: Float, Integer.
Unterstützte foreach-Funktion: last_foreach.

Parameter: siehe allgemeine Parameter.

Beispiele:

sumofsquares(/host/calculated.net.if.rate,1m) #die Summe der Quadrate für die Netzwerkverkehrsrate (eingehend vs. ausgehend)
sumofsquares(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #die Summe der Quadrate der neuesten eingehenden Netzwerkverkehrswerte über alle Linux-Server hinweg
varpop(/host/key,(sec|#num)<:time shift>)

Die Populationsvarianz der erfassten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: Varianz.
Unterstützte Wertetypen: Float, Integer.
Unterstützte foreach-Funktion: last_foreach.

Parameter: siehe allgemeine Parameter.

Beispiele:

varpop(/host/system.cpu.util[,user],10m)>50 #Auslöser, wenn die CPU-Auslastung stark schwankt (Varianz liegt über 50 innerhalb von 10 Minuten)
varsamp(/host/key,(sec|#num)<:time shift>)

Die Stichprobenvarianz der erfassten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: Varianz.
Unterstützte Wertetypen: Float, Integer.
Unterstützte foreach-Funktion: last_foreach.

Parameter: siehe allgemeine Parameter.

Mindestens zwei Datenwerte sind erforderlich, damit diese Funktion funktioniert.

Beispiele:

varsamp(/host/system.cpu.util[,user],10m)>50 #Auslöser, wenn die CPU-Auslastung stark schwankt (Stichprobenvarianz liegt über 50 innerhalb von 10 Minuten)

Siehe alle unterstützten Funktionen.