Макро функције нуде могућност прилагођавања вредности macro (на пример, скраћивање или издвајање одређених подстрингова), што олакшава рад са њима.
Синтакса макро функције је:
где
На пример:
{{TIME}.fmttime(format,time_shift)}
{{ITEM.VALUE}.regsub(pattern, output)}
{{$USERMACRO}.regsub(pattern, output)}
{{#LLDMACRO}.regsub(pattern, output)}
Макро функције су подржане за
Макро функције се могу користити на свим локацијама које подржавају наведене макрое. Ово важи осим ако није експлицитно наведено да се очекује само макро (на пример, приликом конфигурисања макроа хоста или правила откривања ниског нивоа филтери).
Подржава се једна функција по макроу; више макро функција у ланцу није подржано.
Погледајте примере избегавања за случајеве када се макро функције користе унутар других контекста (функција, кључ ставке, други макро итд.).
Функције су наведене без додатних информација. Кликните на функцију да бисте видели све детаље.
Function | Description |
---|---|
btoa | Кодирање вредности макроа у Base64 кодирање. |
fmtnum | Форматирање броја за контролу броја цифара које се штампају после децималне тачке. |
fmttime | Форматирање времена. |
htmldecode | Декодирање вредности макроа из HTML кодирања. |
htmlencode | Кодирање вредности макроа у HTML кодирање. |
iregsub | Издвајање подстринга помоћу подударања регуларног израза (без разлике између великих и малих слова). |
lowercase | Трансформација знакова вредности макроа у мала слова. |
regrepl | Замена карактера/подстринга у вредности макроа. |
regsub | Издвајање подстринга помоћу регуларног израза (разликовање великих и малих слова). |
tr | Транслитерација знакова вредности макроа. |
uppercase | Трансформација знакова вредности макроа у велика слова. |
urldecode | Декодирање вредности макроа из URL кодирања. |
urlencode | Кодирање вредности макроа у URL кодирање. |
Опционални параметри функције су означени са < >.
Кодирање макро вредности у Base64 кодирање. Base64 кодирање је метод за представљање бинарних података као текста, користан за чување и безбедан пренос бинарног садржаја преко текстуалних протокола.
Пример:
{{ITEM.VALUE}.btoa()} - ће Base64 кодирати вредност попут "zabbix" у "emFiYml4"
Форматирање броја за контролу броја цифара које се штампају после децималног зареза.
Параметри:
Примери:
{{ITEM.VALUE}.fmtnum(2)} - вратиће "24.35" од примљене вредности од "24.3483523" {{ITEM.VALUE}.fmtnum(0)} - вратиће "24" од примљене вредности од "24.3483523"
Форматирање времена.
Имајте на уму да се ова функција може користити са макроима који се решавају у вредност у једном од следећих временских формата:
hh:mm:ss
yyyy-mm-ddThh:mm:ss[tz]
(ISO8601 standard)Параметри:
strftime
;-<N><time_unit>
или +<N><time_unit>
, где је:N
- број временских јединица за додавање или одузимање;временска_јединица
- h (сат), d (дан), w (недеља), M (месец) или y (година).Коментари:
time_shift
подржава вишестепене временске операције и може да садржи /<time_unit>
за померање на почетак временске јединице (/d
- поноћ, /w
- 1. дан у недељи (понедељак), /M
- 1. дан у месецу, итд.). Примери: -1w
- тачно 7 дана уназад; -1w/w
- понедељак претходне недеље; -1w/w+1d
- уторак претходне недеље.-1M/d+1h/w
ће бити рашчлањено као ((-1M/d)+1h)/w
.Примери:
{{TIME}.fmttime(%B)} - вратиће "Октобар" из примљене вредности "12:36:01" {{TIME}.fmttime(%d %B,-1M/M)} - вратиће "1. септембар" из примљене вредности "12:36:01"
Декодирање макро вредности из HTML кодирања.
Подржани су следећи знакови:
Value | Decoded value |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
' |
' |
Пример:
{{ITEM.VALUE}.htmldecode()} - ће HTML-декодирати вредност попут "<" у "<"
Кодирање макро вредности у HTML кодирање.
Подржани су следећи знакови:
Value | Encoded value |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Пример:
{{ITEM.VALUE}.htmlencode()} - ће HTML-кодирати знак попут "<" у "<"
Издвајање подстринга помоћу подударања регуларног израза (без разлике између великих и малих слова).
Параметри:
Коментари:
Пример:
{{ITEM.VALUE}.iregsub("fail|error|fault|problem","ERROR")} - решиће се као "ERROR" ако се приме подстрингови "fail", "error", "fault" или "problem" (не разликује велика и мала слова); ништа ако нема подударања
Трансформација свих макро вредности у мала слова. Ради са једнобајтним скуповима знакова (као што је ASCII) и не подржава UTF-8.
Пример:
{{ITEM.VALUE}.lowercase()} - трансформисаће вредност попут "Zabbix SERVER" у "zabbix server" (мала слова)
Замена карактера/подстринга у макро вредности.
Параметри:
Коментари:
Примери:
{{ITEM.VALUE}.regrepl("oldParam", "newParam")} - замениће "oldParam" са "newParam" {{ITEM.VALUE}.regrepl("([^a-z])","\\1")} - сви знакови који нису слова биће избегнути обрнутом косом цртом {$THRESHOLD:"{{#FSNAME}.regrepl("\$","")}"} - уклониће завршну обрнуту косу црту (на пример, да би се заменило "C:" са "C:") {{ITEM.VALUE}.regrepl("_v1.0", "_v2.0", "(final)", "")} - замениће више делова у вредности ставке
Издвајање подстринга помоћу подударања регуларног израза (разликује велика и мала слова).
Параметри:
Коментари:
Примери:
{{ITEM.VALUE}.regsub("^([0-9]+)", Problem ID: \1)} - решиће се као "ID проблема: 123" ако се прими вредност попут "123 Линија дневника" {{ITEM.VALUE}.regsub("fail|error|fault|problem","ERROR")} - решиће се као "ГРЕШКА" ако се приме подстрингови "неуспех", "грешка", "грешка" или "проблем" (разликују се велика и мала слова); ништа ако нема подударања
Погледајте више примера.
Транслитерација знакова макро вредности.
Примери:
{{ITEM.VALUE}.tr(abc, xyz)} - замениће сва појављивања "a" са "x", "b" са "y", "c" са "z" {{ITEM.VALUE}.tr(abc, xyzq)} - замениће сва појављивања "a" са "x", "b" са "y", "c" са "z" ("q" се игнорише) {{ITEM.VALUE}.tr(abcde, xyz)} - замениће сва појављивања "a" са "x", "b" са "y", "c" са "z", "d" са "z", "e" са "z" (тј. xyzzz) {{ITEM.VALUE}.tr("\'", "/"")} - замениће сва појављивања обрнуте косе црте косом цртама, а једноструке наводнике двоструким наводницима {{ITEM.VALUE}.tr(A-Z,a-z)} - конвертоваће сва слова у мала слова {{ITEM.VALUE}.tr(0-9a-z,)} - замениће све бројеве и мала слова са "" {{ITEM.VALUE}.tr(0-9,ab)} - замениће сва појављивања броја 0 са "a", и сва појављивања бројева 1, 2, 3, 4, 5, 6, 7, 8 и 9 са "b" {{ITEM.VALUE}.tr(0-9abcA-L,)} - замениће све бројеве, знакове "abc" и опсег A-L са "" {{ITEM.VALUE}.tr("","")} - замениће појављивања краја реда са {{ITEM.VALUE}.tr("e", "")} - замениће сва "e" знаковима краја реда
Да бисте укључили литералне знакове:
обрнута коса црта - мора се избегавати као \ једноструки наводник - мора се избегавати као ' двоструки наводник - мора се избегавати као "
Подржано избегавање Низ са обрнутом косом цртом:
\\ => \ - двострука обрнута коса црта у једноструку обрнуту косу црту \a => - упозорење \b => брисање уназад \f => померање странице \n => - нови ред \r => враћање \t => хоризонтални табулатор \v => вертикални табулатор
Трансформација свих макро вредности у велика слова. Ради са једнобајтним скуповима знакова (као што је ASCII) и не подржава UTF-8.
Пример:
{{ITEM.VALUE}.uppercase()} - трансформисаће вредност попут "Zabbix Server" у "ZABBIX SERVER" (велика слова)
Декодирање макро вредности из URL кодирања.
Пример:
{{ITEM.VALUE}.urldecode()} - декодираће URL вредност попут "%2F" у "/"
Кодирање макро вредности у URL кодирање.
Пример:
{{ITEM.VALUE}.urlencode()} - ће URL-кодирати знак попут "/" у "%2F"
Табела испод приказује више примера коришћења макро функција.
Macro function | Received value | Output |
---|---|---|
{{ITEM.VALUE}.regsub(^[0-9]+, Проблем)} |
123Линија евиденције |
Проблем |
{{ITEM.VALUE}.regsub("^([0-9]+)", "Проблем")} |
123 Линија евиденције |
Проблем |
{{ITEM.VALUE}.regsub(".*", "ID проблема: \1")} |
Линија евиденције |
ID проблема: |
{{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " ID проблема: \1_\2 ")} |
MySQL се срушио, грешка бр. 123 |
ID проблема: MySQL\_123 |
{{ITEM.VALUE}.regsub("([1-9]+", "ID проблема: \1")} |
123 Линија евиденције |
НЕПОЗНАТО (неважећи регуларни израз) |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \1)} |
customername_1 |
customername |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \2)} |
customername_1 |
1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} |
customername_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} (неважећи регуларни израз) |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}"} |
customername_1 |
{$MACRO:"имекупца"} |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \2)}"} |
customername_1 |
{$MACRO:"1"} |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+\", \1)}"} |
customername_1 |
{$MACRO:"{{#M}.regsub(\"(.*)_([0-9]+\", \1)}"} (неважећи регуларни израз) |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \1)}\"}" |
customername_1 |
"{$MACRO:\"имекупца\"}" |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \2)}\"}" |
customername_1 |
"{$MACRO:\"1\"}" |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" |
customername_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" (неважећи регуларни израз) |
Дуге вредности решених макроа {ITEM.VALUE} и {ITEM.LASTVALUE} за текстуалне/лог ставке су скраћене на 20 знакова на неким локацијама у фронтенду. Да бисте видели пуне вредности ових макроа, можете користити макро функције, нпр.:
{{ITEM.VALUE}.regsub("(.)", \1)} {{ITEM.LASTVALUE}.regsub("(.)", \1)}
Погледајте такође: {ITEM.VALUE} и {ITEM.LASTVALUE} детаљи макроа.