5 Funkcje trendów
Funkcje trendów, w przeciwieństwie do funkcji historii, używają danych trendów do obliczeń.
Trendy przechowują godzinowe wartości zagregowane. Funkcje trendów używają tych godzinowych średnich, dlatego są przydatne do analizy długoterminowej.
Wyniki funkcji trendów są buforowane, więc wielokrotne wywołania tej samej funkcji z tymi samymi parametrami pobierają informacje z bazy danych tylko raz. Pamięć podręczna funkcji trendów jest kontrolowana przez parametr serwera TrendFunctionCacheSize.
Wyzwalacze odwołujące się wyłącznie do funkcji trendów są obliczane raz na najmniejszy okres czasu w wyrażeniu. Na przykład wyzwalacz taki jak
trendavg(/host/key,1d:now/d) > 1 or trendavg(/host/key2,1w:now/w) > 2
będzie obliczany raz dziennie. Jeśli wyzwalacz zawiera zarówno funkcje trendów, jak i historii (lub funkcje daty i czasu i/lub nodata()), jest obliczany zgodnie ze zwykłymi zasadami.
Wszystkie wymienione tutaj funkcje są obsługiwane w:
Funkcje są wymienione bez dodatkowych informacji. Kliknij funkcję, aby zobaczyć pełne szczegóły.
| Function | Description |
|---|---|
| baselinedev | Zwraca liczbę odchyleń (według algorytmu stddevpop) między ostatnim okresem danych a tymi samymi okresami danych w poprzednich sezonach. |
| baselinewma | Oblicza linię bazową przez uśrednianie danych z tego samego przedziału czasowego w wielu równych okresach czasu („sezonach”) przy użyciu algorytmu ważonej średniej ruchomej. |
| trendavg | Średnia wartości trendów w zdefiniowanym okresie czasu. |
| trendcount | Liczba pomyślnie pobranych wartości historii użytych do obliczenia wartości trendu w zdefiniowanym okresie czasu. |
| trendmax | Maksimum wartości trendów w zdefiniowanym okresie czasu. |
| trendmin | Minimum wartości trendów w zdefiniowanym okresie czasu. |
| trendstl | Zwraca współczynnik anomalii w okresie wykrywania — wartość dziesiętną z zakresu od 0 do 1, która jest równa ((liczba wartości anomalii)/(całkowita liczba wartości)). |
| trendsum | Suma wartości trendów w zdefiniowanym okresie czasu. |
Wspólne parametry
/host/keyto wspólny obowiązkowy pierwszy parametrtime period:time shiftto wspólny drugi parametr, gdzie:- time period - okres czasu (minimum „1h”), zdefiniowany jako <N><time unit>, gdzie
N- liczba jednostek czasu,time unit- h (godzina), d (dzień), w (tydzień), M (miesiąc) lub y (rok). - time shift - przesunięcie okresu czasu (zobacz przykłady funkcji)
- time period - okres czasu (minimum „1h”), zdefiniowany jako <N><time unit>, gdzie
Szczegóły funkcji
Kilka ogólnych uwag dotyczących parametrów funkcji:
- Parametry funkcji są oddzielane przecinkiem
- Opcjonalne parametry funkcji (lub części parametrów) są oznaczane za pomocą
<> - Parametry specyficzne dla danej funkcji są opisane przy każdej funkcji
- Parametry
/host/keyoraztime period:time shiftnigdy nie mogą być ujmowane w cudzysłów
baselinedev(/host/key,data period:time shift,season unit,num seasons)
Zwraca liczbę odchyleń (według algorytmu stddevpop) między ostatnim okresem danych a tymi samymi okresami danych w poprzednich sezonach.
Parametry:
- Zobacz wspólne parametry
- data period - okres zbierania danych w ramach sezonu, zdefiniowany jako <N><time unit>, gdzie:
N- liczba jednostek czasutime unit- h (godzina), d (dzień), w (tydzień), M (miesiąc) lub y (rok), musi być równa sezonowi lub od niego mniejsza - season unit - jednostka kalendarzowa definiująca jeden sezon (h, d, w, M, y); nie może być mniejsza niż data period
- num seasons - liczba sezonów do oceny
Przykłady:
baselinedev(/host/key,1d:now/d,"M",6) #obliczanie liczby odchyleń standardowych (populacyjnych) między poprzednim dniem a tym samym dniem w poprzednich 6 miesiącach. Jeśli data nie istnieje w poprzednim miesiącu, zostanie użyty ostatni dzień miesiąca (31 lipca będzie analizowany względem 31 stycznia, 28 lutego, ... 30 czerwca)
baselinedev(/host/key,1h:now/h,"d",10) #obliczanie liczby populacyjnych odchyleń standardowych między poprzednią godziną a tą samą godziną dnia w ciągu 10 poprzednich dni
baselinewma(/host/key,data period:time shift,season unit,num seasons)
Oblicza linię bazową przez uśrednianie danych z tego samego przedziału czasowego w wielu równych okresach czasu („sezonach”) przy użyciu algorytmu ważonej średniej ruchomej.
Parametry:
- Zobacz wspólne parametry
- data period - okres zbierania danych w ramach sezonu, zdefiniowany jako <N><jednostka czasu>, gdzie:
N- liczba jednostek czasujednostka czasu- h (godzina), d (dzień), w (tydzień), M (miesiąc) lub y (rok), musi być równa sezonowi lub od niego mniejsza
Time shift - przesunięcie czasowe, określa przesunięcie okresu czasu, definiuje koniec przedziału zbierania danych w sezonach (zobacz przykłady) - season unit - jednostka kalendarzowa definiująca jeden sezon (h, d, w, M, y); nie może być mniejsza niż data period
- num seasons - liczba sezonów do oceny
Przykłady:
baselinewma(/host/key,1h:now/h,"d",3) #obliczanie linii bazowej dla tej samej godziny dnia w ostatnich 3 pełnych dniach kończących się wczoraj. Jeśli "now" to poniedziałek 13:30, analizowane będą dane dla 12:00-12:59 z piątku, soboty i niedzieli
baselinewma(/host/key,2h:now/h,"d",3) #obliczanie linii bazowej dla tego samego dwugodzinnego przedziału czasowego w ostatnich 3 pełnych dniach kończących się wczoraj. Jeśli "now" to poniedziałek 13:30, analizowane będą dane dla 11:00-12:59 z piątku, soboty i niedzieli
baselinewma(/host/key,1d:now/d,"M",4) #obliczanie linii bazowej dla tego samego dnia miesiąca co „wczoraj” w 4 miesiącach poprzedzających ostatni pełny miesiąc. Jeśli wymagana data nie istnieje, przyjmowany jest ostatni dzień miesiąca. Jeśli dziś jest 1 września, analizowane będą dane dla 31 lipca, 30 czerwca, 31 maja i 30 kwietnia.
trendavg(/host/key,time period:time shift)
Średnia wartości trendów w zdefiniowanym okresie czasu.
Parametry:
- Zobacz wspólne parametry
Przykłady:
trendavg(/host/key,1h:now/h) #średnia dla poprzedniej godziny (np. 12:00-13:00)
trendavg(/host/key,1h:now/h-1h) #średnia sprzed dwóch godzin (11:00-12:00)
trendavg(/host/key,1h:now/h-2h) #średnia sprzed trzech godzin (10:00-11:00)
trendavg(/host/key,1M:now/M-1y) #średnia dla poprzedniego miesiąca rok temu
trendcount(/host/key,time period:time shift)
Liczba pomyślnie pobranych wartości historii użytych do obliczenia wartości trendu w zdefiniowanym okresie czasu.
Parametry:
- Zobacz wspólne parametry
Przykłady:
trendcount(/host/key,1h:now/h) #liczba wartości dla poprzedniej godziny (np. 12:00-13:00)
trendcount(/host/key,1h:now/h-1h) #liczba wartości sprzed dwóch godzin (11:00-12:00)
trendcount(/host/key,1h:now/h-2h) #liczba wartości sprzed trzech godzin (10:00-11:00)
trendcount(/host/key,1M:now/M-1y) #liczba wartości dla poprzedniego miesiąca rok temu
trendmax(/host/key,time period:time shift)
Maksimum w wartościach trendu w zdefiniowanym okresie czasu.
Parametry:
- Zobacz wspólne parametry
Przykłady:
trendmax(/host/key,1h:now/h) #maksimum dla poprzedniej godziny (np. 12:00-13:00)
trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → oblicza różnicę między wartościami maksymalną i minimalną (delta trendu) dla poprzedniej godziny (12:00-13:00)
trendmax(/host/key,1h:now/h-1h) #maksimum sprzed dwóch godzin (11:00-12:00)
trendmax(/host/key,1h:now/h-2h) #maksimum sprzed trzech godzin (10:00-11:00)
trendmax(/host/key,1M:now/M-1y) #maksimum dla poprzedniego miesiąca rok temu
trendmin(/host/key,time period:time shift)
Minimum w wartościach trendu w zdefiniowanym okresie czasu.
Parametry:
- Zobacz wspólne parametry
Przykłady:
trendmin(/host/key,1h:now/h) #minimum dla poprzedniej godziny (np. 12:00-13:00)
trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → oblicza różnicę między wartościami maksymalną i minimalną (delta trendu) dla poprzedniej godziny (12:00-13:00)
trendmin(/host/key,1h:now/h-1h) #minimum sprzed dwóch godzin (11:00-12:00)
trendmin(/host/key,1h:now/h-2h) #minimum sprzed trzech godzin (10:00-11:00)
trendmin(/host/key,1M:now/M-1y) #minimum dla poprzedniego miesiąca rok temu
trendstl(/host/key,eval period:time shift,detection period,season,<deviations>,<devalg>,<s window>)
Zwraca współczynnik anomalii w okresie wykrywania — wartość dziesiętną z zakresu od 0 do 1, obliczaną jako ((liczba wartości anomalii)/(całkowita liczba wartości)).
Parametry:
- Zobacz wspólne parametry
- eval period - okres czasu, który ma zostać poddany dekompozycji (minimum „1h”), zdefiniowany jako <N><time unit>, gdzie
N- liczba jednostek czasutime unit- h (godzina), d (dzień), w (tydzień), M (miesiąc) lub y (rok) - detection period - okres czasu przed końcem eval period, dla którego obliczane są anomalie (minimum „1h”, nie może być dłuższy niż eval period), zdefiniowany jako <N><time unit>, gdzie
N- liczba jednostek czasutime unit- h (godzina), d (dzień), w (tydzień) - season - najkrótszy okres czasu, w którym oczekiwany jest powtarzający się wzorzec („sezon”) (minimum „2h”, nie może być dłuższy niż eval period, liczba wpisów w eval period musi być większa niż dwukrotność wynikowej częstotliwości (season/h)), zdefiniowany jako <N><time unit>, gdzie
N- liczba jednostek czasutime unit- h (godzina), d (dzień), w (tydzień) - deviations - liczba odchyleń (obliczana przez devalg), przy której wartość jest uznawana za anomalię (może być dziesiętna), (musi być większa lub równa 1, domyślnie 3)
- devalg (musi być ujęty w podwójny cudzysłów) - algorytm odchylenia; może to być stddevpop, stddevsamp lub mad (domyślnie)
- s window - rozpiętość (w opóźnieniach) okna loess dla ekstrakcji sezonowej (domyślnie 10 * liczba wpisów w eval period + 1)
Przykłady:
trendstl(/host/key,100h:now/h,10h,2h) #analizuje ostatnie 100 godzin danych trendu, znajduje współczynnik anomalii dla ostatnich 10 godzin tego okresu, przy założeniu okresowości 2h; wartości szeregu resztowego z okresu oceny są uznawane za anomalie, jeśli osiągną wartość 3 odchyleń MAD tego szeregu resztowego
trendstl(/host/key,100h:now/h-10h,100h,2h,2.1,"mad") #analizuje okres 100 godzin danych trendu do 10 godzin wstecz, znajduje współczynnik anomalii dla całego tego okresu przy założeniu okresowości 2h; wartości szeregu resztowego z okresu oceny są uznawane za anomalie, jeśli osiągną wartość 2,1 odchyleń MAD tego szeregu resztowego
trendstl(/host/key,100d:now/d-1d,10d,1d,4,,10) #analizuje 100 dni danych trendu do jednego dnia wstecz, znajduje współczynnik anomalii dla ostatnich 10d tego okresu, przy założeniu okresowości 1d; wartości szeregu resztowego z okresu oceny są uznawane za anomalie, jeśli osiągną wartość 4 odchyleń MAD tego szeregu resztowego, zastępując domyślną rozpiętość okna loess dla ekstrakcji sezonowej „10 * liczba wpisów w eval period + 1” rozpiętością 10 opóźnień
trendstl(/host/key,1M:now/M-1y,1d,2h,,"stddevsamp") #analizuje poprzedni miesiąc sprzed roku, znajduje współczynnik anomalii dla ostatniego dnia tego okresu przy założeniu okresowości 2h; wartości szeregu resztowego z okresu oceny są uznawane za anomalie, jeśli osiągną wartość 3 odchyleń standardowych z próby tego szeregu resztowego
trendsum(/host/key,time period:time shift)
Suma wartości trendów w zdefiniowanym okresie czasu.
Parametry:
- Zobacz wspólne parametry
Przykłady:
trendsum(/host/key,1h:now/h) #suma dla poprzedniej godziny (np. 12:00-13:00)
trendsum(/host/key,1h:now/h-1h) #suma sprzed dwóch godzin (11:00-12:00)
trendsum(/host/key,1h:now/h-2h) #suma sprzed trzech godzin (10:00-11:00)
trendsum(/host/key,1M:now/M-1y) #suma dla poprzedniego miesiąca sprzed roku
Zobacz wszystkie obsługiwane funkcje.