[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]: # ({ac717204-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)
-   [pozycjach 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/appendix/functions/aggregate/foreach) jako
    jedynym parametrem, na przykład `min(last_foreach(/*/key))` (tylko w pozycjach obliczanych; nie można ich używać w wyzwalaczach)

Funkcje są wymienione bez dodatkowych informacji. Kliknij nazwę funkcji, 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 zebranych wartości 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]: # ({/ac717204-ee60e21e})

[comment]: # ({2acead3e-4d343eb8})
#### Parametry wspólne

-   `/host/key` jest wspólnym obowiązkowym pierwszym parametrem funkcji
    odwołujących się do historii pozycji hosta
-   `(sec|#num)<:time shift>` jest wspólnym drugim parametrem funkcji
    odwołujących się do historii pozycji hosta, gdzie:
    -   **sec** - maksymalny [okres
        oceny](/manual/config/triggers#evaluation-period) w sekundach
        (można używać [przyrostków](/manual/appendix/suffixes) czasu), lub
    -   **\#num** - maksymalny [zakres
        oceny](/manual/config/triggers#evaluation-period) w ostatnio
        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) na
        temat określania time shift.

[comment]: # ({/2acead3e-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]: # ({85535fd1-f5993b4c})
##### avg(/host/key,(sec|#num)<:time shift>) {#avg}

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

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

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

Przykłady:

```default
avg(/host/key,1h) #oblicz średnią wartość z ostatniej godziny 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 godziny od 25 godzin temu do 24 godzin temu względem 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 ostatnich 5 minutach była większa niż 300
```

[comment]: # ({/85535fd1-f5993b4c})

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

Oblicza percentyl na podstawie kubełków histogramu.<br>

Parametry: 

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

Komentarze:

-   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) #oblicz 95. percentyl czasu odpowiedzi w ciągu 5 minut
bucket_percentile(/*/apiserver_request_duration_seconds_bucket[*],10m,99) #oblicz 99. percentyl opóźnienia API
```

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

[comment]: # ({6e12bb62-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/appendix/functions/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parametry: 

-   **func_foreach** - funkcja foreach, dla której należy policzyć liczbę zwróconych wartości. Szczegóły znajdują się w opisie [funkcji foreach](/manual/appendix/functions/aggregate/foreach). Należy pamiętać, że count_foreach i bucket_rate_foreach obsługują [dodatkowe parametry](/manual/appendix/functions/aggregate/foreach#additional-parameters).
-   **item filter** - zobacz [składnię filtra pozycji](/manual/appendix/functions/aggregate/foreach#item-filter-syntax);<br>
-   **time period** - zobacz [okres czasu](/manual/appendix/functions/aggregate/foreach#time-period);<br>
-   **operator** (musi być ujęty w podwójne cudzysłowy). Obsługiwane `operators`:<br>*eq* - równe<br>*ne* - nierówne<br>*gt* - większe<br>*ge* - większe lub równe<br>*lt* - mniejsze<br>*le* - mniejsze lub równe<br>*like* - dopasowuje, jeśli zawiera wzorzec (uwzględnia wielkość liter)<br>*bitand* - bitowe AND<br>*regexp* - dopasowanie wyrażenia regularnego podanego w `pattern` z uwzględnieniem wielkości liter<br>*iregexp* - dopasowanie wyrażenia regularnego podanego w `pattern` bez uwzględniania wielkości liter<br>
-   **pattern** - wymagany wzorzec (argumenty typu string muszą być ujęte w podwójne cudzysłowy); obsługiwany, jeśli w trzecim parametrze określono *operator*.

Uwagi: 

-   Użycie **count()** z funkcją foreach opartą na historii (max_foreach, avg_foreach itp.) może mieć wpływ na wydajność, natomiast użycie **exists_foreach()**, która 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ąć.
-   Przy *bitand* jako trzecim parametrze czwarty parametr `pattern` może być określony jako dwie liczby rozdzielone znakiem '/': **number_to_compare_with/mask**. count() oblicza operację "bitwise AND" dla wartości i *mask* oraz porównuje wynik z *number_to_compare_with*. Jeśli wynik "bitwise AND" jest równy *number_to_compare_with*, wartość jest liczona.<br>Jeśli *number_to_compare_with* i *mask* są równe, wystarczy podać tylko *mask* (bez '/').
-   Przy *regexp* lub *iregexp* jako trzecim parametrze czwarty parametr `pattern` może być zwykłym lub [globalnym](/manual/regular_expressions#global-regular-expressions) wyrażeniem regularnym (zaczynającym się od '@'). W przypadku globalnych wyrażeń regularnych uwzględnianie 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 po '.'. Należy też 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ę po przecinku.

Przykłady:

```default
count(max_foreach(/*/net.if.in[*],1h)) #oblicza liczbę pozycji net.if.in, które otrzymały dane w ostatniej godzinie do chwili obecnej
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #oblicza liczbę systemów plików, w których wykorzystano ponad 95% miejsca na dysku
```

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

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

Oblicza kwantyl φ na podstawie kubełków histogramu.<br>
Obsługiwane [foreach function](/manual/appendix/functions/aggregate/foreach): *bucket_rate_foreach*.

Parametry: 

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

Uwagi:

-   Obsługiwane tylko w pozycjach obliczanych;
-   Funkcjonalnie odpowiada '[histogram\_quantile](https://prometheus.io/docs/prometheus/latest/querying/functions/#histogram-quantile)' z 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]: # ({/f07c0983-f3ad7158})

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

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

Parametr: 

-   **item filter** - kryteria wyboru pozycji, umożliwiające odwołanie się przez grupę hostów, host, klucz pozycji i tagi. Obsługiwane są symbole wieloznaczne. Więcej informacji można znaleźć w sekcji [item filter](/manual/appendix/functions/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"]) #oblicz liczbę hostów z pozycją agent.ping w "Host group 1"
```

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

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

