Funkcje trendów, w przeciwieństwie do funkcji historii, używają danych z trendów do obliczeń.
Trendy przechowują godzinowe wartości zagregowane. Funkcje trendów używają tych godzinowych średnich, co sprawia, że są one 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. Bufor funkcji trendów jest kontrolowany przez parametr serwera TrendFunctionCacheSize.
Wyzwalacze, które odwołują się tylko do funkcji trendów, są analizowane raz na najmniejszy okres czasu w wyrażeniu. Na przykład wyzwalacz taki jak:
będzie oceniany raz dziennie. Jeśli wyzwalacz zawiera zarówno funkcje trendów, jak i historii (lub oparte na czasie), jest obliczany zgodnie z zwykłymi zasadami.
Wszystkie funkcje wymienione tutaj są obsługiwane w:
Kilka ogólnych uwag na temat parametrów funkcji:
<
>
/host/key
oraz time period:time shift
nigdy nie mogą być cytowane/host/key
to wspólny obowiązkowy pierwszy parametrtime period:time shift
to wspólny drugi parametr, gdzie:
N
- liczba jednostek czasu, time unit
- h (godzina), d (dzień), w (tydzień), M (miesiąc) or y (rok).FUNKCJA | ||
---|---|---|
Opis | Parametry specyficzne dla funkcji | Komentarze |
baselinedev (/host/key,data period:time shift,season_unit,num_seasons) | ||
Zwraca liczbę odchyleń standardowych (według algorytmu stddevpop) między ostatnim okresem danych a tymi samymi okresami danych w poprzednich sezonach. | data period - okres zbierania danych w sezonie, zdefiniowany jako <N><jednostka czasu> gdzieN - liczba jednostek czasujednostka czasu - h (godzina), d (dzień), w (tydzień), M (miesiąc) lub y (rok), musi być równa lub mniejsza niż sezon Time shift - przesunięcie okresu czasu (patrz przykłady) season_unit - długość jednego sezonu (h, d, w, M, y), nie może być mniejsza niż okres danych num_seasons - liczba sezonów do oceny |
Przykłady: => baselinedev(/host/key,1d:now/d,"M",6) → obliczanie liczby odchyleń standardowych (populacji) między poprzednim dniem a tym samym dniem w poprzednich 6 miesiącach. Jeśli data nie istnieje w poprzednim miesiącu, użyty zostanie 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 odchyleń standardowych (populacji) między poprzednią godziną a tymi samymi godzinami w okresie dziesięciu dni przedwczoraj. |
baselinewma (/host/key,data period:time shift,season_unit,num_seasons) | ||
Oblicza wartość bazową poprzez uśrednianie danych z tego samego przedziału czasowego w wielu równych okresach czasu ('sezony') przy użyciu algorytmu ważonej średniej ruchomej. | data period - okres zbierania danych w sezonie, zdefiniowany jako <N><jednostka czasu> gdzieN - liczba jednostek czasujednostka czasu - h (godzina), d (dzień), w (tydzień), M (miesiąc) lub y (rok), musi być równa lub mniejsza niż sezon Time shift - przesunięcie okresu czasu, określa koniec okresu zbierania danych w sezonach (patrz przykłady) season_unit - długość jednego sezonu (h, d, w, M, y), nie może być mniejsza niż okres danych num_seasons - liczba sezonów do oceny |
Przykłady: => baselinewma(/host/key,1h:now/h,"d",3) → obliczanie wartości bazowej na podstawie ostatniej pełnej godziny w okresie 3-dniowym, który zakończył się wczoraj. Jeśli "teraz" jest poniedziałkiem o 13:30, dane dla 12:00-12:59 w piątek, sobotę i niedzielę zostaną przeanalizowane. => baselinewma(/host/key,2h:now/h,"d",3) → obliczanie wartości bazowej na podstawie ostatnich dwóch godzin w okresie 3-dniowym, który zakończył się wczoraj. Jeśli "teraz" jest poniedziałkiem o 13:30, dane dla 11:00-12:59 w piątek, sobotę i niedzielę zostaną przeanalizowane. => baselinewma(/host/key,1d:now/d,"M",4) → obliczanie wartości bazowej na podstawie tego samego dnia miesiąca jak 'wczoraj' w ciągu 4 miesięcy poprzedzających ostatni pełny miesiąc. Jeśli wymagana data nie istnieje, przyjmuje się ostatni dzień miesiąca. Jeśli dzisiaj jest 1 września, dane dla 31 lipca, 30 czerwca, 31 maja, 30 kwietnia zostaną przeanalizowane. |
trendavg (/host/key,time period:time shift) | ||
Średnia wartości trendów w zdefiniowanym okresie czasu. | Zobacz wspólne parametry. | Przykłady: => trendavg(/host/key,1h:now/h) → średnia z poprzedniej godziny (np. 12:00-13:00) => trendavg(/host/key,1h:now/h-1h) → średnia z dwóch godzin temu (11:00-12:00) => trendavg(/host/key,1h:now/h-2h) → średnia z trzech godzin temu (10:00-11:00) => trendavg(/host/key,1M:now/M-1y) → średnia z poprzedniego miesiąca rok temu |
trendcount (/host/key,time period:time shift) | ||
Ilość pomyślnie pobranych wartości trendów w zdefiniowanym okresie czasu. | Zobacz wspólne parametry. | Przykłady: => trendcount(/host/key,1h:now/h) → ilość z poprzedniej godziny (np. 12:00-13:00) => trendcount(/host/key,1h:now/h-1h) → ilość z dwóch godzin temu (11:00-12:00) => trendcount(/host/key,1h:now/h-2h) → ilość z trzech godzin temu (10:00-11:00) => trendcount(/host/key,1M:now/M-1y) → ilość z poprzedniego miesiąca rok temu |
trendmax (/host/key,time period:time shift) | ||
Maksimum wartości trendów w zdefiniowanym okresie czasu. | Zobacz wspólne parametry. | Przykłady: => trendmax(/host/key,1h:now/h) → maksimum z poprzedniej godziny (np. 12:00-13:00) => trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → oblicz różnicę między maksymalną a minimalną wartością (różnica trendu) z poprzedniej godziny (12:00-13:00) => trendmax(/host/key,1h:now/h-1h) → maksimum z dwóch godzin temu (11:00-12:00) => trendmax(/host/key,1h:now/h-2h) → maksimum z trzech godzin temu (10:00-11:00) => trendmax(/host/key,1M:now/M-1y) → maksimum z poprzedniego miesiąca rok temu |
trendmin (/host/key,time period:time shift) | ||
Minimum wartości trendów w zdefiniowanym okresie czasu. | Zobacz wspólne parametry. | Przykłady: => trendmin(/host/key,1h:now/h) → minimum z poprzedniej godziny (np. 12:00-13:00) => trendmin(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → oblicz różnicę między maksymalną a minimalną wartością (różnica trendu) z poprzedniej godziny (12:00-13:00) => trendmin(/host/key,1h:now/h-1h) → minimum z dwóch godzin temu (11:00-12:00) => trendmin(/host/key,1h:now/h-2h) → minimum z trzech godzin temu (10:00-11:00) => trendmin(/host/key,1M:now/M-1y) → minimum z poprzedniego miesiąca rok temu |
trendstl (/host/key,eval period:time shift,detection period,season,<deviations>,<devalg>,<s_window>) | ||
Zwraca współczynnik anomalii podczas okresu wykrywania - wartość dziesiętna między 0 a 1, która jest liczona jako ((liczba wartości anomalii)/(łączna liczba wartości)) . |
eval period - okres czasu, który musi zostać rozłożony (minimum '1h'), zdefiniowany jako <N><jednostka czasu> gdzieN - liczba jednostek czasujednostka czasu - h (godzina), d (dzień), w (tydzień), M (miesiąc) lub y (rok).Time shift - przesunięcie okresu czasu (patrz przykłady) detection period - okres czasu przed zakończeniem eval period, dla którego obliczane są anomalie (minimum '1h', nie może być dłuższy niż eval period), zdefiniowany jako <N><jednostka czasu> gdzie N - liczba jednostek czasujednostka czasu - h (godzina), d (dzień), w (tydzień).season - najkrótszy okres czasu, w którym oczekuje się powtarzający się wzorzec ("sezon") (minimum '2h', nie może być dłuższy niż okres eval, liczba wpisów w okresie eval musi być większa niż dwukrotność wynikającej częstotliwości (sezon/h)), zdefiniowany jako <N><jednostka czasu> gdzie N - liczba jednostek czasujednostka czasu - h (godzina), d (dzień), w (tydzień).deviations - liczba odchyleń standardowych (obliczanych przez devalg) do uznania za anomalie (może być dziesiętna), (musi być większa lub równa 1, domyślnie 3) devalg (musi być w cudzysłowiu) - algorytm odchylenia standardowego, może być stddevpop, stddevsamp lub mad (domyślnie) s_window - rozpiętość (w opóźnieniach) okna loess do ekstrakcji sezonowej (domyślnie 10 * liczba wpisów w eval period + 1) |
Przykłady: => trendstl(/host/key,100h:now/h,10h,2h) → analizuj ostatnie 100 godzin danych trendu, znajdź współczynnik anomalii dla ostatnich 10 godzin tego okresu, oczekując, że okresowość będzie wynosić 2h, pozostałe wartości serii z okresu ewaluacji uważa się za anomalie, jeżeli osiągną wartość 3 odchyleń liczonych za pomocą MAD tej pozostałej serii => trendstl(/host/key,100h:now/h-10h,100h,2h,2.1,"mad") → analizuj okres 100 godzin danych trendu, do 10 godzin temu, znajdź współczynnik anomalii dla całego tego okresu oczekując, że okresowość będzie wynosić 2h, pozostałe wartości serii z okresu ewaluacji uważa się za anomalie, jeżeli osiągną wartość 2,1 odchyleń liczonych za pomocą MAD tej pozostałej serii => trendstl(/host/key,100d:now/d-1d,10d,1d,4,,10) → analizuj 100 dni danych trendu do dnia wcześniej, znajdź współczynnik anomalii dla okresu ostatnich 10 dni tego okresu, oczekując, że okresowość będzie wynosić 1d, pozostałe wartości serii z okresu ewaluacji uważa się za anomalie, jeżeli osiągną wartość 4 odchyleń liczonych za pomocą MAD tej pozostałej serii, nadpisując domyślną rozpiętość okna loess do ekstrakcji sezonowej "10 * liczba wpisów w eval period + 1" z rozpiętością 10 opóźnień => trendstl(/host/key,1M:now/M-1y,1d,2h,,"stddevsamp") → analizuj poprzedni miesiąc rok temu, znajdź współczynnik anomalii ostatniego dnia tego okresu oczekując, że okresowość będzie wynosić 2h, wpozostałe wartości serii z okresu ewaluacji uważa się za anomalie, jeżeli osiągną wartość 3 odchylenia standardowego próbki tej pozostałej serii |
trendsum (/host/key,time period:time shift) | ||
Suma wartości trendów w zdefiniowanym okresie czasu. | 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 dla dwóch godzin temu (11:00-12:00) => trendsum(/host/key,1h:now/h-2h) → suma dla trzech godzin temu (10:00-11:00) => trendsum(/host/key,1M:now/M-1y) → suma dla poprzedniego miesiąca rok temu |