5 Funzioni di trend

Le funzioni di trend, a differenza delle funzioni di history, utilizzano i dati di trend per i calcoli.

I trend memorizzano valori aggregati orari. Le funzioni di trend utilizzano queste medie orarie e sono quindi utili per analisi a lungo termine.

I risultati delle funzioni di trend vengono memorizzati nella cache, quindi chiamate multiple alla stessa funzione con gli stessi parametri recuperano le informazioni dal database una sola volta. La cache delle funzioni di trend è controllata dal parametro del server TrendFunctionCacheSize.

I trigger che fanno riferimento solo a funzioni di trend vengono valutati una volta per il periodo di tempo più piccolo nell'espressione. Per esempio, un trigger come

trendavg(/host/key,1d:now/d) > 1 or trendavg(/host/key2,1w:now/w) > 2

verrà valutato una volta al giorno. Se il trigger contiene sia funzioni di trend sia di history (o funzioni di data e ora e/o nodata()), viene calcolato in conformità ai principi usuali.

Tutte le funzioni elencate qui sono supportate in:

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

Function Description
baselinedev Restituisce il numero di deviazioni (secondo l'algoritmo stddevpop) tra l'ultimo periodo di dati e gli stessi periodi di dati nelle stagioni precedenti.
baselinewma Calcola la baseline facendo la media dei dati dello stesso intervallo temporale in più periodi di tempo uguali ("stagioni") utilizzando l'algoritmo della media mobile pesata.
trendavg La media dei valori di trend nel periodo di tempo definito.
trendcount Il numero di valori di history recuperati con successo utilizzati per calcolare il valore di trend nel periodo di tempo definito.
trendmax Il massimo dei valori di trend nel periodo di tempo definito.
trendmin Il minimo dei valori di trend nel periodo di tempo definito.
trendstl Restituisce il tasso di anomalie durante il periodo di rilevamento: un valore decimale compreso tra 0 e 1 pari a ((numero di valori anomali)/(numero totale di valori)).
trendsum La somma dei valori di trend nel periodo di tempo definito.
Parametri comuni
  • /host/key è un primo parametro obbligatorio comune
  • periodo di tempo:spostamento temporale è un secondo parametro comune, dove:
    • periodo di tempo - il periodo di tempo (minimo '1h'), definito come <N><unità di tempo> dove N - il numero di unità di tempo, unità di tempo - h (ora), d (giorno), w (settimana), M (mese) o y (anno).
    • spostamento temporale - l'offset del periodo di tempo (vedere gli esempi di funzione)

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 insieme a ciascuna funzione
  • I parametri /host/key e time period:time shift non devono mai essere racchiusi tra virgolette
baselinedev(/host/key,data period:time shift,season unit,num seasons)

Restituisce il numero di deviazioni (tramite l'algoritmo stddevpop) tra l'ultimo periodo di dati e gli stessi periodi di dati nelle stagioni precedenti.

Parametri:

  • Vedere i parametri comuni
  • data period - il periodo di raccolta dei dati all'interno di una stagione, definito come <N><time unit> dove:
    N - il numero di unità di tempo
    time unit - h (ora), d (giorno), w (settimana), M (mese) oppure y (anno), deve essere uguale o inferiore a season
  • season unit - l'unità di calendario che definisce una stagione (h, d, w, M, y); non può essere più piccola di data period
  • num seasons - il numero di stagioni da valutare

Esempi:

baselinedev(/host/key,1d:now/d,"M",6) #calcola il numero di deviazioni standard (popolazione) tra il giorno precedente e lo stesso giorno nei 6 mesi precedenti. Se la data non esiste in un mese precedente, verrà utilizzato l'ultimo giorno del mese (Jul,31 verrà analizzato rispetto a Jan,31, Feb, 28,... June, 30)
baselinedev(/host/key,1h:now/h,"d",10)  #calcola il numero di deviazioni standard della popolazione tra l'ora precedente e la stessa ora del giorno nei 10 giorni precedenti
baselinewma(/host/key,data period:time shift,season unit,num seasons)

Calcola la baseline calcolando la media dei dati dello stesso intervallo temporale in più periodi di tempo uguali ("stagioni") utilizzando l'algoritmo della media mobile pesata.

Parametri:

  • Vedi parametri comuni
  • data period - il periodo di raccolta dei dati all'interno di una stagione, definito come <N><unità di tempo> dove:
    N - il numero di unità di tempo
    unità di tempo - h (ora), d (giorno), w (settimana), M (mese) o y (anno), deve essere uguale o inferiore alla stagione
    Time shift - l'offset del periodo di tempo, definisce la fine dell'intervallo temporale di raccolta dei dati in stagioni (vedi esempi)
  • season unit - l'unità di calendario che definisce una stagione (h, d, w, M, y); non può essere più piccola di data period
  • num seasons - il numero di stagioni da valutare

Esempi:

baselinewma(/host/key,1h:now/h,"d",3) #calcolo della baseline sulla stessa ora del giorno negli ultimi 3 giorni completi terminati ieri. Se "now" è lunedì 13:30, verranno analizzati i dati delle 12:00-12:59 di venerdì, sabato e domenica
baselinewma(/host/key,2h:now/h,"d",3) #calcolo della baseline sullo stesso intervallo di due ore negli ultimi 3 giorni completi terminati ieri. Se "now" è lunedì 13:30, verranno analizzati i dati delle 11:00-12:59 di venerdì, sabato e domenica
baselinewma(/host/key,1d:now/d,"M",4) #calcolo della baseline sullo stesso giorno del mese di 'ieri' nei 4 mesi precedenti l'ultimo mese completo. Se la data richiesta non esiste, viene preso l'ultimo giorno del mese. Se oggi è il 1° settembre, verranno analizzati i dati del 31 luglio, 30 giugno, 31 maggio e 30 aprile.
trendavg(/host/key,time period:time shift)

La media dei valori di trend nel periodo di tempo definito.

Parametri:

Esempi:

trendavg(/host/key,1h:now/h) #la media per l'ora precedente (ad es. 12:00-13:00)
trendavg(/host/key,1h:now/h-1h) #la media per due ore fa (11:00-12:00)
trendavg(/host/key,1h:now/h-2h) #la media per tre ore fa (10:00-11:00)
trendavg(/host/key,1M:now/M-1y) #la media per il mese precedente di un anno fa
trendcount(/host/key,time period:time shift)

Il numero di valori della cronologia recuperati con successo utilizzati per calcolare il valore di trend nel periodo di tempo definito.

Parametri:

Esempi:

trendcount(/host/key,1h:now/h) #il conteggio dei valori per l'ora precedente (ad es. 12:00-13:00)
trendcount(/host/key,1h:now/h-1h) #il conteggio dei valori per due ore fa (11:00-12:00)
trendcount(/host/key,1h:now/h-2h) #il conteggio dei valori per tre ore fa (10:00-11:00)
trendcount(/host/key,1M:now/M-1y) #il conteggio dei valori per il mese precedente di un anno fa
trendmax(/host/key,time period:time shift)

Il massimo nei valori di trend all'interno del periodo di tempo definito.

Parametri:

Esempi:

trendmax(/host/key,1h:now/h) #il massimo per l'ora precedente (ad es. 12:00-13:00)
trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → calcola la differenza tra i valori massimo e minimo (delta del trend) per l'ora precedente (12:00-13:00)
trendmax(/host/key,1h:now/h-1h) #il massimo per due ore fa (11:00-12:00)
trendmax(/host/key,1h:now/h-2h) #il massimo per tre ore fa (10:00-11:00)
trendmax(/host/key,1M:now/M-1y) #il massimo per il mese precedente di un anno fa
trendmin(/host/key,time period:time shift)

Il minimo nei valori di trend entro il periodo di tempo definito.

Parametri:

Esempi:

trendmin(/host/key,1h:now/h) #il minimo per l'ora precedente (ad es. 12:00-13:00)
trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → calcola la differenza tra i valori massimo e minimo (delta del trend) per l'ora precedente (12:00-13:00)
trendmin(/host/key,1h:now/h-1h) #il minimo per due ore fa (11:00-12:00)
trendmin(/host/key,1h:now/h-2h) #il minimo per tre ore fa (10:00-11:00)
trendmin(/host/key,1M:now/M-1y) #il minimo per il mese precedente di un anno fa
trendstl(/host/key,periodo di valutazione:spostamento temporale,periodo di rilevamento,stagione,<deviazioni>,<algdev>,<finestra s>)

Restituisce il tasso di anomalie durante il periodo di rilevamento, un valore decimale compreso tra 0 e 1 che è ((il numero di valori anomali)/(numero totale di valori)).

Parametri:

  • Vedere i parametri comuni
  • periodo di valutazione - il periodo di tempo che deve essere decomposto (minimo '1h'), definito come <N><unità di tempo> dove
    N - il numero di unità di tempo
    unità di tempo - h (ora), d (giorno), w (settimana), M (mese) o y (anno)
  • periodo di rilevamento - il periodo di tempo prima della fine del periodo di valutazione per il quale vengono calcolate le anomalie (minimo '1h', non può essere più lungo del periodo di valutazione), definito come <N><unità di tempo> dove
    N - il numero di unità di tempo
    unità di tempo - h (ora), d (giorno), w (settimana)
  • stagione - il periodo di tempo più breve in cui è previsto un pattern ripetitivo ("stagione") (minimo '2h', non può essere più lungo del periodo di valutazione, il numero di voci nel periodo di valutazione deve essere maggiore di due volte la frequenza risultante (stagione/h)), definito come <N><unità di tempo> dove
    N - il numero di unità di tempo
    unità di tempo - h (ora), d (giorno), w (settimana)
  • deviazioni - il numero di deviazioni (calcolate da algdev) da considerare come anomalia (può essere decimale), (deve essere maggiore o uguale a 1, il valore predefinito è 3)
  • algdev (deve essere tra virgolette doppie) - l'algoritmo di deviazione, può essere stddevpop, stddevsamp o mad (predefinito)
  • finestra s - l'ampiezza (in ritardi) della finestra loess per l'estrazione stagionale (il valore predefinito è 10 * numero di voci nel periodo di valutazione + 1)

Esempi:

trendstl(/host/key,100h:now/h,10h,2h) #analizza le ultime 100 ore di dati di trend, trova il tasso di anomalie per le ultime 10 ore di quel periodo, assumendo una periodicità di 2h; i valori della serie residua del periodo di valutazione sono considerati anomalie se raggiungono il valore di 3 deviazioni della MAD di quella serie residua
trendstl(/host/key,100h:now/h-10h,100h,2h,2.1,"mad") #analizza il periodo di 100 ore di dati di trend, fino a 10 ore fa, trova il tasso di anomalie per l'intero periodo assumendo una periodicità di 2h; i valori della serie residua del periodo di valutazione sono considerati anomalie se raggiungono il valore di 2,1 deviazioni della MAD di quella serie residua
trendstl(/host/key,100d:now/d-1d,10d,1d,4,,10) #analizza 100 giorni di dati di trend fino a un giorno fa, trova il tasso di anomalie per il periodo degli ultimi 10d di quel periodo, assumendo una periodicità di 1d; i valori della serie residua del periodo di valutazione sono considerati anomalie se raggiungono il valore di 4 deviazioni della MAD di quella serie residua, sovrascrivendo l'ampiezza predefinita della finestra loess per l'estrazione stagionale di "10 * numero di voci nel periodo di valutazione + 1" con un'ampiezza di 10 ritardi
trendstl(/host/key,1M:now/M-1y,1d,2h,,"stddevsamp") #analizza il mese precedente di un anno fa, trova il tasso di anomalie dell'ultimo giorno di quel periodo assumendo una periodicità di 2h; i valori della serie residua del periodo di valutazione sono considerati anomalie se raggiungono il valore di 3 deviazioni della deviazione standard campionaria di quella serie residua
trendsum(/host/key,time period:time shift)

La somma dei valori di trend all'interno del periodo di tempo definito.

Parametri:

Esempi:

trendsum(/host/key,1h:now/h) #la somma per l'ora precedente (ad es. 12:00-13:00)
trendsum(/host/key,1h:now/h-1h) #la somma per due ore fa (11:00-12:00)
trendsum(/host/key,1h:now/h-2h) #la somma per tre ore fa (10:00-11:00)
trendsum(/host/key,1M:now/M-1y) #la somma per il mese precedente di un anno fa

Vedere tutte le funzioni supportate.