1 Funzioni aggregate
Salvo diversa indicazione, tutte le funzioni elencate qui sono supportate in:
Le funzioni aggregate possono lavorare con uno dei seguenti elementi:
- cronologia degli item, ad esempio,
min(/host/key,1h) - funzioni foreach come
unico parametro, ad esempio,
min(last_foreach(/*/key))(solo negli item calcolati; non può essere usato nei trigger)
Le funzioni sono elencate senza informazioni aggiuntive. Fare clic sulla funzione per visualizzare i dettagli completi.
| Function | Description |
|---|---|
| avg | Il valore medio di un item entro il 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 conteggio degli item esistenti nella configurazione che corrispondono ai criteri del filtro. |
| kurtosis | La "coda" della distribuzione di probabilità nei valori raccolti entro il periodo di valutazione definito. |
| mad | La deviazione assoluta mediana nei valori raccolti entro il periodo di valutazione definito. |
| max | Il valore più alto di un item entro il periodo di valutazione definito. |
| min | Il valore più basso di un item entro il periodo di valutazione definito. |
| skewness | L'asimmetria della distribuzione di probabilità nei valori raccolti entro il periodo di valutazione definito. |
| stddevpop | La deviazione standard della popolazione nei valori raccolti entro il periodo di valutazione definito. |
| stddevsamp | La deviazione standard del campione nei valori raccolti entro il periodo di valutazione definito. |
| sum | La somma dei valori raccolti entro il periodo di valutazione definito. |
| sumofsquares | La somma dei quadrati nei valori raccolti entro il periodo di valutazione definito. |
| varpop | La varianza della popolazione dei valori raccolti entro il periodo di valutazione definito. |
| varsamp | La varianza del campione dei valori raccolti entro il periodo di valutazione definito. |
Parametri comuni
/host/keyè un primo parametro comune obbligatorio per le funzioni che fanno riferimento alla cronologia dell'item dell'host(sec|#num)<:time shift>è un secondo parametro comune per le funzioni che fanno riferimento alla cronologia dell'item dell'host, dove:- sec - periodo massimo di valutazione in secondi (si possono usare i suffissi di tempo), oppure
- #num - massimo intervallo di valutazione negli ultimi valori raccolti (se preceduto da un cancelletto)
- time shift (facoltativo) consente di spostare all'indietro nel tempo il punto di valutazione. Vedere ulteriori 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 all'interno del 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 un momento precedente.
Esempi:
avg(/host/key,1h) #calcola il valore medio dell'ultima ora fino a ora
avg(/host/key,#5) #calcola il valore medio degli ultimi cinque valori
avg(/host/key,1h:now-1d) #calcola il valore medio di un'ora da 25 ore fa fino a 24 ore fa rispetto a 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
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 di
histogram_quantile(percentage/100, bucket_rate_foreach(item filter, time period, 1)).
Esempi:
bucket_percentile(/*/http_request_duration_seconds_bucket[*],5m,95) #calcola il tempo di risposta al 95° percentile in 5 minuti
bucket_percentile(/*/apiserver_request_duration_seconds_bucket[*],10m,99) #calcola la latenza API al 99° percentile
count(func_foreach(item filter,<time period>),<operator>,<pattern>)
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. Per i dettagli, vedere foreach functions. Si noti che count_foreach e bucket_rate_foreach supportano parametri aggiuntivi.
- item filter - vedere item filter;
- time period - vedere time period;
- operator (deve essere racchiuso tra virgolette doppie).
operatorisupportati:
eq - uguale
ne - diverso
gt - maggiore
ge - maggiore o uguale
lt - minore
le - minore o uguale
like - corrisponde se contiene il pattern (sensibile alle maiuscole/minuscole)
bitand - AND bit a bit
regexp - corrispondenza sensibile alle maiuscole/minuscole dell'espressione regolare specificata inpattern
iregexp - corrispondenza non sensibile alle maiuscole/minuscole dell'espressione regolare specificata inpattern - pattern - il pattern richiesto (gli argomenti stringa devono essere racchiusi tra virgolette doppie); supportato se operator è specificato nel terzo parametro.
Commenti:
- L'uso di count() con una funzione foreach basata sulla history (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à questo effetto.
- I parametri opzionali 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 '/': number_to_compare_with/mask. count() calcola l'"AND bit a bit" tra il valore e la mask e confronta il risultato con number_to_compare_with. Se il risultato dell'"AND bit a bit" è uguale a number_to_compare_with, il valore viene conteggiato.
Se number_to_compare_with e mask sono uguali, è sufficiente specificare solo la mask (senza '/'). - Con regexp o iregexp come terzo parametro, il quarto parametro
patternpuò essere un'espressione regolare ordinaria o globale (che inizia con '@'). Nel caso delle espressioni regolari globali, la sensibilità alle maiuscole/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 (usata dal server Zabbix) può influire sulla 4a cifra decimale.
Esempi:
count(max_foreach(/*/net.if.in[*],1h)) #calcola il numero di item net.if.in che hanno ricevuto dati nell'ultima ora fino a questo momento
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #calcola il numero di file system con oltre il 95% di spazio su disco utilizzato
histogram_quantile(quantile,bucket1,value1,bucket2,value2,...)
Calcola il φ-quantile dai bucket di un histogram.
Supporta la funzione foreach: bucket_rate_foreach.
Parametri:
- quantile - 0 ≤ φ ≤ 1;
- bucketN, valueN - coppie di parametri inserite manualmente (>=2) 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 numero di 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 tramite gruppo host, host, chiave dell'item e tag. Sono supportati i caratteri jolly. Vedere item filter per ulteriori dettagli.
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 "coda" della distribuzione di probabilità nei valori raccolti all'interno del 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 su picchi improvvisi dell'utilizzo della CPU nell'arco di 5 minuti
mad(/host/key,(sec|#num)<:time shift>)
La deviazione assoluta mediana nei valori raccolti entro il periodo di valutazione definito. Vedi anche: Deviazione assoluta mediana.
Tipi di valore supportati: Float, Integer.
Funzione foreach supportata: last_foreach.
Parametri: vedi 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 nell'intervallo 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 ora (il delta dei valori)
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #restituisce il massimo utilizzo del disco tra tutti i server Linux
min(/host/key,(sec|#num)<:time shift>)
Il valore più basso di un item all'interno del 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 ora (il delta dei valori)
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #restituisce il valore minimo dello stato operativo per qualsiasi interfaccia in tutti i Linux servers
skewness(/host/key,(sec|#num)<:time shift>)
L'asimmetria della distribuzione di probabilità nei valori raccolti all'interno del periodo di valutazione definito. Vedi 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 nei valori raccolti all'interno del periodo di valutazione definito. Vedi anche: Deviazione standard.
Tipi di valore supportati: Float, Integer.
Funzione foreach supportata: last_foreach.
Parametri: vedere i parametri comuni.
Per il funzionamento di questa funzione sono necessari almeno due valori di dati.
Esempi:
stddevsamp(/host/system.cpu.util[,user],10m)>7 #trigger se l'utilizzo della CPU fluttua in modo marcato (la deviazione standard campionaria è superiore a 7 nell'arco di 10 minuti)
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"])) #calcola il traffico di rete in ingresso totale per tutti i server Linux
sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"])) #calcola lo spazio totale su disco per tutti i server MySQL
sum(last_foreach(/*/net.dns[*,*,*])) #calcola il numero totale di controlli DNS riusciti
sumofsquares(/host/key,(sec|#num)<:time shift>)
La somma dei quadrati dei 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 vs in uscita)
sumofsquares(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #la somma dei quadrati per gli ultimi valori del traffico di rete in ingresso su tutti i server Linux
varpop(/host/key,(sec|#num)<:time shift>)
La varianza della popolazione dei valori raccolti all'interno del periodo di valutazione definito. Vedi anche: Variance.
Tipi di valore supportati: Float, Integer.
foreach function supportata: last_foreach.
Parametri: vedi common parameters.
Esempi:
varpop(/host/system.cpu.util[,user],10m)>50 #trigger se l'utilizzo della CPU fluttua molto (la varianza è superiore a 50 in 10 minuti)
varsamp(/host/key,(sec|#num)<:time shift>)
La varianza campionaria dei valori raccolti all'interno del periodo di valutazione definito. Vedi anche: Variance.
Tipi di valore supportati: Float, Integer.
[foreach function] supportata: last_foreach.
Parametri: vedere common parameters.
Per il funzionamento di questa funzione sono necessari almeno due valori di dati.
Esempi:
varsamp(/host/system.cpu.util[,user],10m)>50 #trigger se l'utilizzo della CPU fluttua molto (la varianza campionaria è superiore a 50 in 10 minuti)