[comment]: # attributes: notoc

[comment]: # (terms:  avg, bucket_percentile, count, histogram_quantile, item_count, kurtosis, mad, max, min, skewness, stddevpop, stddevsamp, sum, sumofsquares, varpop, varsamp )

[comment]: # (tags:  count )

[comment]: # ({4fbe3c6f-ee60e21e})
# 1 Funkcje agregujące

O ile nie zaznaczono inaczej, wszystkie funkcje wymienione tutaj są obsługiwane w:

-   [wyrażeniach wyzwalaczy](/manual/config/triggers/expression)
-   [formułach pozycji obliczanych](/manual/config/items/itemtypes/calculated)
-   [makrach wyrażeń](/manual/config/macros/expression_macros)

Funkcje agregujące mogą działać z:

-   historią pozycji, na przykład `min(/host/key,1h)`
-   [funkcjami foreach](/manual/config/triggers/expression/aggregate/foreach) jako
    jedynym parametrem, na przykład `min(last_foreach(/*/key))` (tylko w formułach pozycji obliczanych; aby użyć w wyzwalaczach, odwołaj się do pozycji obliczanej za pomocą jej klucza)

Funkcje są wymienione bez dodatkowych informacji. Kliknij funkcję, aby zobaczyć pełne szczegóły.

