7 Aprēķinātie vienumi
Pārskats
Aprēķināms vienums ļauj izveidot aprēķinu, kas balstīts uz dažu esošu vienumu vērtībām. Piemēram, jūs 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āms vienums.
Aprēķinos var izmantot gan:
- atsevišķas individuālu vienumu vērtības
- sarežģītu filtru, lai atlasītu vairākus vienumus agregēšanai (skatiet agregētos aprēķinus sīkākai informācijai)
Aprēķināmi vienumi ir veids, kā izveidot virtuālus datu avotus. Visi aprēķini tiek veikti tikai Zabbix serverī. 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 glabātas gan vēstures, gan tendenču vērtības, un var tikt ģenerēti grafiki.
Ja aprēķina rezultāts ir peldošā komata vērtība, tā tiks apgriezta līdz veselam skaitlim, ja aprēķināmā vienuma informācijas tips ir Numeric (unsigned).
Tāpat, ja kešatmiņā nav nesenu datu un funkcijā nav definēts vaicājuma periods, Zabbix pēc noklusējuma meklēs datubāzē vēsturiskās vērtības līdz pat vienai nedēļai pagātnē.
Aprēķināmiem vienumiem ir tāda pati sintakse kā trigeru izteiksmēm. Ja esat pazīstams ar trigeru izteiksmēm, varat uztvert aprēķināmus vienumus kā funkcijas, kas analizē noteiktas vērtības, bet bez salīdzināšanas ar slieksni.
Aprēķināmos vienumos ir atļauta salīdzināšana ar virkņu vērtībām. Uz aprēķināmiem vienumiem var atsaukties makrosi vai citas entītijas tāpat kā uz jebkuru citu vienuma tipu.
Lai izmantotu aprēķināmus vienumus, izvēlieties vienuma tipu Calculated.
Konfigurējamie lauki
Atslēga ir unikāls vienuma identifikators (katram hostam). Jūs varat izveidot jebkādu atslēgas nosaukumu, izmantojot atbalstītos simbolus.
Aprēķina definīcija jāievada laukā Formula. Starp formulu un atslēgu nav saistības. Atslēgas parametri formulā nekādā veidā netiek izmantoti.
Vienkāršas formulas sintakse ir šāda:
function(/host/key,<parameter1>,<parameter2>,...)
kur:
| Elements | Apraksts |
|---|---|
function |
Viena no atbalstītajām funkcijām: last, min, max, avg, count u.c. |
host |
Vienuma hosts, kas tiek izmantots aprēķinam. Pašreizējo hostu var izlaist (t.i., kā function(//key,parameter,...)). |
key |
Vienuma atslēga, kas tiek izmantota aprēķinam. Vienumi, kas atgriež vērtības ar bināro vai JSON datu tipu, netiek atbalstīti. |
parameter(s) |
Funkcijas parametri, ja nepieciešams. Tiek atbalstīti laika sufiksi un atmiņas lieluma sufiksi. |
lietotāja makrosi formulā tiks izvērsti, ja tie tiks izmantoti, lai norādītu uz funkcijas parametru, vienuma filtra parametru vai konstanti. Lietotāja makrosi NETIKS izvērsti, ja tie norāda uz funkciju, hosta nosaukumu, vienuma atslēgu, vienuma atslēgas parametru vai operatoru.
Sarežģītākā formulā var izmantot funkciju, operatoru un iekavu kombināciju. Jūs varat izmantot visas funkcijas un operatorus, kas tiek 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 saņemot jaunu vērtību.
Visiem vienumiem, uz kuriem atsaucas vēstures funkcijas aprēķinātā vienuma formulā, ir jāeksistē un jāapkopo dati. Turklāt, ja maināt atsauces vienuma atslēgu, jums manuāli jāatjaunina visas formulas, kurās šī atslēga tiek izmantota.
Aprēķinātais vienums var kļūt neatbalstīts vairākos gadījumos:
- atsauces 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ēķināšanai
- dalīšana ar nulli
- izmantota nepareiza sintakse
Lietošanas piemēri
Piemērs 1
Brīvās diska vietas procentuālās daļas aprēķināšana uz '/'.
Funkcijas last izmantošana:
100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])
Zabbix ņems jaunākās brīvās un kopējās diska vietas vērtības un aprēķinās procentuālo daļu saskaņā ar doto formulu.
Piemērs 2
Zabbix apstrādāto vērtību skaita 10 minūšu vidējās vērtības aprēķināšana.
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šās datplūsmas procentuālās daļas 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ī: Apkopoto aprēķinu piemēri