[comment]: # attributes: notoc

[comment]: # ({9ab02dbe-ee60e21e})
# 1 Aggregatfunktionen

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

-   [Ausdrucks-Auslöser](/manual/config/triggers/expression)
-   [Berechnete Datenpunkte](/manual/config/items/itemtypes/calculated)
-   [Ausdrucksmakros](/manual/config/macros/expression_macros)

Aggregatfunktionen können mit Folgendem arbeiten:

-   der Historie von Datenpunkten, zum Beispiel `min(/host/key,1h)`
-   [foreach-Funktionen](/manual/appendix/functions/aggregate/foreach) als
    einzigem Parameter, zum Beispiel `min(last_foreach(/*/key))` (nur in berechneten Datenpunkten; kann nicht direkt in Auslösern verwendet werden)

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

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

[comment]: # ({/9ab02dbe-ee60e21e})

[comment]: # ({2acead3e-4d343eb8})
#### Allgemeine Parameter

-   `/host/key` ist ein gemeinsamer obligatorischer erster Parameter für die Funktionen, die sich auf den Verlauf von Host-Datenpunkten beziehen
-   `(sec|#num)<:time shift>` ist ein gemeinsamer zweiter Parameter für die Funktionen, die sich auf den Verlauf von Host-Datenpunkten beziehen, wobei:
    -   **sec** - maximale [Auswertungsperiode](/manual/config/triggers#evaluation-period) in Sekunden (Zeit-[Suffixe](/manual/appendix/suffixes) können verwendet werden), oder
    -   **\#num** - maximaler [Auswertungsbereich](/manual/config/triggers#evaluation-period) in den zuletzt erfassten Werten (wenn ein Hash-Zeichen vorangestellt ist)
    -   **time shift** (optional) ermöglicht es, den Auswertungspunkt in der Zeit zurückzuverschieben. Weitere [Details](/manual/config/triggers/expression#time-shift) zur Angabe von time shift finden Sie hier.

[comment]: # ({/2acead3e-4d343eb8})

[comment]: # ({c645f0e4-fe53c04c})
### 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

[comment]: # ({/c645f0e4-fe53c04c})

[comment]: # ({934606ff-f5993b4c})
##### avg(/host/key,(sec|#num)<:time shift>) {#avg}

Der Durchschnittswert eines Datenpunkts innerhalb des definierten Auswertungszeitraums.<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach functions](/manual/appendix/functions/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parameter: siehe [common parameters](#common-parameters).

Time shift ist nützlich, wenn der aktuelle Durchschnittswert mit dem Durchschnittswert von vor einiger Zeit verglichen werden soll.

Beispiele:

```default
avg(/host/key,1h) #der Durchschnittswert für die letzte Stunde bis jetzt
avg(/host/key,1h:now-1d) #der Durchschnittswert für eine Stunde von vor 25 Stunden bis vor 24 Stunden ab jetzt
avg(/host/key,#5) #der Durchschnittswert der fünf neuesten Werte
avg(/host/key,#5:now-1d) #der Durchschnittswert der fünf neuesten Werte ohne die 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
```

[comment]: # ({/934606ff-f5993b4c})

[comment]: # ({9237fab4-af24d13f})
##### bucket_percentile(item filter,time period,percentage) {#bucket-percentile}

Berechnet das Perzentil aus den Buckets eines Histogramms.<br>

Parameter: 

-   **item filter** - siehe [item filter](/manual/appendix/functions/aggregate/foreach#item-filter-syntax);<br>
-   **time period** - siehe [time period](/manual/appendix/functions/aggregate/foreach#time-period);<br>
-   **percentage** - Prozentwert (0-100).

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:

```default
bucket_percentile(/*/http_request_duration_seconds_bucket[*],5m,95) #berechnet die Antwortzeit des 95. Perzentils über 5 Minuten
bucket_percentile(/*/apiserver_request_duration_seconds_bucket[*],10m,99) #berechnet die API-Latenz des 99. Perzentils
```

[comment]: # ({/9237fab4-af24d13f})

[comment]: # ({6e12bb62-3c498650})
##### count(func_foreach(item filter,<time period>),<operator>,<pattern>) {#count}

Die Anzahl der Werte in einem Array, das von einer foreach-Funktion zurückgegeben wird.<br>
Unterstützte [foreach functions](/manual/appendix/functions/aggregate/foreach): *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. Weitere Informationen finden Sie unter [foreach functions](/manual/appendix/functions/aggregate/foreach). Beachten Sie, dass count_foreach und bucket_rate_foreach [zusätzliche Parameter](/manual/appendix/functions/aggregate/foreach#additional-parameters) unterstützen.
-   **item filter** - siehe [item filter](/manual/appendix/functions/aggregate/foreach#item-filter-syntax);<br>
-   **time period** - siehe [time period](/manual/appendix/functions/aggregate/foreach#time-period);<br>
-   **operator** (muss in doppelte Anführungszeichen gesetzt werden). Unterstützte `operators`:<br>*eq* - gleich<br>*ne* - ungleich<br>*gt* - größer<br>*ge* - größer oder gleich<br>*lt* - kleiner<br>*le* - kleiner oder gleich<br>*like* - stimmt überein, wenn das Muster enthalten ist (Groß-/Kleinschreibung wird beachtet)<br>*bitand* - bitweises UND<br>*regexp* - Groß-/Kleinschreibung beachtende Übereinstimmung mit dem in `pattern` angegebenen regulären Ausdruck<br>*iregexp* - Groß-/Kleinschreibung nicht beachtende Übereinstimmung mit dem in `pattern` angegebenen regulären Ausdruck<br>
-   **pattern** - das erforderliche Muster (String-Argumente müssen in doppelte Anführungszeichen gesetzt werden); wird 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 sich auf die Leistung auswirken, während die Verwendung von **exists_foreach()**, das nur mit Konfigurationsdaten arbeitet, diesen Effekt nicht hat.
-   Optionale Parameter *operator* oder *pattern* dürfen nach einem Komma nicht leer gelassen werden, sondern nur vollständig weggelassen werden.
-   Bei *bitand* als drittem Parameter kann der vierte Parameter `pattern` als zwei durch '/' getrennte Zahlen angegeben werden: **number_to_compare_with/mask**. count() berechnet das "bitweise 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.<br>Wenn *number_to_compare_with* und *mask* gleich sind, muss nur die *mask* angegeben werden (ohne '/').
-   Bei *regexp* oder *iregexp* als drittem Parameter kann der vierte Parameter `pattern` ein gewöhnlicher oder [global](/manual/regular_expressions#global-regular-expressions) (beginnend mit '@') regulärer Ausdruck sein. Bei globalen regulären Ausdrücken wird die Groß-/Kleinschreibung von den Einstellungen des globalen regulären Ausdrucks übernommen. Für den Abgleich mit regexp werden Fließkommawerte immer mit 4 Dezimalstellen nach dem '.' dargestellt. Beachten Sie außerdem, dass bei großen Zahlen Unterschiede in der dezimalen (in der Datenbank gespeicherten) und binären (vom Zabbix-Server verwendeten) Darstellung die 4. Dezimalstelle beeinflussen können.

Beispiele:

```default
count(max_foreach(/*/net.if.in[*],1h)) #berechnet die Anzahl der net.if.in-Datenpunkte, die bis jetzt in der letzten Stunde Daten empfangen haben
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #berechnet die Anzahl der Dateisysteme, bei denen mehr als 95 % des Speicherplatzes belegt sind
```

[comment]: # ({/6e12bb62-3c498650})

[comment]: # ({f07c0983-f3ad7158})
##### histogram_quantile(quantile,bucket1,value1,bucket2,value2,...) {#histogram-quantile}

Berechnet das φ-Quantil aus den Buckets eines Histogramms.<br>
Unterstützte [foreach function](/manual/appendix/functions/aggregate/foreach): *bucket_rate_foreach*.

Parameter: 

-   **quantile** - 0 ≤ φ ≤ 1;<br>
-   **bucketN, valueN** - manuell eingegebene Paare (>=2) von Parametern oder die Antwort von [bucket_rate_foreach](/manual/appendix/functions/aggregate/foreach).

Kommentare:

-   Nur in berechneten Datenpunkten unterstützt;
-   Entspricht funktional '[histogram\_quantile](https://prometheus.io/docs/prometheus/latest/querying/functions/#histogram-quantile)' von PromQL;
-   Gibt -1 zurück, wenn die Werte des letzten 'Infinity'-Buckets (*"+inf"*) gleich 0 sind.

Beispiele:

```default
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))
```

[comment]: # ({/f07c0983-f3ad7158})

[comment]: # ({53675d63-c8e3133a})
##### item_count(item filter) {#item-count}

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

Parameter: 

-   **item filter** - Kriterien für die Auswahl von Datenpunkten, ermöglichen die Referenzierung über Hostgruppe, Host, Datenpunkt-Schlüssel und Tags. Platzhalter werden unterstützt. Weitere Details finden Sie unter [item filter](/manual/appendix/functions/aggregate/foreach#item-filter-syntax).<br>

Kommentare:

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

Beispiele:

```default
item_count(/*/agent.ping?[group="Host group 1"]) #die Anzahl der Hosts mit dem *agent.ping*-Datenpunkt in der "Host group 1"
```

[comment]: # ({/53675d63-c8e3133a})

[comment]: # ({ad613717-88a54099})
##### kurtosis(/host/key,(sec|#num)<:time shift>) {#kurtosis}

Die "Schwanzlastigkeit" der Wahrscheinlichkeitsverteilung der gesammelten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: [Kurtosis](https://en.wikipedia.org/wiki/Kurtosis).<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach function](/manual/appendix/functions/aggregate/foreach): *last_foreach*.

Parameter: siehe [common parameters](#common-parameters).

Beispiele:

```default
kurtosis(/host/system.cpu.util[,user],5m)>5 #trigger bei starken Spitzen der CPU-Auslastung über 5 Minuten
```

[comment]: # ({/ad613717-88a54099})

[comment]: # ({1b18c768-bfb43a27})
##### mad(/host/key,(sec|#num)<:time shift>) {#mad}

Die mediane absolute Abweichung der gesammelten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: [Median absolute deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation).<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach function](/manual/appendix/functions/aggregate/foreach): *last_foreach*.

Parameter: siehe [common parameters](#common-parameters).

Beispiele:

```default
last(/host/system.cpu.util[,user])>avg(/host/system.cpu.util[,user],1h)+3*mad(/host/system.cpu.util[,user],1h) #Auslöser if the last CPU utilization value is statistically significant
```

[comment]: # ({/1b18c768-bfb43a27})

[comment]: # ({9ac9dd89-5882010b})
##### max(/host/key,(sec|#num)<:time shift>) {#max}

Der höchste Wert eines Datenpunkts innerhalb des definierten Auswertungszeitraums.<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach functions](/manual/appendix/functions/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parameter: siehe [common parameters](#common-parameters).

Beispiele:

```default
max(/host/key,1h) - min(/host/key,1h) #berechnet die Differenz zwischen dem maximalen und minimalen Wert innerhalb der letzten Stunde bis jetzt (die Delta-Werte)
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #gibt die höchste Speicherauslastung über alle Linux-Server zurück
```

[comment]: # ({/9ac9dd89-5882010b})

[comment]: # ({471d86a5-ffd1e499})
##### min(/host/key,(sec|#num)<:time shift>) {#min}

Der niedrigste Wert eines Datenpunkts innerhalb des definierten Auswertungszeitraums.<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach functions](/manual/appendix/functions/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parameter: siehe [common parameters](#common-parameters).

Beispiele:

```default
max(/host/key,1h) - min(/host/key,1h) #berechnet die Differenz zwischen dem maximalen und minimalen Wert innerhalb der letzten Stunde bis jetzt (die Delta-Werte)
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #gibt den minimalen Betriebszustand für jede Schnittstelle über alle Linux-Server zurück
```

[comment]: # ({/471d86a5-ffd1e499})

[comment]: # ({8d966168-6b6fb273})
##### skewness(/host/key,(sec|#num)<:time shift>) {#skewness}

Die Asymmetrie der Wahrscheinlichkeitsverteilung in den gesammelten Werten innerhalb des definierten Auswertungszeitraums. Siehe auch: [Skewness](https://en.wikipedia.org/wiki/Skewness).<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach function](/manual/appendix/functions/aggregate/foreach): *last_foreach*.

Parameter: siehe [common parameters](#common-parameters).

Beispiele:

```default
skewness(/host/vm.memory.size[used],5m)<-20 #trigger on sudden negative drops indicating crashes/restarts
```

[comment]: # ({/8d966168-6b6fb273})

[comment]: # ({0dc60fe3-11c2ea25})
##### stddevpop(/host/key,(sec|#num)<:time shift>) {#stddevpop}

Die Populationsstandardabweichung der gesammelten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: [Standardabweichung](https://en.wikipedia.org/wiki/Standard_deviation).<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach function](/manual/appendix/functions/aggregate/foreach): *last_foreach*.

Parameter: siehe [allgemeine Parameter](#common-parameters).

Beispiele:

```default
stddevpop(/host/system.cpu.util[,user],10m)>7 #CPU-Auslastung schwankt stark (die Populationsstandardabweichung liegt über 7)
```

[comment]: # ({/0dc60fe3-11c2ea25})

[comment]: # ({d870ca1f-1db77c44})
##### stddevsamp(/host/key,(sec|#num)<:time shift>) {#stddevsamp}

Die Stichproben-Standardabweichung der erfassten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: [Standardabweichung](https://en.wikipedia.org/wiki/Standard_deviation).<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach function](/manual/appendix/functions/aggregate/foreach): *last_foreach*.

Parameter: siehe [allgemeine Parameter](#common-parameters).

Für diese Funktion sind mindestens zwei Datenwerte erforderlich.

Beispiele:

```default
stddevsamp(/host/system.cpu.util[,user],10m)>7 #Die CPU-Auslastung schwankt stark (die Stichproben-Standardabweichung liegt über 7)
```

[comment]: # ({/d870ca1f-1db77c44})

[comment]: # ({80517512-0ecf79eb})
##### sum(/host/key,(sec|#num)<:time shift>) {#sum}

Die Summe der gesammelten Werte innerhalb des definierten Auswertungszeitraums.<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach functions](/manual/appendix/functions/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parameter: siehe [common parameters](#common-parameters).

Beispiele:

```default
sum(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #die Summe der neuesten Werte für eingehenden Netzwerkverkehr über alle Linux-Server hinweg
```

[comment]: # ({/80517512-0ecf79eb})

[comment]: # ({57e39842-6f6556f2})
##### sumofsquares(/host/key,(sec|#num)<:time shift>) {#sumofsquares}

Die Summe der Quadrate der erfassten Werte innerhalb des definierten Auswertungszeitraums.<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach function](/manual/appendix/functions/aggregate/foreach): *last_foreach*.

Parameter: siehe [common parameters](#common-parameters).

Beispiele:

```default
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 für die neuesten eingehenden Netzwerkverkehrswerte über alle Linux-Server hinweg
```

[comment]: # ({/57e39842-6f6556f2})

[comment]: # ({fdc1bbcc-d299bd33})
##### varpop(/Host/key,(sec|#num)<:time shift>) {#varpop}

Die Populationsvarianz der erfassten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: [Varianz](https://en.wikipedia.org/wiki/Variance).<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach function](/manual/appendix/functions/aggregate/foreach): *last_foreach*.

Parameter: siehe [common parameters](#common-parameters).

Beispiele:

```default
varpop(/Host/system.cpu.util[,user],10m)>50 #CPU-Auslastung schwankt stark (die Varianz liegt über 50)
```

[comment]: # ({/fdc1bbcc-d299bd33})

[comment]: # ({e6d26f08-b1bc041c})
##### varsamp(/host/key,(sec|#num)<:time shift>) {#varsamp}

Die Stichprobenvarianz der erfassten Werte innerhalb des definierten Auswertungszeitraums. Siehe auch: [Varianz](https://en.wikipedia.org/wiki/Variance).<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
Unterstützte [foreach function](/manual/appendix/functions/aggregate/foreach): *last_foreach*.

Parameter: siehe [common parameters](#common-parameters).

Für diese Funktion werden mindestens zwei Datenwerte benötigt.

Beispiele:

```default
varsamp(/host/system.cpu.util[,user],10m)>50 #CPU usage fluctuates heavily (sample variance is above 50)
```

[comment]: # ({/e6d26f08-b1bc041c})

[comment]: # ({ba59dd3a-541616fc})
Siehe [alle unterstützten Funktionen](/manual/appendix/functions).

[comment]: # ({/ba59dd3a-541616fc})