"Ogoniastość" rozkładu prawdopodobieństwa w zebranych wartościach w określonym okresie oceny. Zobacz także: [Kurtosis](https://en.wikipedia.org/wiki/Kurtosis).<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwana [funkcja foreach](/manual/appendix/functions/aggregate/foreach): *last_foreach*.

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

Przykłady:

```default
kurtosis(/host/system.cpu.util[,user],5m)>5 #trigger on sharp spikes of CPU utilization over 5 minutes
```

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

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

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

Parametry: zobacz [parametry wspólne](#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ść użycia CPU jest statystycznie istotna
```

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

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

Najwyższa wartość pozycji w zdefiniowanym okresie oceny.<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwane [funkcje foreach](/manual/appendix/functions/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 maksymalną i minimalną wartością z ostatniej godziny do teraz (delta wartości)
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #zwraca najwyższe użycie dysku spośród wszystkich serwerów Linux
```

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

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

Najniższa wartość pozycji w zdefiniowanym okresie oceny.<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwane [funkcje foreach](/manual/appendix/functions/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 maksymalną i minimalną wartością w ciągu ostatniej godziny do chwili obecnej (delta wartości)
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #zwraca minimalny stan operacyjny dla dowolnego interfejsu we wszystkich serwerach Linux
```

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

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

Asymetria rozkładu prawdopodobieństwa w zebranych wartościach w określonym 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/appendix/functions/aggregate/foreach): *last_foreach*.

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

Przykłady:

```default
skewness(/host/vm.memory.size[used],5m)<-20 #wyzwalacz na nagłe ujemne spadki wskazujące na awarie/ponowne uruchomienia
```

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

[comment]: # ({0b3aca57-11c2ea25})
##### stddevpop(/host/key,(sec|#num)<:przesunięcie czasu>) {#stddevpop}

Odchylenie standardowe populacji w zebranych wartościach w zdefiniowanym okresie oceny. 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/appendix/functions/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 mocno się waha (odchylenie standardowe populacji jest większe niż 7 w ciągu 10 minut)
```

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

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

Próbkowe odchylenie standardowe w zebranych wartościach w zdefiniowanym okresie oceny. Zobacz także: [Odchylenie standardowe](https://en.wikipedia.org/wiki/Standard_deviation).<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwane [funkcje foreach](/manual/appendix/functions/aggregate/foreach): *last_foreach*.

Parametry: zobacz [parametry wspólne](#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 (próbkowe odchylenie standardowe jest większe niż 7 w ciągu 10 minut)
```

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

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

Suma zebranych wartości w zdefiniowanym okresie oceny.<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwane [funkcje foreach](/manual/appendix/functions/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 ruch przychodzący w sieci 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 sprawdzeń DNS
```

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

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

Suma kwadratów w zebranych wartościach w zdefiniowanym okresie oceny.<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwane [funkcje foreach](/manual/appendix/functions/aggregate/foreach): *last_foreach*.

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

Przykłady:

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

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

[comment]: # ({a61bfa35-d299bd33})
##### varpop(/host/key,(sec|#num)<:przesunięcie czasu>) {#varpop}

Wariancja populacji zebranych wartości w zdefiniowanym okresie oceny. Zobacz także: [Variance](https://en.wikipedia.org/wiki/Variance).<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwana [funkcja foreach](/manual/appendix/functions/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 mocno się waha (wariancja jest większa niż 50 w ciągu 10 minut)
```

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

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

Wariancja próbki zebranych wartości w zdefiniowanym okresie oceny. Zobacz także: [Wariancja](https://en.wikipedia.org/wiki/Variance).<br>
Obsługiwane typy wartości: *Float*, *Integer*.<br>
Obsługiwana [funkcja foreach](/manual/appendix/functions/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 mocno się waha (wariancja próbki jest większa niż 50 w ciągu 10 minut)
```

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

[comment]: # ({ba59dd3a-541616fc})
Zobacz [wszystkie obsługiwane funkcje](/manual/appendix/functions).

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