[comment]: # attributes: notoc

[comment]: # ({e82d3ccb-a4f8cca1})
# 5 Trend funkcijas

Trend funkcijas, atšķirībā no [vēstures funkcijām](/manual/appendix/functions/history), aprēķinos izmanto [trend](/manual/config/items/history_and_trends#keeping-trends) datus.

Trend dati glabā stundu agregētās vērtības.
Trend funkcijas izmanto šos stundu vidējos rādītājus, tāpēc tās ir noderīgas ilgtermiņa analīzei.

Trend funkciju rezultāti tiek kešoti, tāpēc vairāki izsaukumi tai pašai funkcijai ar vienādiem parametriem informāciju no datubāzes iegūst tikai vienu reizi.
Trend funkciju kešatmiņu kontrolē servera parametrs [TrendFunctionCacheSize](/manual/appendix/config/zabbix_server#trendfunctioncachesize).

Trigeri, kas atsaucas **tikai** uz trend funkcijām, tiek izvērtēti vienu reizi katrā mazākajā laika periodā izteiksmē.
Piemēram, trigeris kā

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

tiks izvērtēts vienu reizi dienā.
Ja trigeris satur gan trend, gan vēstures (vai [datuma un laika](/manual/appendix/functions/time) un/vai [nodata()](/manual/appendix/functions/history#nodata)) funkcijas, tas tiek aprēķināts saskaņā ar [parastajiem principiem](/manual/config/triggers#calculation-time).

Visas šeit uzskaitītās funkcijas tiek atbalstītas:

-   [Trigeru izteiksmēs](/manual/config/triggers/expression)
-   [Aprēķinātajos vienumos](/manual/config/items/itemtypes/calculated)
-   [Izteiksmju makrosos](/manual/config/macros/expression_macros)

Funkcijas ir uzskaitītas bez papildu informācijas.
Noklikšķiniet uz funkcijas, lai skatītu pilnu informāciju.

|Function|Description|
|--|--------|
|[baselinedev](#baselinedev)|Atgriež noviržu skaitu (izmantojot stddevpop algoritmu) starp pēdējo datu periodu un tiem pašiem datu periodiem iepriekšējās sezonās.|
|[baselinewma](#baselinewma)|Aprēķina bāzlīniju, vidējo vērtību iegūstot no tā paša laika perioda vairākos vienādos laika periodos ("sezonās"), izmantojot svērtā slīdošā vidējā algoritmu.|
|[trendavg](#trendavg)|Trend vērtību vidējā vērtība noteiktajā laika periodā.|
|[trendcount](#trendcount)|Veiksmīgi izgūto vēstures vērtību skaits, kas izmantots trend vērtības aprēķināšanai noteiktajā laika periodā.|
|[trendmax](#trendmax)|Trend vērtību maksimums noteiktajā laika periodā.|
|[trendmin](#trendmin)|Trend vērtību minimums noteiktajā laika periodā.|
|[trendstl](#trendstl)|Atgriež anomāliju biežumu noteikšanas periodā - decimālvērtību no 0 līdz 1, kas ir `((anomālo vērtību skaits)/(kopējais vērtību skaits))`.|
|[trendsum](#trendsum)|Trend vērtību summa noteiktajā laika periodā.|

[comment]: # ({/e82d3ccb-a4f8cca1})

[comment]: # ({9b47c9ce-2a63633f})
##### Bieži izmantotie parametri

-   `/host/key` ir bieži izmantots obligātais pirmais parametrs
-   `time period:time shift` ir bieži izmantots otrais parametrs, kur:
    -   **time period** - laika periods (minimums '1h'), definēts kā \<N>\<time unit>, kur `N` - laika vienību skaits, `time unit` - h (stunda), d (diena), w (nedēļa), M (mēnesis) vai y (gads).
    -   **time shift** - [laika perioda nobīde](/manual/config/triggers/expression#time-shift) (skatiet funkciju piemērus)

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

[comment]: # ({405ac9eb-bbe5ecf2})
### Funkciju informācija

Dažas vispārīgas piezīmes par funkciju parametriem:

-   Funkciju parametrus atdala ar komatu
-   Neobligātie funkciju parametri (vai parametru daļas) ir norādīti ar `<` `>`
-   Katras funkcijas specifiskie parametri ir aprakstīti pie attiecīgās funkcijas
-   Parametri `/hosts/key` un `time period:time shift` nekad nedrīkst būt pēdiņās

[comment]: # ({/405ac9eb-bbe5ecf2})

[comment]: # ({e17e8d2f-f42e2c92})
##### baselinedev(/host/key,data period:time shift,season unit,num seasons) {#baselinedev}

Atgriež noviržu skaitu (pēc stddevpop algoritma) starp pēdējo datu periodu un tiem pašiem datu periodiem iepriekšējās sezonās.<br>

Parametri: 

-   Skatiet [kopīgos parametrus](#common-parameters)<br>
-   **data period** - datu apkopošanas periods sezonas ietvaros, definēts kā <N><time unit>, kur:<br>`N` - laika vienību skaits<br>`time unit` - h (stunda), d (diena), w (nedēļa), M (mēnesis) vai y (gads), jābūt vienādam ar sezonu vai mazākam par to<br>
-   **season unit** - kalendārā vienība, kas definē vienu sezonu (h, d, w, M, y); nevar būt mazāka par data period<br> 
-   **num seasons** - novērtējamo sezonu skaits

Piemēri:

```default
baselinedev(/host/key,1d:now/d,"M",6) #aprēķina populācijas standartnoviržu skaitu starp iepriekšējo dienu un to pašu dienu iepriekšējos 6 mēnešos. Ja datums iepriekšējā mēnesī nepastāv, tiks izmantota mēneša pēdējā diena (31. jūlijs tiks analizēts attiecībā pret 31. janvāri, 28. februāri, ... 30. jūniju)
baselinedev(/host/key,1h:now/h,"d",10)  #aprēķina populācijas standartnoviržu skaitu starp iepriekšējo stundu un to pašu diennakts stundu 10 iepriekšējās dienās
```

[comment]: # ({/e17e8d2f-f42e2c92})

[comment]: # ({508adac0-447a9dac})
##### baselinewma(/host/key,data period:time shift,season unit,num seasons) {#baselinewma}

Aprēķina bāzlīniju, vidējojot datus no viena un tā paša laika intervāla vairākos vienādos laika periodos ("sezonās"), izmantojot svērto slīdošā vidējā algoritmu.<br>

Parametri: 

-   Skatiet [kopīgos parametrus](#common-parameters)<br>
-   **data period** - datu apkopošanas periods sezonas ietvaros, definēts kā <N><time unit>, kur:<br>`N` - laika vienību skaits<br>`time unit` - h (stunda), d (diena), w (nedēļa), M (mēnesis) vai y (gads), jābūt vienādam ar sezonu vai mazākam par to<br>Time shift - laika perioda nobīde, nosaka datu apkopošanas laika intervāla beigas sezonās (skatiet piemērus)<br>
-   **season unit** - kalendārā vienība, kas definē vienu sezonu (h, d, w, M, y); nevar būt mazāka par data period<br>
-   **num seasons** - novērtējamo sezonu skaits

Piemēri:

```default
baselinewma(/host/key,1h:now/h,"d",3) #bāzlīnijas aprēķināšana no tās pašas diennakts stundas pēdējās 3 pilnajās dienās, kas beidzas vakar. Ja "now" ir pirmdiena 13:30, tiks analizēti dati par 12:00-12:59 piektdienā, sestdienā un svētdienā
baselinewma(/host/key,2h:now/h,"d",3) #bāzlīnijas aprēķināšana no tā paša divu stundu intervāla pēdējās 3 pilnajās dienās, kas beidzas vakar. Ja "now" ir pirmdiena 13:30, tiks analizēti dati par 11:00-12:59 piektdienā, sestdienā un svētdienā
baselinewma(/host/key,1d:now/d,"M",4) #bāzlīnijas aprēķināšana no tās pašas mēneša dienas kā "vakar" 4 mēnešos pirms pēdējā pilnā mēneša. Ja nepieciešamais datums neeksistē, tiek izmantota mēneša pēdējā diena. Ja šodien ir 1. septembris, tiks analizēti dati par 31. jūliju, 30. jūniju, 31. maiju un 30. aprīli.
```

[comment]: # ({/508adac0-447a9dac})

[comment]: # ({2e9dd145-50d2db8d})
##### trendavg(/host/key,time period:time shift) {#trendavg}

Tendenču vērtību vidējā vērtība noteiktajā laika periodā.

Parametri: 

-   Skatiet [kopīgos parametrus](#common-parameters)

Piemēri:

```default
trendavg(/host/key,1h:now/h) #vidējā vērtība iepriekšējai stundai (piem., 12:00-13:00)
trendavg(/host/key,1h:now/h-1h) #vidējā vērtība pirms divām stundām (11:00-12:00)
trendavg(/host/key,1h:now/h-2h) #vidējā vērtība pirms trim stundām (10:00-11:00)
trendavg(/host/key,1M:now/M-1y) #vidējā vērtība iepriekšējam mēnesim pirms gada
```

[comment]: # ({/2e9dd145-50d2db8d})

[comment]: # ({533dfdf1-d66e1f00})
##### trendcount(/host/key,time period:time shift) {#trendcount}

Veiksmīgi izgūto vēstures vērtību skaits, kas izmantots, lai aprēķinātu trenda vērtību noteiktajā laika periodā.

Parametri: 

-   Skatiet [kopīgos parametrus](#common-parameters)

Piemēri:

```default
trendcount(/host/key,1h:now/h) #vērtību skaits iepriekšējai stundai (piem., 12:00-13:00)
trendcount(/host/key,1h:now/h-1h) #vērtību skaits pirms divām stundām (11:00-12:00)
trendcount(/host/key,1h:now/h-2h) #vērtību skaits pirms trim stundām (10:00-11:00)
trendcount(/host/key,1M:now/M-1y) #vērtību skaits iepriekšējam mēnesim pirms gada
```

[comment]: # ({/533dfdf1-d66e1f00})

[comment]: # ({f0a89e58-43665d11})
##### trendmax(/host/key,time period:time shift) {#trendmax}

Maksimālā vērtība tendenču vērtībās norādītajā laika periodā.

Parametri: 

-   Skatiet [kopīgos parametrus](#common-parameters)

Piemēri:

```default
trendmax(/host/key,1h:now/h) #maksimālā vērtība iepriekšējai stundai (piemēram, 12:00-13:00)
trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → aprēķināt starpību starp maksimālo un minimālo vērtību (tendenču delta) iepriekšējai stundai (12:00-13:00)
trendmax(/host/key,1h:now/h-1h) #maksimālā vērtība pirms divām stundām (11:00-12:00)
trendmax(/host/key,1h:now/h-2h) #maksimālā vērtība pirms trim stundām (10:00-11:00)
trendmax(/host/key,1M:now/M-1y) #maksimālā vērtība iepriekšējam mēnesim pirms gada
```

[comment]: # ({/f0a89e58-43665d11})

[comment]: # ({793872d7-3c0143a2})
##### trendmin(/host/key,time period:time shift) {#trendmin}

Minimums trenda vērtībās noteiktajā laika periodā.

Parametri: 

-   Skatiet [kopīgos parametrus](#common-parameters)

Piemēri:

```default
trendmin(/host/key,1h:now/h) #minimums iepriekšējai stundai (piemēram, 12:00-13:00)
trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → aprēķināt starpību starp maksimālo un minimālo vērtību (trenda delta) iepriekšējai stundai (12:00-13:00)
trendmin(/host/key,1h:now/h-1h) #minimums pirms divām stundām (11:00-12:00)
trendmin(/host/key,1h:now/h-2h) #minimums pirms trim stundām (10:00-11:00)
trendmin(/host/key,1M:now/M-1y) #minimums iepriekšējam mēnesim pirms gada
```

[comment]: # ({/793872d7-3c0143a2})

[comment]: # ({0ebc63ad-aba289ed})
##### trendstl(/host/key,eval period:time shift,detection period,season,<deviations>,<devalg>,<s window>) {#trendstl}

Atgriež anomāliju biežumu noteikšanas periodā — decimālvērtību no 0 līdz 1, kas ir `((anomāliju vērtību skaits)/(kopējais vērtību skaits))`.

Parametri: 

-   Skatiet [kopīgos parametrus](#common-parameters)<br>
-   **eval period** — laika periods, kas jāsadala komponentēs (minimums '1h'), definēts kā <N><time unit>, kur<br>`N` — laika vienību skaits<br>`time unit` — h (stunda), d (diena), w (nedēļa), M (mēnesis) vai y (gads)<br>
-   **detection period** — laika periods pirms eval period beigām, kuram tiek aprēķinātas anomālijas (minimums '1h', nevar būt garāks par eval period), definēts kā <N><time unit>, kur<br>`N` — laika vienību skaits<br>`time unit` — h (stunda), d (diena), w (nedēļa)<br>
-   **season** — īsākais laika periods, kurā ir sagaidāms atkārtojošs modelis ("sezona") (minimums '2h', nevar būt garāks par eval period, ierakstu skaitam eval period jābūt lielākam par divkāršu iegūtās frekvences vērtību (season/h)), definēts kā <N><time unit>, kur<br>`N` — laika vienību skaits<br>`time unit` — h (stunda), d (diena), w (nedēļa)
-   **deviations** — noviržu skaits (aprēķināts ar devalg), ko uzskatīt par anomāliju (var būt decimāldaļa), (jābūt lielākam vai vienādam ar 1, noklusējuma vērtība ir 3)
-   **devalg** (jābūt dubultpēdiņās) — novirzes algoritms; var būt *stddevpop*, *stddevsamp* vai *mad* (noklusējums)
-   **s window** — loess loga diapazons (lagos) sezonālās komponentes iegūšanai (noklusējuma vērtība ir 10 * ierakstu skaits eval period + 1)

Piemēri:

```default
trendstl(/host/key,100h:now/h,10h,2h) #analizē pēdējās 100 trendu datu stundas, nosaka anomāliju biežumu šī perioda pēdējām 10 stundām, pieņemot, ka periodiskums ir 2h; atlikuma rindas vērtības novērtēšanas periodā tiek uzskatītas par anomālijām, ja tās sasniedz 3 MAD noviržu vērtību šai atlikuma rindai
trendstl(/host/key,100h:now/h-10h,100h,2h,2.1,"mad") #analizē 100 stundu trendu datu periodu līdz 10 stundām pagātnē, nosaka anomāliju biežumu visam šim periodam, pieņemot, ka periodiskums ir 2h; atlikuma rindas vērtības novērtēšanas periodā tiek uzskatītas par anomālijām, ja tās sasniedz 2,1 MAD noviržu vērtību šai atlikuma rindai
trendstl(/host/key,100d:now/d-1d,10d,1d,4,,10) #analizē 100 dienu trendu datus līdz vienai dienai pagātnē, nosaka anomāliju biežumu šī perioda pēdējo 10d intervālam, pieņemot, ka periodiskums ir 1d; atlikuma rindas vērtības novērtēšanas periodā tiek uzskatītas par anomālijām, ja tās sasniedz 4 MAD noviržu vērtību šai atlikuma rindai, aizstājot sezonālās komponentes iegūšanai paredzēto loess loga noklusējuma diapazonu "10 * number of entries in eval period + 1" ar 10 lagu diapazonu
trendstl(/host/key,1M:now/M-1y,1d,2h,,"stddevsamp") #analizē iepriekšējo mēnesi pirms gada, nosaka anomāliju biežumu šī perioda pēdējai dienai, pieņemot, ka periodiskums ir 2h; atlikuma rindas vērtības novērtēšanas periodā tiek uzskatītas par anomālijām, ja tās sasniedz 3 izlases standartnovirzes noviržu vērtību šai atlikuma rindai
```

[comment]: # ({/0ebc63ad-aba289ed})

[comment]: # ({f897c466-1b9f4c40})
##### trendsum(/host/key,time period:time shift) {#trendsum}

Tendenču vērtību summa noteiktajā laika periodā.

Parametri: 

-   Skatiet [kopīgos parametrus](#common-parameters)

Piemēri:

```default
trendsum(/host/key,1h:now/h) #summa iepriekšējai stundai (piemēram, 12:00-13:00)
trendsum(/host/key,1h:now/h-1h) #summa periodam pirms divām stundām (11:00-12:00)
trendsum(/host/key,1h:now/h-2h) #summa periodam pirms trim stundām (10:00-11:00)
trendsum(/host/key,1M:now/M-1y) #summa iepriekšējam mēnesim pirms gada
```

[comment]: # ({/f897c466-1b9f4c40})

[comment]: # ({ba59dd3a-9e520569})
Skatiet [visas atbalstītās funkcijas](/manual/appendix/functions).

[comment]: # ({/ba59dd3a-9e520569})
