[comment]: # translation:outdated

[comment]: # ({6d19b71a-4b66eb43})
# 5 Funkcje trendów

Funkcje trendów, w przeciwieństwie do [funkcji historii](/manual/appendix/functions/history), używają 
danych z [trendów](/manual/config/items/history_and_trends#keeping-trends) 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](/manual/appendix/config/zabbix_server).

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:

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

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](/manual/config/triggers#calculation-time).

Wszystkie funkcje wymienione tutaj są obsługiwane w:

-   [Wyrażeniach wyzwalacza](/manual/config/triggers/expression)
-   [Pozycjach obliczonych](/manual/config/items/itemtypes/calculated)

Kilka ogólnych uwag na temat parametrów funkcji:

-   Parametry funkcji są rozdzielane przecinkiem
-   Opcjonalne parametry funkcji (lub części parametrów) są oznaczone przez 
    `<` `>`
-   Parametry specyficzne dla funkcji są opisane przy każdej funkcji
-   Parametry `/host/key` oraz `time period:time shift` nigdy nie mogą być 
    cytowane

[comment]: # ({/6d19b71a-4b66eb43})

[comment]: # ({2a63633f-f32fad35})
##### Wspólne parametry

-   `/host/key` to wspólny obowiązkowy pierwszy parametr
-   `time period:time shift` to 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) or y (rok).
    -   **time shift** - przesunięcie czasowe okresu czasu (patrz przykłady funkcji)

[comment]: # ({/2a63633f-f32fad35})

[comment]: # ({ad290316-7b557310})
#### Funkcje trendów

|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> gdzie<br>`N` - liczba jednostek czasu<br>`jednostka czasu` - h (godzina), d (dzień), w (tydzień), M (miesiąc) lub y (rok), musi być równa lub mniejsza niż sezon <br><br>[Time shift](/manual/config/triggers/expression#time-shift) - przesunięcie okresu czasu (patrz przykłady)<br><br> **season_unit** - długość jednego sezonu (h, d, w, M, y), nie może być mniejsza niż okres danych <br><br>**num_seasons** - liczba sezonów do oceny| Przykłady:<br>=> **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). <br> => **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> gdzie<br>`N` - liczba jednostek czasu<br>`jednostka czasu` - h (godzina), d (dzień), w (tydzień), M (miesiąc) lub y (rok), musi być równa lub mniejsza niż sezon <br><br>[Time shift](/manual/config/triggers/expression#time-shift) - przesunięcie okresu czasu, określa koniec okresu zbierania danych w sezonach (patrz przykłady)<br><br> **season_unit** - długość jednego sezonu (h, d, w, M, y), nie może być mniejsza niż okres danych <br><br>**num_seasons** - liczba sezonów do oceny| Przykłady:<br>=> **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. <br>=> **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.  <br>=> **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](#common-parameters).|Przykłady:<br>=> **trendavg**(/host/key,**1h:now/h**) → średnia z poprzedniej godziny (np. 12:00-13:00)<br>=> **trendavg**(/host/key,**1h:now/h-1h**) → średnia z dwóch godzin temu (11:00-12:00)<br>=> **trendavg**(/host/key,**1h:now/h-2h**) → średnia z trzech godzin temu (10:00-11:00)<br>=> **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](#common-parameters).|Przykłady:<br>=> **trendcount**(/host/key,**1h:now/h**) → ilość z poprzedniej godziny (np. 12:00-13:00)<br>=> **trendcount**(/host/key,**1h:now/h-1h**) → ilość z dwóch godzin temu (11:00-12:00)<br>=> **trendcount**(/host/key,**1h:now/h-2h**) → ilość z trzech godzin temu (10:00-11:00)<br>=> **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](#common-parameters).|Przykłady:<br>=> **trendmax**(/host/key,**1h:now/h**) → maksimum z poprzedniej godziny (np. 12:00-13:00)<br>=> **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)<br>=> **trendmax**(/host/key,**1h:now/h-1h**) → maksimum z dwóch godzin temu (11:00-12:00)<br>=> **trendmax**(/host/key,**1h:now/h-2h**) → maksimum z trzech godzin temu (10:00-11:00)<br>=> **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](#common-parameters).|Przykłady:<br>=> **trendmin**(/host/key,**1h:now/h**) → minimum z poprzedniej godziny (np. 12:00-13:00)<br>=> **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)<br>=> **trendmin**(/host/key,**1h:now/h-1h**) → minimum z dwóch godzin temu (11:00-12:00)<br>=> **trendmin**(/host/key,**1h:now/h-2h**) → minimum z trzech godzin temu (10:00-11:00)<br>=> **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> gdzie<br>`N` - liczba jednostek czasu<br>`jednostka czasu` - h (godzina), d (dzień), w (tydzień), M (miesiąc) lub y (rok).<br><br>[Time shift](/manual/config/triggers/expression#time-shift) - przesunięcie okresu czasu (patrz przykłady)<br><br>**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<br>`N` - liczba jednostek czasu<br>`jednostka czasu` - h (godzina), d (dzień), w (tydzień).<br><br>**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<br>`N` - liczba jednostek czasu<br>`jednostka czasu` - h (godzina), d (dzień), w (tydzień).<br><br>**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)<br><br>**devalg** (musi być w cudzysłowiu) - algorytm odchylenia standardowego, może być *stddevpop*, *stddevsamp* lub *mad* (domyślnie)<br><br>**s_window** - rozpiętość (w opóźnieniach) okna loess do ekstrakcji sezonowej (domyślnie 10 * liczba wpisów w eval period + 1)|Przykłady:<br>=> **trendstl**(/host/key,**100h:now/h**,10h,2h) →  analizuj ostatnie 100 godzin danych trendu,<br>znajdź współczynnik anomalii dla ostatnich 10 godzin tego okresu,<br>oczekując, że okresowość będzie wynosić 2h,<br>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<br>=> **trendstl**(/host/key,**100h:now/h-10h**,100h,2h,2.1,"mad") →  analizuj okres 100 godzin danych trendu, do 10 godzin temu,<br>znajdź współczynnik anomalii dla całego tego okresu<br>oczekując, że okresowość będzie wynosić 2h,<br>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<br>=> **trendstl**(/host/key,**100d:now/d-1d**,10d,1d,4,,10) → analizuj 100 dni danych trendu do dnia wcześniej,<br>znajdź współczynnik anomalii dla okresu ostatnich 10 dni tego okresu,<br>oczekując, że okresowość będzie wynosić 1d,<br>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,<br>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ń<br>=> **trendstl**(/host/key,**1M:now/M-1y**,1d,2h,,"stddevsamp") → analizuj poprzedni miesiąc rok temu,<br>znajdź współczynnik anomalii ostatniego dnia tego okresu<br>oczekując, że okresowość będzie wynosić 2h,<br>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](#common-parameters).|Przykłady:<br>=> **trendsum**(/host/key,**1h:now/h**) → suma dla poprzedniej godziny (np. 12:00-13:00)<br>=> **trendsum**(/host/key,**1h:now/h-1h**) → suma dla dwóch godzin temu (11:00-12:00)<br>=> **trendsum**(/host/key,**1h:now/h-2h**) → suma dla trzech godzin temu (10:00-11:00)<br>=> **trendsum**(/host/key,**1M:now/M-1y**) → suma dla poprzedniego miesiąca rok temu|

[comment]: # ({/ad290316-7b557310})
