Les funcions de macro ofereixen la possibilitat de personalitzar els valors macro.
De vegades, una macro pot resoldre un valor amb el qual no necessàriament és fàcil de treballar. Pot ser llarg o contindre una subcadena específica d'interès que voleu extreure. Aquí és on les funcions macro poden ser útils.
La sintaxi d'una funció macro és:
on:
Els paràmetres s'han de citar si:
)
" o una comaPer exemple:
{{TIME}.fmttime(format,time_shift)}
{{ITEM.VALUE}.regsub(patró, sortida)}
{{#LLDMACRO}.regsub(patró, sortida)}
Els paràmetres opcionals de funcions s'indiquen amb <>.
FUNCIÓ | |||
---|---|---|---|
Descripció | Configuració | Compatible per | |
fmtnum (dígits) | |||
Format de nombres per controlar el nombre de dígits impresos després del punt decimal. | dígits - el nombre de dígits després del punt decimal. No es produirà cap zero final. | {ITEM.VALUE} {ITEM.LASTVALUE} Macros d'expressió |
|
fmttime (format,<time_shift>) | |||
Format de temps. | format - cadena de format obligatori, compatible amb el format de la funció strftime time_shift - el desplaçament de temps aplicat a l'hora abans del format; hauria de començar per -<N><time_unit> o +<N><time_unit> , onN - el nombre d'unitats de temps a sumar o restar; temps_unit - h (hora), d (dia), w (setmana), M (mes) o y (any). Des de Zabbix 5.4, el paràmetre time_shift admet operacions de temps en diverses passes i pot incloure / <time_unit> per saltar a l'inici de la unitat de temps (/d - mitjanit, /w - 1r dia de la setmana (dilluns), /M - 1r dia del mes, etc.). Exemples:-1w - exactament 7 dies enrere;-1w/w - dilluns de la setmana passada;-1w/w+1d - dimarts de la setmana passada. < br>Tingueu en compte que les operacions temporals es calculen d'esquerra a dreta sense prioritats. Per exemple, -1M/d+1h/w s'analitzarà com a ((-1M/d)+1h)/w . |
{TIME} | |
iregsub (patró,sortida) | |||
Extracció de subcadenes per concordança d'expressions regulars (no distingeix entre majúscules i minúscules). | patró - l'expressió regular que coincideix amb sortida - les opcions de sortida. \1 - \9 s'admeten els marcadors de posició per capturar grups. \0 retorna el text coincident. |
{ITEM.VALUE} {ITEM.LASTVALUE} Macros de descoberta de baix nivell (excepte al filtre de regles de descoberta de baix nivell) |
|
regsub (patró,sortida) | |||
Extracció de subcadenes per concordança d'expressions regulars (distingeix entre majúscules i minúscules). | patró - l'expressió regular que coincideix sortida - les opcions de sortida. \1 - \9 s'admeten els marcadors de posició per capturar grups. \0 retorna el text coincident. |
{ITEM.VALUE} {ITEM.LASTVALUE} Macros de descoberta de baix nivell (excepte al filtre de regles de descoberta de baix nivell) |
Si s'empra una funció en una ubicació admesa, però s'aplica a una macro que no admet funcions de macro, aleshores la macro s'avalua com a 'DESCONEGUDA'.
Si el patró no és una expressió regular vàlida, la macro s'avalua com a 'DESCONEGUDA' (excepte per a les macros de descoberta de baix nivell on la funció s'ignorarà en aquest cas i la macro romandrà sense ampliar).
Les maneres en què es poden emprar les funcions de macro per personalitzar els valors de macro s'il·lustra als exemples següents sobre valors rebuts:
Valor rebut | Macro | Sortida |
---|---|---|
24.3413523 |
{{ITEM.VALUE}.fmtnum(2)} |
24.34 |
24.3413523 |
{{ITEM.VALUE}.fmtnum(0)} |
24 |
12:36:01 |
{{TIME}.fmttime(%B)} |
Octubre |
12:36:01 |
{{TIME}.fmttime(%d %B,-1M/M)} |
1 de setembre |
123Línia de registre |
{{ITEM.VALUE}.regsub(^[0-9]+, problema)} |
Problema |
123 Línia de registre |
{{ITEM.VALUE}.regsub("^([0-9]+)", "Problema")} |
Problema |
123 Línia de registre |
{{ITEM.VALUE}.regsub("^([0-9]+)", ID del problema: \1)} |
ID del problema: 123 |
Línia de registre |
{{ITEM.VALUE}.regsub(".*", "ID del problema: \1")} |
''ID del problema: '' |
MySQL ha fallat l'errno 123 |
{{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " ID del problema: \1_\2 ")} |
'' ID del problema: MySQL_123 '' |
123 Línia de registre |
{{ITEM.VALUE}.regsub("([1-9]+", "ID del problema: \1")} |
*DESCONEGUT* (expressió regular no vàlida) |
customername_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \1)} |
customername |
customername_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \2)} |
1 |
customername_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} |
{{#IFALIAS}.regsub("(.*)_ ([0-9]+", \1)} (expressió regular no vàlida) |
customername_1 |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}"} |
{$MACRO: "nom del client"} |
customername_1 |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \2)}"} |
{$MACRO: "1"} |
customername_1 |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+\", \1)}"} |
{$MACRO:" {{#M}.regsub(\"(.*)_([0-9]+\", \1)}"} (expressió regular no vàlida) |
customername_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \1)}\"}" |
"{$MACRO:\"nom del client\"}" |
customername_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \2)}\"}" |
"{$MACRO:\"1\"}") |
customername_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}") (expressió regular no vàlida) |
Els valors llargs de les macros resoltes {ITEM.VALUE} i {ITEM.LASTVALUE} per als elements de text/registre es trunquen a 20 caràcters en algunes ubicacions de la interfície.
Per veure els valors complets d'aquestes macros, podeu emprar funcions de macro, com ara:
{{ITEM.VALUE}.regsub ("(.*)", \1)}
{{ITEM.LASTVALUE}.regsub ("(.*)", \1)}
Veieu també els detalls de les macros {ITEM.VALUE} i {ITEM.LASTVALUE}.