1 Funzioni aggregate

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

Le funzioni aggregate possono lavorare con:

  • la 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 direttamente nei trigger)

Le funzioni sono elencate senza informazioni aggiuntive. Fai clic sulla funzione per vedere i dettagli completi.

Function Description
avg Il valore medio di un item all'interno del 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 "curvatura" della distribuzione di probabilità nei valori raccolti all'interno del periodo di valutazione definito.
mad La deviazione assoluta mediana nei valori raccolti all'interno del periodo di valutazione definito.
max Il valore più alto di un item all'interno del periodo di valutazione definito.
min Il valore più basso di un item all'interno del periodo di valutazione definito.
skewness L'asimmetria della distribuzione di probabilità nei valori raccolti all'interno del periodo di valutazione definito.
stddevpop La deviazione standard della popolazione nei valori raccolti all'interno del periodo di valutazione definito.
stddevsamp La deviazione standard del campione nei valori raccolti all'interno del periodo di valutazione definito.
sum La somma dei valori raccolti all'interno del periodo di valutazione definito.
sumofsquares La somma dei quadrati nei valori raccolti all'interno del periodo di valutazione definito.
varpop La varianza della popolazione dei valori raccolti all'interno del periodo di valutazione definito.
varsamp La varianza del campione dei valori raccolti all'interno del 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 (possono essere usati i suffissi temporali), oppure
    • #num - intervallo di valutazione massimo 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/key e (sec|#num)<:time shift> non devono mai essere racchiusi tra virgolette
avg(/host/key,(sec|#num)<:time shift>)

Il valore medio 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.

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

Esempi:

avg(/host/key,1h) #il valore medio dell'ultima ora fino a ora
avg(/host/key,1h:now-1d) #il valore medio di un'ora da 25 ore fa a 24 ore fa rispetto a 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:

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 negli ultimi 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. Vedere funzioni foreach per i dettagli. Si noti che count_foreach e bucket_rate_foreach supportano parametri aggiuntivi.
  • item filter - vedere sintassi del filtro item;
  • time period - vedere intervallo di tempo;
  • operator (deve essere racchiuso tra virgolette doppie). operatori supportati:
    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 in pattern
    iregexp - corrispondenza non sensibile alle maiuscole/minuscole dell'espressione regolare specificata in pattern
  • 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 pattern può 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, è necessario specificare solo la mask (senza '/').
  • Con regexp o iregexp come terzo parametro, il quarto parametro pattern può essere un'espressione regolare ordinaria o globale (che inizia con '@'). Nel caso delle espressioni regolari globali, la sensibilità alle maiuscole/minuscole è 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 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 ora
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 istogramma.
Funzione foreach supportata: 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"]) #il numero di host con l'item *agent.ping* nel "Host group 1"
kurtosis(/host/key,(sec|#num)<:time shift>)

La "curvatura" 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 all'interno del 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 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)
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: vedi parametri comuni.

Esempi:

stddevpop(/host/system.cpu.util[,user],10m)>7 #L'utilizzo della CPU fluttua notevolmente (la deviazione standard della popolazione è superiore a 7)
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 #L'utilizzo della CPU fluttua notevolmente (la deviazione standard campionaria è superiore a 7)
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 degli ultimi valori del traffico di rete in ingresso su tutti i server Linux
sumofsquares(/host/key,(sec|#num)<:time shift>)

La somma dei quadrati dei valori raccolti nell'intervallo 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 degli 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.
Funzione foreach supportata: last_foreach.

Parametri: vedere parametri comuni.

Esempi:

varpop(/host/system.cpu.util[,user],10m)>50 #L'utilizzo della CPU fluttua notevolmente (la varianza è superiore a 50)
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.
Funzione foreach supportata: last_foreach.

Parametri: vedi parametri comuni.

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

Esempi:

varsamp(/host/system.cpu.util[,user],10m)>50 #L'utilizzo della CPU oscilla fortemente (la varianza campionaria è superiore a 50)

Vedi tutte le funzioni supportate.