Áú»¢¶Ä²©

1 Funciones de macro

¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô general

Las funciones macro ofrecen la posibilidad de personalizar los valores de macro.

A veces una macro puede resolverse con un valor que no es necesariamente f¨¢cil de calcular. Puede ser largo o contener una subcadena espec¨ªfica de inter¨¦s que le gustar¨ªa extraer. Aqu¨ª es donde se pueden utilizar las funciones macro.

La sintaxis de una funci¨®n macro es:

µ÷&±ô³Ù;³¾²¹³¦°ù´Ç&²µ³Ù;.&±ô³Ù;´Ú³Ü²Ô³¦&²µ³Ù;(&±ô³Ù;±è²¹°ù¨¢³¾±ð³Ù°ù´Ç²õ&²µ³Ù;)°¨

»å¨®²Ô»å±ð:

  • <macro>: la macro a personalizar (por ejemplo, {ITEM.VALUE} o {#LLDMACRO})
  • <func> - la funci¨®n a aplicar
  • <params>: una lista delimitada por comas de par¨¢metros de funci¨®n. Los par¨¢metros deben citarse si comienzan con '' '' (espacio), " o contener ), ,.

Por ejemplo:

{{TIME}.fmttime(format,time_shift)}
       {{ITEM.VALUE}.regsub(pattern, output)}
       {{#LLDMACRO}.regsub(pattern, output)}

Funciones de macro admitidas

Los par¨¢metros de funci¨®n opcionales se indican con < >.

FUNCI?N
¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô ±Ê²¹°ù¨¢³¾±ð³Ù°ù´Ç²õ Compatible con
fmtnum (»å¨ª²µ¾±³Ù´Ç²õ)
Formato num¨¦rico para controlar el n¨²mero de »å¨ª²µ¾±³Ù´Ç²õ impresos despu¨¦s del punto decimal. »å¨ª²µ¾±³Ù´Ç²õ - el n¨²mero de »å¨ª²µ¾±³Ù´Ç²õ despu¨¦s del punto decimal. Rango v¨¢lido: 0-20 (desde Áú»¢¶Ä²© 6.4.6). No se producir¨¢n ceros finales. {ITEM.VALUE}
{ITEM.LASTVALUE}
Macros de expresi¨®n
fmttime (formato,<hora_shift>)
Formato de hora. formato - cadena de formato obligatoria, compatible con el formato de la funci¨®n strftime
time_shift - el cambio de hora aplicado a la hora antes del formateo; debe comenzar con
-<N><time_unit> o +<N><time_unit>, donde
N - el n¨²mero de unidades de tiempo para sumar o restar;
*time?_unit* - h (hora), d (d¨ªa), w (semana), M (mes) o y (a?o).
Desde Áú»¢¶Ä²© 5.4, el par¨¢metro time_shift admite operaciones de tiempo de varios pasos y puede incluir / <time_unit> para cambiar al principio de la unidad de tiempo (/d - medianoche, /w - 1er d¨ªa de la semana (lunes), /M - 1er d¨ªa del mes, etc.). Ejemplos:
-1s - hace exactamente 7 d¨ªas;
-1s/s - lunes de la semana anterior;
-1s/s+1d - martes de la semana anterior.< br>Tenga en cuenta que las operaciones de tiempo se calculan de izquierda a derecha sin prioridades. Por ejemplo, -1M/d+1h/w se analizar¨¢ como ((-1M/d)+1h)/w.
{TIME}
iregsub (±è²¹³Ù°ù¨®²Ô,²õ²¹±ô¾±»å²¹)
Extracci¨®n de subcadenas mediante una coincidencia de expresi¨®n regular (no distingue entre may¨²sculas y min¨²sculas). ±è²¹³Ù°ù¨®²Ô - la expresi¨®n regular para coincidir
salida - las opciones de salida. \1 - \9 se admiten marcadores de posici¨®n para capturar grupos. \0 devuelve el texto coincidente.
{ITEM.VALUE}
{ITEM.LASTVALUE}
Macros de descubrimiento de bajo nivel (excepto en bajo nivel filtro de reglas de descubrimiento de nivel)
regsub (±è²¹³Ù°ù¨®²Ô,²õ²¹±ô¾±»å²¹)
Extracci¨®n de subcadenas mediante una coincidencia de expresi¨®n regular (distingue entre may¨²sculas y min¨²sculas). ±è²¹³Ù°ù¨®²Ô - la expresi¨®n regular para coincidir
salida - las opciones de salida. \1 - \9 se admiten marcadores de posici¨®n para capturar grupos. \0 devuelve el texto coincidente.
{ITEM.VALUE}
{ITEM.LASTVALUE}
Macros de descubrimiento de bajo nivel (excepto en bajo nivel filtro de reglas de descubrimiento de nivel)

Si una funci¨®n se utiliza en una ubicaci¨®n compatible, pero se aplica a una macro que no admite funciones de macro, entonces la macro se eval¨²a como 'DESCONOCIDO'.

Si el ±è²¹³Ù°ù¨®²Ô no es una expresi¨®n regular correcta, entonces la macro eval¨²a a 'DESCONOCIDO' (excluyendo macros de descubrimiento de bajo nivel donde la funci¨®n se ignorar¨¢ en ese caso y la macro permanecer¨¢ sin expandir)

Ejemplos

Las formas en que se pueden utilizar las funciones de macro para personalizar los valores de macro se ilustran en los siguientes ejemplos de valores recibidos:

Valor recibido Macro Salida
24.3413523 {{ITEM.VALUE}.fmtnum(2)} 24.34
24.3413523 {{ITEM.VALUE}.fmtnum(0)} 24
12:36:01 {{TIME}.fmttime(%B)} October
12:36:01 {{TIME}.fmttime(%d %B,-1M/M)} 1 September
123Log line {{ITEM.VALUE}.regsub(^[0-9]+, Problem)} Problem
123 Log line {{ITEM.VALUE}.regsub("^([0-9]+)", "Problem")} Problem
123 Log line {{ITEM.VALUE}.regsub("^([0-9]+)", Problem ID: \1)} Problem ID: 123
Log line {{ITEM.VALUE}.regsub(".*", "Problem ID: \1")} ''Problem ID: ''
MySQL crashed errno 123 {{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " Problem ID: \1_\2 ")} '' Problem ID: MySQL_123?''
123 Log line {{ITEM.VALUE}.regsub("([1-9]+", "Problem ID: \1")} *UNKNOWN* (invalid regular expression)
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)} (invalid regular expression)
customername_1 {$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}"} {$MACRO:"customername"}
customername_1 {$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \2)}"} {$MACRO:"1"}
customername_1 {$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+\", \1)}"} {$MACRO:"{{#M}.regsub(\"(.*)_([0-9]+\", \1)}"} (invalid regular expression)
customername_1 "{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \1)}\"}" "{$MACRO:\"customername\"}"
customername_1 "{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \2)}\"}" "{$MACRO:\"1\"}")
customername_1 "{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" "{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}") (invalid regular expression)
Ver valores completos de los elementos

Los valores largos de las macros {ITEM.VALUE} y {ITEM.LASTVALUE} resueltas para m¨¦tricas de texto se truncan a 20 caracteres en algunas ubicaciones de la interfaz de usuario. Para ver los valores completos de estas macros, puede utilizar funciones macro, por ejemplo:

{{ITEM.VALUE}.regsub("(.*)", \1)}
{{ITEM.LASTVALUE}.regsub("(.*)", \1) }

Ver tambi¨¦n: {ITEM.VALUE} y {ITEM.LASTVALUE} en detalles de macro.