14 Aprēķinātais vienums

Pārskats

Aprēķinātais vienums ļauj izveidot aprēķinu, pamatojoties uz dažu esošo vienumu vērtībām. Piemēram, varat vēlēties aprēķināt kāda vienuma vērtības stundas vidējo vai aprēķināt kopējo vērtību vienumu grupai. Tieši tam ir paredzēts aprēķinātais vienums.

Aprēķinos var izmantot gan:

  • atsevišķu vienumu atsevišķas vērtības
  • sarežģītu filtru, lai atlasītu vairākus vienumus agregēšanai (sīkāku informāciju skatiet agregētajos aprēķinos)

Aprēķinātie vienumi ir veids, kā izveidot virtuālus datu avotus. Visus aprēķinus veic tikai Zabbix serveris. Vērtības tiek periodiski aprēķinātas, pamatojoties uz izmantoto aritmētisko izteiksmi.

Iegūtie dati tiek glabāti Zabbix datubāzē tāpat kā jebkuram citam vienumam; tiek saglabātas gan vēstures, gan tendenču vērtības, un var ģenerēt grafikus.

Ja aprēķina rezultāts ir peldošā komata vērtība, tā tiks noapaļota līdz veselam skaitlim, ja aprēķinātā vienuma informācijas tips ir Skaitlisks (bez zīmes).

Tāpat, ja kešatmiņā nav nesenu datu un funkcijā nav definēts vaicājuma periods, Zabbix pēc noklusējuma meklēs vēsturiskās vērtības datubāzē līdz pat vienu nedēļu tālā pagātnē.

Aprēķinātajiem vienumiem sintakse ir kopīga ar trigeru izteiksmēm. Aprēķinātajos vienumos ir atļauts salīdzinājums ar virknēm. Aprēķinātie vienumi var tikt atsaukti ar makro vai citām entītijām tāpat kā jebkurš cits vienuma tips.

Lai izmantotu aprēķinātos vienumus, izvēlieties vienuma tipu Calculated.

Konfigurējamie lauki

key ir unikāls vienuma identifikators (katram hostam). Varat izveidot jebkuru key nosaukumu, izmantojot atbalstītos simbolus.

Aprēķina definīcija jāievada laukā Formula. Starp formulu un key nav savienojuma. Key parametri formulā nekādā veidā netiek izmantoti.

Vienkāršas formulas sintakse ir šāda:

function(/host/key,<parameter1>,<parameter2>,...)

kur:

function Viena no atbalstītajām funkcijām: last, min, max, avg, count u. c.
host Hosts, kura vienums tiek izmantots aprēķinam.
Pašreizējo hostu var izlaist (t. i., kā function(//key,parameter,...)).
key Vienuma key, kas tiek izmantots aprēķinam.
Vienumi, kas atgriež vērtības ar bināro datu tipu, netiek atbalstīti.
parameter(s) Funkcijas parametri, ja nepieciešams.
Tiek atbalstīti laika sufiksi un atmiņas apjoma sufiksi.

User macros formulā tiks izvērsti, ja tie tiek izmantoti, lai norādītu funkcijas parametru, vienuma filtra parametru vai konstanti. User macros NETIKS izvērsti, ja tie attiecas uz funkciju, hosta nosaukumu, vienuma key, vienuma key parametru vai operatoru.

Sarežģītāka formula var izmantot funkciju, operatoru un iekavu kombināciju. Varat izmantot visas funkcijas un operatorus, kas atbalstīti trigeru izteiksmēs. Loģika un operatoru prioritāte ir tieši tāda pati.

Atšķirībā no trigeru izteiksmēm, Zabbix apstrādā aprēķinātos vienumus atbilstoši vienuma atjaunināšanas intervālam, nevis pēc jaunas vērtības saņemšanas.

Visiem vienumiem, uz kuriem tiek atsaukties, izmantojot vēstures funkcijas aprēķinātā vienuma formulā, ir jāeksistē un jāapkopo dati. Tāpat, ja maināt atsauktā vienuma key, jums manuāli jāatjaunina visas formulas, kas izmanto šo key.

Aprēķinātais vienums vairākos gadījumos var kļūt neatbalstīts:

  • atsauktais vienums(-i)
    • nav atrasts
    • ir atspējots
    • pieder atspējotam hostam
    • nav atbalstīts (izņemot ar nodata() funkciju un operatoriem ar nezināmām vērtībām)
  • nav datu funkcijas aprēķinam
  • dalīšana ar nulli
  • izmantota nepareiza sintakse

Lietošanas piemēri

Piemērs 1

Brīvās diska vietas procentuālā daudzuma aprēķināšana uz '/'.

Funkcijas last izmantošana:

100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])

Zabbix izmantos jaunākās brīvās un kopējās diska vietas vērtības un aprēķinās procentuālo daudzumu atbilstoši dotajai formulai.

Piemērs 2

10 minūšu vidējās vērtības aprēķināšana par Zabbix apstrādāto vērtību skaitu.

Funkcijas avg izmantošana:

avg(/Zabbix Server/zabbix[wcache,values],10m)

Ņemiet vērā, ka plaša aprēķināto vienumu izmantošana ar gariem laika periodiem var ietekmēt Zabbix servera veiktspēju.

Piemērs 3

Kopējā joslas platuma aprēķināšana uz eth0.

Divu funkciju summa:

last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])
Piemērs 4

Ienākošā trafika procentuālā daudzuma aprēķināšana.

Sarežģītāka izteiksme:

100*last(//net.if.in[eth0,bytes])/(last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes]))

Skatiet arī: Agregēto aprēķinu piemēri