#4 Geschiedenisfuncties

Alle hier vermelde functies worden ondersteund in:

Enkele algemene opmerkingen over functieparameters:

  • Functieparameters worden gescheiden door een komma
  • Optionele functieparameters (of parameterdelen) worden aangegeven met: < >
  • Functiespecifieke parameters worden bij elke functie beschreven
  • /host/key en (sec|#num)<:time shift> parameters mogen nooit . zijn geciteerd
Algemene parameters
  • /host/key is een algemene verplichte eerste parameter voor de functies verwijzend naar de geschiedenis van het hostitem
  • (sec|#num)<:time shift> is een gebruikelijke tweede parameter voor de functies die verwijzen naar de geschiedenis van het hostitem, waarbij:
    • sec - maximum evaluatie periode in seconden (tijd achtervoegsels kan worden gebruikt), of
    • #num - maximum evaluatie bereik in de laatste verzamelde waarden (indien voorafgegaan door een hekje)
    • tijdverschuiving (optioneel) maakt het mogelijk om het evaluatiepunt te verplaatsen terug in de tijd. Bekijk meer details](/manual/config/triggers/expression#time_shift) aan tijdverschuiving aangeven.

Geschiedenisfuncties

FUNCTIE
Beschrijving Functiespecifieke parameters Opmerkingen
change (/host/key)
Het verschil tussen de vorige en de laatste waarde. Ondersteunde waardestypen: float, int, str, tekst, log

Voor strings wordt het volgende geretourneerd:
0 - waarden zijn gelijk
1 - waarden verschillen

Voorbeeld:
=> change(/host/key)>10

Numeriek verschil wordt berekend zoals gezien met deze voorbeeldwaarden (waarde 'vorige' en 'laatste' = verschil):
'1' en '5' = +4
'3' en '1' = -2
'0' en '-2.5' = -2.5

Zie ook: abs voor vergelijking
changecount (/host/key,(sec|#num)<:time shift>,<mode>)
Aantal veranderingen tussen aangrenzende waarden binnen de gedefinieerde evaluatieperiode. Zie algemene parameters.

mode (optioneel; moet tussen dubbele aanhalingstekens staan)

Ondersteunde modes:
all - tel alle veranderingen (standaard)
dec - tel afnames
inc - tel toenames
Ondersteunde waardestypen: float, int, str, tekst, log

Voor niet-numerieke waardetypen wordt de mode-parameter genegeerd.

Voorbeelden:
=> changecount(/host/key, 1w) → aantal waardeveranderingen gedurende de afgelopen week tot nu
=> changecount(/host/key,#10,"inc") → aantal toenames in waarde (ten opzichte van de aangrenzende waarde) onder de laatste 10 waarden
=> changecount(/host/key,24u,"dec") → aantal afnames in waarde (ten opzichte van de aangrenzende waarde) gedurende de afgelopen 24 uur tot nu
count (/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
Aantal waarden binnen de gedefinieerde evaluatieperiode. Zie algemene parameters.

operator (optioneel; moet tussen dubbele aanhalingstekens staan)

Ondersteunde operators:
eq - gelijk aan (standaard voor integer, float)
ne - niet gelijk aan
gt - groter dan
ge - groter dan of gelijk aan
lt - kleiner dan
le - kleiner dan of gelijk aan
like (standaard voor string, tekst, log) - komt overeen als het patroon bevat (hoofdlettergevoelig)
bitand - bitwise EN
regexp - hoofdlettergevoelige overeenkomst met het reguliere expressiepatroon gegeven in pattern
iregexp - hoofdletterongevoelige overeenkomst met het reguliere expressiepatroon gegeven in pattern
<brMerk op dat:
eq (standaard), ne, gt, ge, lt, le, band, regexp, iregexp worden ondersteund voor integer-waarden
eq (standaard), ne, gt, ge, lt, le, regexp, iregexp worden ondersteund voor float-waarden
like (standaard), eq, ne, regexp, iregexp worden ondersteund voor string-, tekst- en log-waarden

pattern (optioneel) - vereist patroon (string-argumenten moeten tussen dubbele aanhalingstekens staan)
Ondersteunde waardestypen: float, integer, string, tekst, log

Float-waarden komen overeen met een precisie van 2.22e-16; als de database niet is bijgewerkt is de precisie 0.000001.

Met bitand als derde parameter kan de vierde pattern-parameter worden opgegeven als twee getallen, gescheiden door een '/': number_to_compare_with/mask. De functie count() berekent "bitwise AND" van de waarde en het masker en vergelijkt het resultaat met number_to_compare_with. Als het resultaat van "bitwise AND" gelijk is aan number_to_compare_with, wordt de waarde geteld.
Als number_to_compare_with en masker gelijk zijn, hoeft alleen het masker te worden opgegeven (zonder '/').
<brMet regexp of iregexp als derde parameter kan de vierde pattern-parameter een gewone of globale (beginnend met '@') reguliere expressie zijn. In geval van wereldwijde reguliere expressies wordt de hoofdlettergevoeligheid overgenomen van de instellingen voor wereldwijde reguliere expressies. Voor het matchen van reguliere expressies worden float-waarden altijd weergegeven met 4 cijfers achter de komma. Merk ook op dat voor grote getallen het verschil in decimale (opgeslagen in de database) en binaire (gebruikt door de Zabbix-server) representatie invloed kan hebben op het vierde decimale cijfer.
<brVoorbeelden:
=> count(/host/key,10m) → aantal waarden gedurende de laatste 10 minuten tot nu
=> count(/host/key,10m,"like","fout") → aantal waarden gedurende de laatste 10 minuten tot nu die 'fout' bevatten
=> count(/host/key,10m,,12) → aantal waarden gedurende de laatste 10 minuten tot nu die gelijk zijn aan '12'
=> count(/host/key,10m,"gt",12) → aantal waarden gedurende de laatste 10 minuten tot nu die groter zijn dan '12'
=> count(/host/key,#10,"gt",12) → aantal waarden binnen de laatste 10 waarden tot nu die groter zijn dan '12'
=> count(/host/key,10m:nu-1d,"gt",12) → aantal waarden tussen 24 uur en 10 minuten en 24 uur geleden vanaf nu die groter waren dan '12'
=> count(/host/key,10m,"bitand","6/7") → aantal waarden gedurende de laatste 10 minuten tot nu met '110' (in binaire notatie) in de 3 minst significante bits.
=> count(/host/key,10m:nu-1d) → aantal waarden tussen 24 uur en 10 minuten en 24 uur geleden vanaf nu
countunique (/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
Aantal unieke waarden binnen de gedefinieerde evaluatieperiode. Zie algemene parameters.

operator (optioneel; moet tussen dubbele aanhalingstekens staan)

Ondersteunde operators:
eq - gelijk aan (standaard voor integer, float)
ne - niet gelijk aan
gt - groter dan
ge - groter dan of gelijk aan
lt - kleiner dan
le - kleiner dan of gelijk aan
like (standaard voor string, tekst, log) - komt overeen als het patroon bevat (hoofdlettergevoelig)
bitand - bitwise EN
regexp - hoofdlettergevoelige overeenkomst met het reguliere expressiepatroon gegeven in pattern
iregexp - hoofdletterongevoelige overeenkomst met het reguliere expressiepatroon gegeven in pattern

Merk op dat:
eq (standaard), ne, gt, ge, lt, le, band, regexp, iregexp worden ondersteund voor integer-waarden
eq (standaard), ne, gt, ge, lt, le, regexp, iregexp worden ondersteund voor float-waarden
like (standaard), eq, ne, regexp, iregexp worden ondersteund voor string-, tekst- en log-waarden

pattern (optioneel) - vereist patroon (string-argumenten moeten tussen dubbele aanhalingstekens staan)
Ondersteunde waardestypen: float, integer, string, tekst, log

Float-waarden komen overeen met een precisie van 2.22e-16; als de database niet is bijgewerkt is de precisie 0.000001.

Met bitand als derde parameter kan de vierde pattern-parameter worden opgegeven als twee getallen, gescheiden door '/': number_to_compare_with/mask. countunique() berekent de "bitwise EN" van de waarde en de mask en vergelijkt het resultaat met number_to_compare_with. Als het resultaat van "bitwise EN" gelijk is aan number_to_compare_with, wordt de waarde geteld.
Als number_to_compare_with en mask gelijk zijn, hoeft alleen de mask te worden opgegeven (zonder '/').

Met regexp of iregexp als derde parameter kan de vierde pattern-parameter een gewone of globale (beginnend met '@') reguliere expressie zijn. In geval van wereldwijde reguliere expressies wordt de hoofdlettergevoeligheid overgenomen van de instellingen voor wereldwijde reguliere expressies.

Voorbeelden:
=> countunique(/host/key,10m) → aantal unieke waarden gedurende de laatste 10 minuten tot nu
=> countunique(/host/key,10m,"like","fout") → aantal unieke waarden gedurende de laatste 10 minuten tot nu die 'fout' bevatten
=> countunique(/host/key,10m,"gt",12) → aantal unieke waarden gedurende de laatste 10 minuten tot nu die groter zijn dan '12'
=> countunique(/host/key,#10,"gt",12) → aantal unieke waarden binnen de laatste 10 waarden tot nu die groter zijn dan '12'
=> countunique(/host/key,10m:nu-1d,"gt",12) → aantal unieke waarden tussen 24 uur en 10 minuten en 24 uur geleden vanaf nu die groter waren dan '12'
=> countunique(/host/key,10m,"bitand","6/7") → aantal unieke waarden gedurende de laatste 10 minuten tot nu met '110' (in binaire notatie) in de 3 minst significante bits.
=> countunique(/host/key,10m:nu-1d) → aantal unieke waarden tussen 24 uur en 10 minuten en 24 uur geleden vanaf nu
find (/host/key,<(sec|#num)<:time shift>>,<operator>,<pattern>)
Een overeenkomende waarde vinden. Zie algemene parameters.

sec of #num (optioneel) - standaard is de nieuwste waarde als dit niet is gespecificeerd

operator (optioneel; moet tussen dubbele aanhalingstekens staan)

Ondersteunde operators:
eq - gelijk aan (standaard voor integer, float)
ne - niet gelijk aan
gt - groter dan
ge - groter dan of gelijk aan
lt - kleiner dan
le - kleiner dan of gelijk aan
like (standaard voor string, tekst, log) - waarde bevat de string in pattern (hoofdlettergevoelig)
bitand - bitwise EN
regexp - hoofdlettergevoelige overeenkomst met het reguliere expressiepatroon gegeven in pattern
iregexp - hoofdletterongevoelige overeenkomst met het reguliere expressiepatroon gegeven in pattern

Merk op dat:
eq (standaard), ne, gt, ge, lt, le, band, regexp, iregexp worden ondersteund voor integer-waarden
eq (standaard), ne, gt, ge, lt, le, regexp, iregexp worden ondersteund voor float-waarden
like (standaard), eq, ne, regexp, iregexp worden ondersteund voor string-, tekst- en log-waarden

pattern - vereist patroon (string-argumenten moeten tussen dubbele aanhalingstekens staan); Perl Compatible Regular Expression (PCRE) reguliere expressie als operator regexp, iregexp.
Ondersteunde waardestypen: float, int, str, tekst, log

Geeft terug:
1 - gevonden
0 - anders

Als meer dan één waarde wordt verwerkt, wordt '1' geretourneerd als er minstens één overeenkomende waarde is.

Bij regexp of iregexp als derde parameter kan de vierde pattern-parameter een gewone of globale (beginnend met '@') reguliere expressie zijn. In geval van wereldwijde reguliere expressies wordt de hoofdlettergevoeligheid overgenomen van de instellingen voor wereldwijde reguliere expressies.

Voorbeeld:
=> find(/host/key,10m,"like","fout") → zoek een waarde die 'fout' bevat binnen de laatste 10 minuten tot nu
first (/host/key,sec<:time shift>)
De eerste (oudste) waarde binnen de gedefinieerde evaluatieperiode. Zie algemene parameters. Ondersteunde waardestypen: float, int, str, tekst, log

Voorbeeld:
=> first(/host/key,1u) → haal de oudste waarde op binnen het laatste uur tot nu

Zie ook last().
fuzzytime (/host/key,<operator>,<pattern>,<max_difference>)
De tijdsduplicaten van de waarde binnen de gedefinieerde evaluatieperiode zoeken. operator (optioneel; moet tussen dubbele aanhalingstekens staan)

Ondersteunde operators:
eq (standaard) - gelijk aan
ne - niet gelijk aan
Ondersteunde waardestypen: int, float, str, tekst, log

De functie zoekt de tijdsduplicaten van de waarde binnen de gedefinieerde evaluatieperiode. Als het verschil tussen tijdstempels kleiner is dan max_difference, wordt de waarde als tijdsduplicaat beschouwd en wordt '1' geretourneerd.

Voorbeeld:
=> fuzzytime(/host/key) → zoek tijdsduplicaten van de waarde binnen de standaardevaluatieperiode
=> fuzzytime(/host/key,"eq",10,600) → zoek tijdsduplicaten van de waarde '10' binnen de laatste 10 minuten tot nu waarbij het tijdsverschil kleiner is dan 600 seconden
last (/host/key,sec<:time shift>)
De laatste (nieuwste) waarde binnen de gedefinieerde evaluatieperiode. Zie algemene parameters. Ondersteunde waardestypen: float, int, str, tekst, log

Voorbeeld:
=> last(/host/key,1u) → haal de nieuwste waarde op binnen het laatste uur tot nu

Zie ook first().
max (/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
De maximale waarde binnen de gedefinieerde evaluatieperiode. Zie algemene parameters. Ondersteunde waardestypen: int, float

Zie ook min().
min (/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
De minimale waarde binnen de gedefinieerde evaluatieperiode. Zie algemene parameters. Ondersteunde waardestypen: int, float

Zie ook max().
prev (/host/key,sec<:time shift>)
De op één na laatste waarde binnen de gedefinieerde evaluatieperiode. Zie algemene parameters. Ondersteunde waardestypen: float, int, str, tekst, log

Zie ook last() en first().
range (/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
Het bereik tussen de minimale en maximale waarde binnen de gedefinieerde evaluatieperiode. Zie algemene parameters. Ondersteunde waardestypen: int, float

Zie ook min() en max().
timeavg (/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
Het gewogen gemiddelde van de waarden binnen de gedefinieerde evaluatieperiode. Zie algemene parameters. Ondersteunde waardestypen: int, float

Voorbeeld:
=> timeavg(/host/key,1h) → gewogen gemiddelde van waarden binnen het laatste uur tot nu

Zie ook avg().
timeshift (/host/key,<sec|#num:time shift>)
Een verschoven waarde zoeken. Gebruik 0 of een negatieve waarde voor sec om de tijd in het verleden te verschuiven.

Zie ook now() en dateadd().
Ondersteunde waardestypen: int, float, str, tekst, log

Voorbeeld:
=> timeshift(/host/key,-3600) → waarde van 1 uur geleden
todate (/host/key,<operator>,<pattern>,<from_value>)
De datumtijd van de waarde binnen de gedefinieerde evaluatieperiode zoeken. operator (optioneel; moet tussen dubbele aanhalingstekens staan)

Ondersteunde operators:
eq (standaard) - gelijk aan
ne - niet gelijk aan
Let op: momenteel worden alleen eq en ne ondersteund.
Ondersteunde waardestypen: int, float, str, tekst, log

Voorbeeld:
=> todate(/host/key) → datumtijd van de waarde binnen de standaardevaluatieperiode
tointerval (/host/key,<pattern>)
De intervaltijden tussen aangrenzende waarden binnen de gedefinieerde evaluatieperiode zoeken. Geeft een lijst met tijdsintervallen tussen aangrenzende waarden binnen de evaluatieperiode terug.

pattern (optioneel) - vereist patroon (string-argumenten moeten tussen dubbele aanhalingstekens staan).
Ondersteunde waardestypen: int, float, str, tekst, log

Voorbeeld:
=> tointerval(/host/key) → intervaltijden tussen aangrenzende waarden binnen de standaardevaluatieperiode
tostring (/host/key,<(sec|#num)<:time shift>>,<operator>,<pattern>,<from_value>)
De stringrepresentatie van de waarde binnen de gedefinieerde evaluatieperiode zoeken. sec of #num (optioneel) - standaard is de nieuwste waarde als dit niet is gespecificeerd

operator (optionel; moet tussen dubbele aanhalingstekens staan)

Ondersteunde operators:
eq (standaard) - gelijk aan
ne - niet gelijk aan
gt - groter dan
ge - groter dan of gelijk aan
lt - kleiner dan
le - kleiner dan of gelijk aan
like - bevat de string in pattern (standaard voor string, tekst, log)
bitand - bitwise EN
regexp - hoofdlettergevoelige overeenkomst met het reguliere expressiepatroon gegeven in pattern
iregexp - hoofdletterongevoelige overeenkomst met het reguliere expressiepatroon gegeven in pattern
Ondersteunde waardestypen: int, float, str, tekst, log

Voorbeeld:
=> tostring(/host/key,"like","fout") → zoek een string die 'fout' bevat binnen de standaardevaluatieperiode
trend (/host/key,<sec|#num:time shift>)
De trend (verandering in de tijd) van de waarden binnen de gedefinieerde evaluatieperiode zoeken. Zie algemene parameters. Ondersteunde waardestypen: int, float, str, tekst, log

Zie ook avg() en percentile().
zabbix[] (parameter)
Toegang krijgen tot Zabbix-parameters. Zie beschikbare parameters. N.v.t.
zabbix[[]] (parameters)
Toegang krijgen tot ingesloten Zabbix-parameters. Zie beschikbare parameters. N.v.t.