[comment]: # translation:outdated

[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]: # ({cbe17b03-ee60e21e})
# 1 Funzioni aggregate

Salvo diversa indicazione, tutte le funzioni elencate qui sono supportate in:

-   [Espressioni dei trigger](/manual/config/triggers/expression)
-   [Formule degli item calcolati](/manual/config/items/itemtypes/calculated)
-   [Macro di espressione](/manual/config/macros/expression_macros)

Le funzioni aggregate possono operare con:

-   la cronologia degli item, ad esempio `min(/host/key,1h)`
-   le [funzioni foreach](/manual/config/triggers/expression/aggregate/foreach) come
    unico parametro, ad esempio `min(last_foreach(/*/key))` (solo nelle formule degli item calcolati; per usarle nei trigger fare riferimento all'item calcolato tramite la sua chiave)

Le funzioni sono elencate senza informazioni aggiuntive. Fare clic sulla funzione per visualizzare tutti i dettagli.

|Function|Description|
|--|--------|
|[avg](#avg)|Il valore medio di un item nel periodo di valutazione definito.|
|[bucket_percentile](#bucket-percentile)|Calcola il percentile dai bucket di un istogramma.|
|[count](#count)|Il conteggio dei valori in un array restituito da una funzione foreach.|
|[histogram_quantile](#histogram-quantile)|Calcola il quantile φ dai bucket di un istogramma.|
|[item_count](#item-count)|Il numero di item esistenti nella configurazione che corrispondono ai criteri di filtro.|
|[kurtosis](#kurtosis)|La "pesantezza delle code" della distribuzione di probabilità nei valori raccolti nel periodo di valutazione definito.|
|[mad](#mad)|La deviazione assoluta mediana nei valori raccolti nel periodo di valutazione definito.|
|[max](#max)|Il valore più alto di un item nel periodo di valutazione definito.|
|[min](#min)|Il valore più basso di un item nel periodo di valutazione definito.|
|[skewness](#skewness)|L'asimmetria della distribuzione di probabilità nei valori raccolti nel periodo di valutazione definito.|
|[stddevpop](#stddevpop)|La deviazione standard della popolazione nei valori raccolti nel periodo di valutazione definito.|
|[stddevsamp](#stddevsamp)|La deviazione standard del campione nei valori raccolti nel periodo di valutazione definito.|
|[sum](#sum)|La somma dei valori raccolti nel periodo di valutazione definito.|
|[sumofsquares](#sumofsquares)|La somma dei quadrati dei valori raccolti nel periodo di valutazione definito.|
|[varpop](#varpop)|La varianza della popolazione dei valori raccolti nel periodo di valutazione definito.|
|[varsamp](#varsamp)|La varianza del campione dei valori raccolti nel periodo di valutazione definito.|

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

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

-   `/host/key` è un primo parametro comune obbligatorio per le funzioni
    che fanno riferimento alla cronologia degli item del host
-   `(sec|#num)<:time shift>` è un secondo parametro comune per le
    funzioni che fanno riferimento alla cronologia degli item del host, dove:
    -   **sec** - massimo [periodo di
        valutazione](/manual/config/triggers#evaluation-period) in secondi
        (è possibile usare i [suffissi](/manual/appendix/suffixes) di tempo), oppure
    -   **\#num** - massimo [intervallo di
        valutazione](/manual/config/triggers#evaluation-period) negli ultimi
        valori raccolti (se preceduto da un cancelletto)
    -   **time shift** (opzionale) consente di spostare indietro nel
        tempo il punto di valutazione. Vedi [maggiori
        dettagli](/manual/config/triggers/expression#time-shift) sulla
        specifica del time shift.

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

[comment]: # ({c645f0e4-fe53c04c})
### Dettagli della funzione

Alcune note generali sui parametri della funzione:

-   I parametri della funzione sono separati da una virgola
-   I parametri opzionali della funzione (o parti di parametro) sono indicati da
    `<` `>`
-   I parametri specifici della funzione sono descritti per ciascuna funzione
-   I parametri `/host/key` e `(sec|#num)<:time shift>` non devono mai essere
    racchiusi tra virgolette

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

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

Il valore medio di un item nel periodo di valutazione definito.<br>
Tipi di valore supportati: *Float*, *Integer*.<br>
[Funzioni foreach](/manual/config/triggers/expression/aggregate/foreach) supportate: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parametri: vedere i [parametri comuni](#common-parameters).

Lo spostamento temporale è utile quando è necessario confrontare il valore medio corrente con il valore medio di qualche tempo fa.

Esempi:

```default
avg(/host/key,1h) #calcola il valore medio per l'ultima ora fino ad ora
avg(/host/key,#5) #calcola il valore medio degli ultimi cinque valori
avg(/host/key,1h:now-1d) #calcola il valore medio per un'ora, da 25 ore fa a 24 ore fa rispetto ad ora
avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"])) #calcola il carico medio del processore per tutti i server MySQL
avg(/host/proc.num,5m)>300 #trigger se il numero medio di processi negli ultimi 5 minuti è stato superiore a 300
```

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

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

Calcola il percentile dai bucket di un istogramma.<br>

Parametri: 

-   **item filter** - vedere [item filter](/manual/config/triggers/expression/aggregate/foreach#item-filter-syntax);<br>
-   **time period** - vedere [time period](/manual/config/triggers/expression/aggregate/foreach#time-period);<br>
-   **percentage** - percentuale (0-100).

Commenti:

-   Supportata solo negli item calcolati;
-   Questa funzione è un alias per `histogram_quantile(percentage/100, bucket_rate_foreach(item filter, time period, 1))`.

Esempi:

```default
bucket_percentile(/*/http_request_duration_seconds_bucket[*],5m,95) #calcola il 95° percentile del tempo di risposta su 5 minuti
bucket_percentile(/*/apiserver_request_duration_seconds_bucket[*],10m,99) #calcola la latenza API al 99° percentile
```

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

[comment]: # ({4520f3ef-3c498650})
##### count(func_foreach(filtro item,<periodo di tempo>),<operatore>,<modello>) {#count}

Il conteggio dei valori in un array restituito da una funzione foreach.<br>
Funzioni [foreach supportate](/manual/config/triggers/expression/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parametri: 

-   **func_foreach** - funzione foreach per la quale deve essere conteggiato il numero di valori restituiti. Vedere [funzioni foreach](/manual/config/triggers/expression/aggregate/foreach) per i dettagli. Si noti che count_foreach e bucket_rate_foreach supportano [parametri aggiuntivi](/manual/config/triggers/expression/aggregate/foreach#additional-parameters).
-   **item filter** - vedere [filtro item](/manual/config/triggers/expression/aggregate/foreach#item-filter-syntax);<br>
-   **time period** - vedere [periodo di tempo](/manual/config/triggers/expression/aggregate/foreach#time-period);<br>
-   **operator** (deve essere tra doppi apici). `operatori` supportati:<br>*eq* - uguale<br>*ne* - diverso<br>*gt* - maggiore<br>*ge* - maggiore o uguale<br>*lt* - minore<br>*le* - minore o uguale<br>*like* - corrisponde se contiene il modello (con distinzione tra maiuscole e minuscole)<br>*bitand* - AND bit a bit<br>*regexp* - corrispondenza con distinzione tra maiuscole e minuscole dell'espressione regolare fornita in `pattern`<br>*iregexp* - corrispondenza senza distinzione tra maiuscole e minuscole dell'espressione regolare fornita in `pattern`<br>
-   **pattern** - il modello richiesto (gli argomenti stringa devono essere tra doppi apici); supportato se *operator* è specificato nel terzo parametro.

Commenti: 

-   L'uso di **count()** con una funzione foreach correlata alla cronologia (max_foreach, avg_foreach, ecc.) può avere implicazioni sulle prestazioni, mentre l'uso di **exists_foreach()**, che funziona solo con i dati di configurazione, non avrà tale effetto.
-   I parametri facoltativi *operator* o *pattern* non possono essere lasciati vuoti dopo una virgola, ma solo omessi completamente.
-   Con *bitand* come terzo parametro, il quarto parametro `pattern` può essere specificato come due numeri separati da '/': **numero_da_confrontare_con/maschera**. count() calcola l'"AND bit a bit" dal valore e dalla *maschera* e confronta il risultato con *numero_da_confrontare_con*. Se il risultato dell'"AND bit a bit" è uguale a *numero_da_confrontare_con*, il valore viene conteggiato.<br>Se *numero_da_confrontare_con* e *maschera* sono uguali, è necessario specificare solo la *maschera* (senza '/').
-   Con *regexp* o *iregexp* come terzo parametro, il quarto parametro `pattern` può essere un'espressione regolare normale o [globale](/manual/regular_expressions#global-regular-expressions) (che inizia con '@'). Nel caso delle espressioni regolari globali, la distinzione tra maiuscole e minuscole viene ereditata dalle impostazioni dell'espressione regolare globale. Ai fini della corrispondenza regexp, i valori float saranno sempre rappresentati con 4 cifre decimali dopo '.'. Si noti inoltre che, per numeri grandi, la differenza tra la rappresentazione decimale (memorizzata nel database) e quella binaria (utilizzata dal server Zabbix) può influire sulla quarta cifra decimale.

Esempi:

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

Calcola il quantile φ a partire dai bucket di un istogramma.<br>
Supporta la [funzione foreach](/manual/config/triggers/expression/aggregate/foreach): *bucket_rate_foreach*.

Parametri: 

-   **quantile** - 0 ≤ φ ≤ 1;<br>
-   **bucketN, valueN** - coppie inserite manualmente (>=2) di parametri oppure la risposta di [bucket_rate_foreach](/manual/config/triggers/expression/aggregate/foreach).

Commenti:

-   Supportata solo negli item calcolati;
-   Corrisponde funzionalmente a '[histogram\_quantile](https://prometheus.io/docs/prometheus/latest/querying/functions/#histogram-quantile)' di PromQL;
-   Restituisce -1 se i valori dell'ultimo bucket 'Infinity' (*"+inf"*) sono uguali a 0.

Esempi:

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

Il conteggio degli item esistenti nella configurazione che corrispondono ai criteri del filtro.<br>
Tipo di valore supportato: *Integer*.

Parametro: 

-   **item filter** - criteri per la selezione degli item; consente il riferimento per gruppo di host, host, chiave item e tag. I caratteri jolly sono supportati. Per maggiori dettagli, vedere [item filter](/manual/config/triggers/expression/aggregate/foreach#item-filter-syntax).<br>

Commenti:

-   Supportato solo negli item calcolati;
-   Funziona come alias della funzione *count(exists_foreach(item_filter))*.

Esempi:

```default
item_count(/*/agent.ping?[group="Host group 1"]) #calcola il numero di host con l'item agent.ping in "Host group 1"
```

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

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

La "curtosi" della distribuzione di probabilità nei valori raccolti entro il periodo di valutazione definito. Vedi anche: [Kurtosis](https://en.wikipedia.org/wiki/Kurtosis).<br>
Tipi di valore supportati: *Float*, *Integer*.<br>
Funzione [foreach](/manual/config/triggers/expression/aggregate/foreach) supportata: *last_foreach*.

Parametri: vedere i [parametri comuni](#common-parameters).

Esempi:

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

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

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

La deviazione assoluta mediana dei valori raccolti nel periodo di valutazione definito. Vedi anche: [Deviazione assoluta mediana](https://en.wikipedia.org/wiki/Median_absolute_deviation).<br>
Tipi di valore supportati: *Float*, *Integer*.<br>
[Funzione foreach](/manual/config/triggers/expression/aggregate/foreach) supportata: *last_foreach*.

Parametri: vedere i [parametri comuni](#common-parameters).

Esempi:

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

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

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

Il valore più alto di un item entro il periodo di valutazione definito.<br>
Tipi di valore supportati: *Float*, *Integer*.<br>
Funzioni [foreach](/manual/config/triggers/expression/aggregate/foreach) supportate: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parametri: vedere i [parametri comuni](#common-parameters).

Esempi:

```default
max(/host/key,1h) - min(/host/key,1h) #calcola la differenza tra i valori massimo e minimo nell'ultima ora fino a questo momento (il delta dei valori)
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #restituisce l'utilizzo del disco più elevato tra tutti i server Linux
```

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

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

Il valore più basso di un item nel periodo di valutazione definito.<br>
Tipi di valore supportati: *Float*, *Integer*.<br>
Funzioni [foreach](/manual/config/triggers/expression/aggregate/foreach) supportate: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parametri: vedere i [parametri comuni](#common-parameters).

Esempi:

```default
max(/host/key,1h) - min(/host/key,1h) #calcola la differenza tra i valori massimo e minimo nell'ultima ora fino ad ora (il delta dei valori)
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #restituisce lo stato operativo minimo per qualsiasi interfaccia in tutti i server Linux
```

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

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

L'asimmetria della distribuzione di probabilità nei valori raccolti entro il periodo di valutazione definito. Vedere anche: [Skewness](https://en.wikipedia.org/wiki/Skewness).<br>
Tipi di valore supportati: *Float*, *Integer*.<br>
[Funzione foreach](/manual/config/triggers/expression/aggregate/foreach) supportata: *last_foreach*.

Parametri: vedere i [parametri comuni](#common-parameters).

Esempi:

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

La deviazione standard della popolazione nei valori raccolti entro il periodo di valutazione definito. Vedi anche: [Deviazione standard](https://en.wikipedia.org/wiki/Standard_deviation).<br>
Tipi di valore supportati: *Float*, *Integer*.<br>
[Funzione foreach](/manual/config/triggers/expression/aggregate/foreach) supportata: *last_foreach*.

Parametri: vedere [parametri comuni](#common-parameters).

Esempi:

```default
stddevpop(/host/system.cpu.util[,user],10m)>7 #trigger if CPU usage fluctuates heavily (population standard deviation is above 7 over 10 minutes)
```

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

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

La deviazione standard campionaria dei valori raccolti nel periodo di valutazione definito. Vedi anche: [Deviazione standard](https://en.wikipedia.org/wiki/Standard_deviation).<br>
Tipi di valore supportati: *Float*, *Integer*.<br>
Funzione [foreach](/manual/config/triggers/expression/aggregate/foreach) supportata: *last_foreach*.

Parametri: vedere [parametri comuni](#common-parameters).

Per il funzionamento di questa funzione sono richiesti almeno due valori di dati.

Esempi:

```default
stddevsamp(/host/system.cpu.util[,user],10m)>7 #trigger if CPU usage fluctuates heavily (sample standard deviation is above 7 over 10 minutes)
```

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

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

La somma dei valori raccolti entro il periodo di valutazione definito.<br>
Tipi di valori supportati: *Float*, *Integer*.<br>
Funzioni [foreach](/manual/config/triggers/expression/aggregate/foreach) supportate: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parametri: vedere i [parametri comuni](#common-parameters).

Esempi:

```default
sum(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #calculate the total incoming network traffic for all Linux servers
sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"])) #calculate the total disk space for all MySQL servers
sum(last_foreach(/*/net.dns[*,*,*])) #calculate the total number of successful DNS checks
```

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

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

La somma dei quadrati nei valori raccolti entro il periodo di valutazione definito.<br>
Tipi di valore supportati: *Float*, *Integer*.<br>
[Funzione foreach](/manual/config/triggers/expression/aggregate/foreach) supportata: *last_foreach*.

Parametri: vedere i [parametri comuni](#common-parameters).

Esempi:

```default
sumofsquares(/host/calculated.net.if.rate,1m) #la somma dei quadrati per il tasso di traffico di rete (in ingresso rispetto a in uscita)
sumofsquares(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #la somma dei quadrati degli ultimi valori del traffico di rete in ingresso in tutti i Linux servers
```

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

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

La varianza della popolazione dei valori raccolti entro il periodo di valutazione definito. Vedere anche: [Varianza](https://en.wikipedia.org/wiki/Variance).<br>
Tipi di valore supportati: *Float*, *Integer*.<br>
Funzione [foreach function](/manual/config/triggers/expression/aggregate/foreach) supportata: *last_foreach*.

Parametri: vedere i [parametri comuni](#common-parameters).

Esempi:

```default
varpop(/host/system.cpu.util[,user],10m)>50 #trigger if CPU usage fluctuates heavily (variance is above 50 over 10 minutes)
```

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

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

La varianza campionaria dei valori raccolti entro il periodo di valutazione definito. Vedere anche: [Varianza](https://en.wikipedia.org/wiki/Variance).<br>
Tipi di valore supportati: *Float*, *Integer*.<br>
Funzione [foreach](/manual/config/triggers/expression/aggregate/foreach) supportata: *last_foreach*.

Parametri: vedere i [parametri comuni](#common-parameters).

Per il funzionamento di questa funzione sono richiesti almeno due valori di dati.

Esempi:

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

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

[comment]: # ({ba58f5e4-541616fc})
Vedere [tutte le funzioni supportate](/manual/config/triggers/expression#functions).

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