1 Funzioni aggregate
Salvo diversa indicazione, tutte le funzioni elencate qui sono supportate in:
Le funzioni aggregate possono operare con:
- la cronologia degli item, ad esempio
min(/host/key,1h) - le funzioni foreach come
unico parametro, ad esempio
min(last_foreach(/*/key))(solo negli item calcolati; non possono essere usate nei trigger)
Le funzioni sono elencate senza informazioni aggiuntive. Fare clic sulla funzione per visualizzare tutti i dettagli.
| Function | Description |
|---|---|
| avg | Il valore medio di un item nel periodo di valutazione definito. |
| bucket_percentile | Calcola il percentile dai bucket di un istogramma. |
| count | Il conteggio dei valori in un array restituito da una funzione foreach. |
| histogram_quantile | Calcola il quantile φ dai bucket di un istogramma. |
| item_count | Il numero di item esistenti nella configurazione che corrispondono ai criteri di filtro. |
| kurtosis | La "pesantezza delle code" della distribuzione di probabilità nei valori raccolti nel periodo di valutazione definito. |
| mad | La deviazione assoluta mediana nei valori raccolti nel periodo di valutazione definito. |
| max | Il valore più alto di un item nel periodo di valutazione definito. |
| min | Il valore più basso di un item nel periodo di valutazione definito. |
| skewness | L'asimmetria della distribuzione di probabilità nei valori raccolti nel periodo di valutazione definito. |
| stddevpop | La deviazione standard della popolazione nei valori raccolti nel periodo di valutazione definito. |
| stddevsamp | La deviazione standard campionaria nei valori raccolti nel periodo di valutazione definito. |
| sum | La somma dei valori raccolti nel periodo di valutazione definito. |
| sumofsquares | La somma dei quadrati nei valori raccolti nel periodo di valutazione definito. |
| varpop | La varianza della popolazione dei valori raccolti nel periodo di valutazione definito. |
| varsamp | La varianza campionaria dei valori raccolti nel periodo di valutazione definito. |
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 in secondi (è possibile usare i suffissi di tempo), oppure
- #num - massimo intervallo di valutazione 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 sulla specifica del time shift.
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/keye(sec|#num)<:time shift>non devono mai essere racchiusi tra virgolette
avg(/host/key,(sec|#num)<:time shift>)
Il valore medio di un item nel periodo di valutazione definito.
Tipi di valore supportati: Float, Integer.
Funzioni foreach supportate: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Parametri: vedere i parametri comuni.
Lo spostamento temporale è utile quando è necessario confrontare il valore medio corrente con il valore medio di qualche tempo fa.
Esempi:
avg(/host/key,1h) #il valore medio dell'ultima ora fino ad ora
avg(/host/key,1h:now-1d) #il valore medio di un'ora, da 25 ore fa a 24 ore fa rispetto ad ora
avg(/host/key,#5) #il valore medio degli ultimi cinque valori
avg(/host/key,#5:now-1d) #il valore medio degli ultimi cinque valori, escludendo i valori ricevuti nelle ultime 24 ore
avg(/host/proc.num,5m)>300 #trigger se il numero medio di processi negli ultimi 5 minuti è stato superiore a 300
bucket_percentile(item filter,time period,percentage)
Calcola il percentile dai bucket di un istogramma.
Parametri:
- item filter - vedere item filter;
- time period - vedere time period;
- 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:
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
count(func_foreach(filtro item,<periodo di tempo>),<operatore>,<modello>)
Il conteggio dei valori in un array restituito da una funzione foreach.
Funzioni foreach supportate: 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 per i dettagli. Si noti che count_foreach e bucket_rate_foreach supportano parametri aggiuntivi.
- item filter - vedere filtro item;
- time period - vedere periodo di tempo;
- operator (deve essere tra doppi apici).
operatorisupportati:
eq - uguale
ne - diverso
gt - maggiore
ge - maggiore o uguale
lt - minore
le - minore o uguale
like - corrisponde se contiene il modello (con distinzione tra maiuscole e minuscole)
bitand - AND bit a bit
regexp - corrispondenza con distinzione tra maiuscole e minuscole dell'espressione regolare fornita inpattern
iregexp - corrispondenza senza distinzione tra maiuscole e minuscole dell'espressione regolare fornita inpattern - 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
patternpuò 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.
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
patternpuò essere un'espressione regolare normale o globale (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:
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,...)
Calcola il quantile φ a partire dai bucket di un istogramma.
Supporta la funzione foreach: bucket_rate_foreach.
Parametri:
- quantile - 0 ≤ φ ≤ 1;
- bucketN, valueN - coppie inserite manualmente (>=2) di parametri oppure la risposta di bucket_rate_foreach.
Commenti:
- Supportata solo negli item calcolati;
- Corrisponde funzionalmente a 'histogram_quantile' di PromQL;
- Restituisce -1 se i valori dell'ultimo bucket 'Infinity' ("+inf") sono uguali a 0.
Esempi:
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)
Il conteggio degli item esistenti nella configurazione che corrispondono ai criteri del filtro.
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.
Commenti:
- Supportato solo negli item calcolati;
- Funziona come alias della funzione count(exists_foreach(item_filter)).
Esempi:
item_count(/*/agent.ping?[group="Host group 1"]) #calcola il numero di host con l'item agent.ping in "Host group 1"
kurtosis(/host/key,(sec|#num)<:time shift>)
La "curtosi" della distribuzione di probabilità nei valori raccolti entro il periodo di valutazione definito. Vedi anche: Kurtosis.
Tipi di valore supportati: Float, Integer.
Funzione foreach supportata: last_foreach.
Parametri: vedere i parametri comuni.
Esempi:
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>)
La deviazione assoluta mediana dei valori raccolti nel periodo di valutazione definito. Vedi anche: Deviazione assoluta mediana.
Tipi di valore supportati: Float, Integer.
Funzione foreach supportata: last_foreach.
Parametri: vedere i parametri comuni.
Esempi:
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
max(/host/key,(sec|#num)<:time shift>)
Il valore più alto di un item entro il periodo di valutazione definito.
Tipi di valore supportati: Float, Integer.
Funzioni foreach supportate: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Parametri: vedere i parametri comuni.
Esempi:
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
min(/host/key,(sec|#num)<:time shift>)
Il valore più basso di un item nel periodo di valutazione definito.
Tipi di valore supportati: Float, Integer.
Funzioni foreach supportate: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Parametri: vedere i parametri comuni.
Esempi:
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
skewness(/host/key,(sec|#num)<:time shift>)
L'asimmetria della distribuzione di probabilità nei valori raccolti entro il periodo di valutazione definito. Vedere anche: Skewness.
Tipi di valore supportati: Float, Integer.
Funzione foreach supportata: last_foreach.
Parametri: vedere i parametri comuni.
Esempi:
skewness(/host/vm.memory.size[used],5m)<-20 #trigger on sudden negative drops indicating crashes/restarts
stddevpop(/host/key,(sec|#num)<:time shift>)
La deviazione standard della popolazione nei valori raccolti entro il periodo di valutazione definito. Vedi anche: Deviazione standard.
Tipi di valore supportati: Float, Integer.
Funzione foreach supportata: last_foreach.
Parametri: vedere parametri comuni.
Esempi:
stddevpop(/host/system.cpu.util[,user],10m)>7 #trigger if CPU usage fluctuates heavily (population standard deviation is above 7 over 10 minutes)
stddevsamp(/host/key,(sec|#num)<:time shift>)
La deviazione standard campionaria dei valori raccolti nel periodo di valutazione definito. Vedi anche: Deviazione standard.
Tipi di valore supportati: Float, Integer.
Funzione foreach supportata: last_foreach.
Parametri: vedere parametri comuni.
Per il funzionamento di questa funzione sono richiesti almeno due valori di dati.
Esempi:
stddevsamp(/host/system.cpu.util[,user],10m)>7 #trigger if CPU usage fluctuates heavily (sample standard deviation is above 7 over 10 minutes)
sum(/host/key,(sec|#num)<:time shift>)
La somma dei valori raccolti entro il periodo di valutazione definito.
Tipi di valore supportati: Float, Integer.
Funzioni foreach supportate: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Parametri: vedere i parametri comuni.
Esempi:
sum(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #la somma dei valori più recenti del traffico di rete in ingresso in tutti i server Linux
sumofsquares(/host/key,(sec|#num)<:time shift>)
La somma dei quadrati nei valori raccolti entro il periodo di valutazione definito.
Tipi di valore supportati: Float, Integer.
Funzione foreach supportata: last_foreach.
Parametri: vedere i parametri comuni.
Esempi:
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
varpop(/host/key,(sec|#num)<:time shift>)
La varianza della popolazione dei valori raccolti entro il periodo di valutazione definito. Vedere anche: Varianza.
Tipi di valore supportati: Float, Integer.
Funzione foreach function supportata: last_foreach.
Parametri: vedere i parametri comuni.
Esempi:
varpop(/host/system.cpu.util[,user],10m)>50 #trigger if CPU usage fluctuates heavily (variance is above 50 over 10 minutes)
varsamp(/host/key,(sec|#num)<:time shift>)
La varianza campionaria dei valori raccolti entro il periodo di valutazione definito. Vedere anche: Varianza.
Tipi di valore supportati: Float, Integer.
Funzione foreach supportata: last_foreach.
Parametri: vedere i parametri comuni.
Per il funzionamento di questa funzione sono richiesti almeno due valori di dati.
Esempi:
varsamp(/host/system.cpu.util[,user],10m)>50 #trigger if CPU usage fluctuates heavily (sample variance is above 50 over 10 minutes)
Vedere tutte le funzioni supportate.