|Function|Description|
|--|--------|
|[avg](#avg)|Średnia wartość pozycji w zdefiniowanym okresie oceny.|
|[bucket_percentile](#bucket-percentile)|Oblicza percentyl na podstawie kubełków histogramu.|
|[count](#count)|Liczba wartości w tablicy zwróconej przez funkcję foreach.|
|[histogram_quantile](#histogram-quantile)|Oblicza kwantyl φ na podstawie kubełków histogramu.|
|[item_count](#item-count)|Liczba istniejących pozycji w konfiguracji, które pasują do kryteriów filtra.|
|[kurtosis](#kurtosis)|"Szczytowość" rozkładu prawdopodobieństwa w zebranych wartościach w zdefiniowanym okresie oceny.|
|[mad](#mad)|Mediana odchyleń bezwzględnych w zebranych wartościach w zdefiniowanym okresie oceny.|
|[max](#max)|Najwyższa wartość pozycji w zdefiniowanym okresie oceny.|
|[min](#min)|Najniższa wartość pozycji w zdefiniowanym okresie oceny.|
|[skewness](#skewness)|Asymetria rozkładu prawdopodobieństwa w zebranych wartościach w zdefiniowanym okresie oceny.|
|[stddevpop](#stddevpop)|Odchylenie standardowe populacji w zebranych wartościach w zdefiniowanym okresie oceny.|
|[stddevsamp](#stddevsamp)|Odchylenie standardowe próby w zebranych wartościach w zdefiniowanym okresie oceny.|
|[sum](#sum)|Suma zebranych wartości w zdefiniowanym okresie oceny.|
|[sumofsquares](#sumofsquares)|Suma kwadratów w zebranych wartościach w zdefiniowanym okresie oceny.|
|[varpop](#varpop)|Wariancja populacji zebranych wartości w zdefiniowanym okresie oceny.|
|[varsamp](#varsamp)|Wariancja próby zebranych wartości w zdefiniowanym okresie oceny.|

[comment]: # ({/4fbe3c6f-ee60e21e})

[comment]: # ({a83c5ed7-4d343eb8})
#### Wspólne parametry

-   `/host/key` jest wspólnym obowiązkowym pierwszym parametrem dla funkcji
    odwołujących się do historii pozycji hosta
-   `(sec|#num)<:time shift>` jest wspólnym drugim parametrem dla
    funkcji odwołujących się do historii pozycji hosta, gdzie:
    -   **sec** - maksymalny [okres oceny](/manual/config/triggers/expression#time-period) w sekundach
        (można używać [sufiksów](/manual/appendix/suffixes) czasu), lub
    -   **\#num** - maksymalny [zakres oceny](/manual/config/triggers/expression#time-period) w najnowszych
        zebranych wartościach (jeśli poprzedzony znakiem hash)
    -   **time shift** (opcjonalnie) umożliwia przesunięcie punktu oceny
        wstecz w czasie. Zobacz [więcej
        szczegółów](/manual/config/triggers/expression#time-shift) dotyczących określania time shift.

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

[comment]: # ({c645f0e4-fe53c04c})
### Szczegóły funkcji

Kilka ogólnych uwag dotyczących parametrów funkcji:

-   Parametry funkcji są oddzielane przecinkiem
-   Opcjonalne parametry funkcji (lub części parametrów) są oznaczone przez
    `<` `>`
-   Parametry specyficzne dla danej funkcji są opisane przy każdej funkcji
-   Parametry `/host/key` oraz `(sec|#num)<:time shift>` nigdy nie mogą być
    ujmowane w cudzysłów

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

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

Średnia wartość pozycji w zdefiniowanym okresie obliczania.<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwane [funkcje foreach](/manual/config/triggers/expression/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Przesunięcie czasu jest przydatne, gdy istnieje potrzeba porównania bieżącej wartości średniej ze średnią wartością sprzed pewnego czasu.

Przykłady:

```default
avg(/host/key,1h) #oblicz średnią wartość za ostatnią godzinę do teraz
avg(/host/key,#5) #oblicz średnią wartość z pięciu najnowszych wartości
avg(/host/key,1h:now-1d) #oblicz średnią wartość dla jednej godziny od 25 godzin temu do 24 godzin temu od teraz
avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"])) #oblicz średnie obciążenie procesora dla wszystkich serwerów MySQL
avg(/host/proc.num,5m)>300 #wyzwalacz, jeśli średnia liczba procesów w ciągu ostatnich 5 minut była powyżej 300
```

[comment]: # ({/2844b0b7-f5993b4c})

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

Oblicza percentyl z bucketów histogramu.<br>

Parametry: 

-   **item filter** - zobacz [item filter](/manual/config/triggers/expression/aggregate/foreach#item-filter-syntax);<br>
-   **time period** - zobacz [time period](/manual/config/triggers/expression/aggregate/foreach#time-period);<br>
-   **percentage** - wartość procentowa (0-100).

Uwagi:

-   Obsługiwane tylko w pozycjach obliczanych;
-   Ta funkcja jest aliasem dla `histogram_quantile(percentage/100, bucket_rate_foreach(item filter, time period, 1))`.

Przykłady:

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

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

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

Liczba wartości w tablicy zwróconej przez funkcję foreach.<br>
Obsługiwane [funkcje foreach](/manual/config/triggers/expression/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parametry: 

-   **func_foreach** - funkcja foreach, dla której ma zostać policzona liczba zwróconych wartości. Szczegóły znajdują się w opisie [funkcji foreach](/manual/config/triggers/expression/aggregate/foreach). Zwróć uwagę, że count_foreach i bucket_rate_foreach obsługują [dodatkowe parametry](/manual/config/triggers/expression/aggregate/foreach#additional-parameters).
-   **item filter** - zobacz [filtr pozycji](/manual/config/triggers/expression/aggregate/foreach#item-filter-syntax);<br>
-   **time period** - zobacz [okres czasu](/manual/config/triggers/expression/aggregate/foreach#time-period);<br>
-   **operator** (musi być ujęty w podwójny cudzysłów). Obsługiwane `operatory`:<br>*eq* - równe<br>*ne* - nierówne<br>*gt* - większe niż<br>*ge* - większe lub równe<br>*lt* - mniejsze niż<br>*le* - mniejsze lub równe<br>*like* - pasuje, jeśli zawiera wzorzec (z uwzględnieniem wielkości liter)<br>*bitand* - bitowe AND<br>*regexp* - dopasowanie z uwzględnieniem wielkości liter do wyrażenia regularnego podanego w `pattern`<br>*iregexp* - dopasowanie bez uwzględniania wielkości liter do wyrażenia regularnego podanego w `pattern`<br>
-   **pattern** - wymagany wzorzec (argumenty tekstowe muszą być ujęte w podwójny cudzysłów); obsługiwany, jeśli *operator* został określony w trzecim parametrze.

Uwagi: 

-   Użycie **count()** z funkcją foreach powiązaną z historią (max_foreach, avg_foreach itp.) może mieć wpływ na wydajność, natomiast użycie **exists_foreach()**, które działa wyłącznie na danych konfiguracyjnych, nie będzie miało takiego efektu.
-   Opcjonalnych parametrów *operator* lub *pattern* nie można pozostawić pustych po przecinku, można je jedynie całkowicie pominąć.
-   Jeśli jako trzeci parametr użyto *bitand*, czwarty parametr `pattern` można podać jako dwie liczby rozdzielone znakiem '/': **number_to_compare_with/mask**. count() oblicza „bitowe AND” z wartości i *mask* oraz porównuje wynik z *number_to_compare_with*. Jeśli wynik „bitowego AND” jest równy *number_to_compare_with*, wartość jest zliczana.<br>Jeśli *number_to_compare_with* i *mask* są równe, wystarczy podać tylko *mask* (bez '/').
-   Jeśli jako trzeci parametr użyto *regexp* lub *iregexp*, czwarty parametr `pattern` może być zwykłym lub [globalnym](/manual/regular_expressions#global-regular-expressions) (zaczynającym się od '@') wyrażeniem regularnym. W przypadku globalnych wyrażeń regularnych rozróżnianie wielkości liter jest dziedziczone z ustawień globalnego wyrażenia regularnego. Na potrzeby dopasowania regexp wartości zmiennoprzecinkowe będą zawsze reprezentowane z 4 cyframi dziesiętnymi po '.'. Należy również pamiętać, że w przypadku dużych liczb różnica między reprezentacją dziesiętną (przechowywaną w bazie danych) a binarną (używaną przez serwer Zabbix) może wpływać na 4. cyfrę dziesiętną.

Przykłady:

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

[comment]: # ({/4520f3ef-3c498650})

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

Oblicza φ-kwantyl na podstawie kubełków histogramu.<br>
Obsługiwana [funkcja foreach](/manual/config/triggers/expression/aggregate/foreach): *bucket_rate_foreach*.

Parametry: 

-   **quantile** — 0 ≤ φ ≤ 1;<br>
-   **bucketN, valueN** — ręcznie wprowadzone pary (>=2) parametrów lub odpowiedź [bucket_rate_foreach](/manual/config/triggers/expression/aggregate/foreach).

Uwagi:

-   Obsługiwane tylko w pozycjach obliczanych;
-   Funkcjonalnie odpowiada funkcji '[histogram\_quantile](https://prometheus.io/docs/prometheus/latest/querying/functions/#histogram-quantile)' w PromQL;
-   Zwraca -1, jeśli wartości ostatniego kubełka 'Infinity' (*"+inf"*) są równe 0.

Przykłady:

```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]: # ({/3ba37963-f3ad7158})

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

Liczba istniejących pozycji w konfiguracji, które odpowiadają kryteriom filtra.<br>
Obsługiwany typ wartości: *Integer*.

Parametr: 

-   **item filter** - kryteria wyboru pozycji, umożliwia odwoływanie się według grupy hostów, hosta, klucza pozycji oraz tagów. Obsługiwane są symbole wieloznaczne. Więcej informacji można znaleźć w [item filter](/manual/config/triggers/expression/aggregate/foreach#item-filter-syntax).<br>

Uwagi:

-   Obsługiwane tylko w pozycjach obliczanych;
-   Działa jako alias funkcji *count(exists_foreach(item_filter))*.

Przykłady:

```default
item_count(/*/agent.ping?[group="Host group 1"]) #oblicza liczbę hostów z pozycją agent.ping w "Host group 1"
```

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

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

„Spiczastość” rozkładu prawdopodobieństwa wartości zebranych w zdefiniowanym okresie obliczania. Zobacz także: [Kurtoza](https://en.wikipedia.org/wiki/Kurtosis).<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwana [funkcja foreach](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Przykłady:

```default
kurtosis(/host/system.cpu.util[,user],5m)>5 #wyzwalacz przy gwałtownych skokach wykorzystania CPU w ciągu 5 minut
```

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

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

Mediana odchyleń bezwzględnych w zebranych wartościach w zdefiniowanym okresie obliczeniowym. Zobacz także: [Median absolute deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation).<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwana [funkcja foreach](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Przykłady:

```default
last(/host/system.cpu.util[,user])>avg(/host/system.cpu.util[,user],1h)+3*mad(/host/system.cpu.util[,user],1h) #wyzwalacz, jeśli ostatnia wartość wykorzystania CPU jest statystycznie istotna
```

[comment]: # ({/98a81503-bfb43a27})

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

Najwyższa wartość pozycji w zdefiniowanym okresie obliczania.<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwane [funkcje foreach](/manual/config/triggers/expression/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Przykłady:

```default
max(/host/key,1h) - min(/host/key,1h) #oblicza różnicę między wartościami maksymalną i minimalną w ciągu ostatniej godziny do teraz (delta wartości)
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #zwraca najwyższe użycie dysku na wszystkich serwerach Linux
```

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

[comment]: # ({cfe7b652-ffd1e499})
##### min(/host/key,(sek|#num)<:przesunięcie czasu>) {#min}

Najniższa wartość pozycji w zdefiniowanym okresie obliczania.<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwane [funkcje foreach](/manual/config/triggers/expression/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Przykłady:

```default
max(/host/key,1h) - min(/host/key,1h) #oblicza różnicę między wartościami maksymalną i minimalną w ciągu ostatniej godziny do chwili obecnej (deltę wartości)
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #zwraca minimalny stan operacyjny dowolnego interfejsu we wszystkich serwerach Linux
```

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

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

Asymetria rozkładu prawdopodobieństwa zebranych wartości w zdefiniowanym okresie oceny. Zobacz także: [Skewness](https://en.wikipedia.org/wiki/Skewness).<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwana [funkcja foreach](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Przykłady:

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

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

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

Odchylenie standardowe populacji w zebranych wartościach w zdefiniowanym okresie obliczania. Zobacz także: [Odchylenie standardowe](https://en.wikipedia.org/wiki/Standard_deviation).<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwana [funkcja foreach](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Przykłady:

```default
stddevpop(/host/system.cpu.util[,user],10m)>7 #wyzwalacz, jeśli użycie CPU silnie się waha (odchylenie standardowe populacji jest większe niż 7 w ciągu 10 minut)
```

[comment]: # ({/7e32d94e-11c2ea25})

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

Odchylenie standardowe z próby dla zebranych wartości w zdefiniowanym okresie obliczeniowym. Zobacz także: [Odchylenie standardowe](https://en.wikipedia.org/wiki/Standard_deviation).<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwana [funkcja foreach](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Do działania tej funkcji wymagane są co najmniej dwie wartości danych.

Przykłady:

```default
stddevsamp(/host/system.cpu.util[,user],10m)>7 #wyzwalacz, jeśli użycie CPU silnie się waha (odchylenie standardowe z próby jest większe niż 7 w ciągu 10 minut)
```

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

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

Suma zebranych wartości w zdefiniowanym okresie obliczania.<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwane [funkcje foreach](/manual/config/triggers/expression/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Przykłady:

```default
sum(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #oblicza całkowity przychodzący ruch sieciowy dla wszystkich serwerów Linux
sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"])) #oblicza całkowitą przestrzeń dyskową dla wszystkich serwerów MySQL
sum(last_foreach(/*/net.dns[*,*,*])) #oblicza całkowitą liczbę pomyślnych kontroli DNS
```

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

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

Suma kwadratów zebranych wartości w zdefiniowanym okresie obliczania.<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwana [funkcja foreach](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Przykłady:

```default
sumofsquares(/host/calculated.net.if.rate,1m) #suma kwadratów dla szybkości ruchu sieciowego (przychodzącego i wychodzącego)
sumofsquares(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #suma kwadratów najnowszych wartości przychodzącego ruchu sieciowego we wszystkich serwerach Linux
```

[comment]: # ({/907627c8-6f6556f2})

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

Wariancja populacji zebranych wartości w zdefiniowanym okresie obliczania. Zobacz także: [Wariancja](https://en.wikipedia.org/wiki/Variance).<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwana [funkcja foreach](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Przykłady:

```default
varpop(/host/system.cpu.util[,user],10m)>50 #wyzwalacz, jeśli użycie CPU silnie się waha (wariancja jest powyżej 50 w ciągu 10 minut)
```

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

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

Wariancja próbki zebranych wartości w zdefiniowanym okresie obliczania. Zobacz także: [Wariancja](https://en.wikipedia.org/wiki/Variance).<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwana [funkcja foreach](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*.

Parametry: zobacz [wspólne parametry](#common-parameters).

Do działania tej funkcji wymagane są co najmniej dwie wartości danych.

Przykłady:

```default
varsamp(/host/system.cpu.util[,user],10m)>50 #wyzwalacz, jeśli użycie CPU silnie się waha (wariancja próbki jest powyżej 50 w ciągu 10 minut)
```

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

[comment]: # ({ba58f5e4-541616fc})
Zobacz [wszystkie obsługiwane funkcje](/manual/config/triggers/expression#functions).

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