1 Funcions de macro

Les funcions de macro ofereixen la possibilitat de personalitzar els valors macro (per exemple, escurçar o extreure subcadenes específiques), facilitant-ne el treball.

Totes les funcions llistades aquí són compatibles amb tot tipus de macros:

Les funcions de macro es poden emprar a totes les ubicacions que admeten les macros enumerades. Això s'aplica tret que s'indiqui explícitament que només s'espera una macro (per exemple, quan es configura macros d'equips o la regla de descoberta de baix nivell filtres).

Les funcions es llisten sense informació addicional. Feu clic a la funció per veure'n tots els detalls.

Funció Descripció
fmtnum Format de nombres per controlar el nombre de dígits impresos després del punt decimal.
fmttime Format de l'hora.
iregsub Extracció de subcadenes mitjançant una coincidència d'expressió regular (no distingeix entre majúscules i minúscules).
regsub Extracció de subcadenes mitjançant una coincidència d'expressió regular (distingeix entre majúscules i minúscules).

Detalls de la funció

La sintaxi d'una funció macro és:

 {macro.fun>(params)}
  • ** macro** - la macro que cal personalitzar, com ara {ITEM.VALUE} o {#LLDMACRO};
  • func - la funció que cal aplicar;
  • params - una llista de paràmetres de funció, separades per cometes si:
    • comencen per espai o cometes dobles;
    • contenen parèntesis tancats "``" o coma.

Els paràmetres de funció opcionals s'indiquen amb < >.

fmtnum(dígits)

Format de nombre per controlar el nombre de dígits impresos després del punt decimal.

Paràmetres:

  • dígits - el nombre de dígits després del punt decimal. Interval vàlid: 0-20. No es generaran zeros al final.

Exemples:

Funció macro Valor rebut Sortida
{{ITEM.VALUE}.fmtnum(2)} 24.3413523 24.34
{{ITEM.VALUE}.fmtnum(0)} 24.3413523 24

fmttime(format,<time_shift>)

Format de l'hora.
Tingueu en compte que aquesta funció es pot emprar amb macros que es resolen en un valor en un dels formats d'hora següents:

  • hh:mm:ss
  • aaaa-mm-ddThh:mm:ss[tz] (estàndard ISO8601)
  • Unix timestamp

Paràmetres:

  • format - cadena de format obligatori, compatible amb el format de la funció strftime;
  • time_shift (opcional) - el canvi de temps aplicat a l'hora abans del format; hauria de començar amb -<N><time_unit> o +<N><time_unit>, on:
    • N - el nombre d'unitats de temps per sumar o restar;
    • time_unit - h (hora), d (dia), w (setmana), M (mes) o y (any).

Comentaris:

  • El paràmetre time_shift admet operacions de temps de diversos passos i pot incloure /<time_unit> per canviar al començament de la unitat de temps (/d - mitjanit, /w - 1r dia de la setmana (dilluns), /M - 1r dia del mes, etc.). Exemples: "-1w" - exactament fa 7 dies; -1w/w - dilluns de la setmana anterior; -1w/w+1d - dimarts de la setmana anterior.
  • Les operacions de temps es calculen d'esquerra a dreta sense prioritats. Per exemple, -1M/d+1h/w s'analitzarà com a ((-1M/d)+1h)/w.

Exemples:

Funció macro Valor rebut Sortida
{{TIME}.fmttime(%B)} 12:36:01 Octubre
{{TIME}.fmttime(%d %B,-1M/M)} 12:36:01 1er de setembre

iregsub(patró, sortida)

Extracció de subcadenes mitjançant una coincidència d'expressió regular (no distingeix entre majúscules i minúscules).

Paràmetres:

  • patró - l'expressió regular a coincidir;
  • sortida - les opcions de sortida. \1 - \9 s'admeten els marcadors de posició per capturar grups. \0 retorna el text coincident.

Comentaris:

  • Si el patró de funció és una expressió regular incorrecta, la macro s'avalua com a "DESCONEGUT" (excepte les macros de descoberta de baix nivell, en aquest cas la funció s'ignorarà i la macro romandrà sense resoldre).

regsub(patró, sortida)

Extracció de subcadenes mitjançant una coincidència d'expressió regular (distingeix entre majúscules i minúscules).

Paràmetres:

  • 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.

Comentaris:

  • Si el patró de funció és una expressió regular incorrecta, la macro s'avalua com a "DESCONEGUDA" (excepte les macros de descoberta de baix nivell, en aquest cas la funció s'ignorarà i la macro romandrà sense resoldre).

Exemples:

Funció macro Valor rebut Sortida
{{ITEM.VALUE}.regsub(^[0-9]+, Problem)} 123Log line Problem
{{ITEM.VALUE}.regsub("^([0-9]+)", "Problem")} 123 Log line Problem
{{ITEM.VALUE}.regsub("^([0-9]+)", Problem ID: \1)} 123 Log line Problem ID: 123
{{ITEM.VALUE}.regsub(".*", "Problem ID: \1")} Log line ''Problem ID: ''
{{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " Problem ID: \1_\2 ")} MySQL crashed errno 123 '' Problem ID: MySQL_123''
{{ITEM.VALUE}.regsub("([1-9]+", "Problem ID: \1")} 123 Log line *UNKNOWN* (invalid regular expression)
{{#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)} (invalid regular expression)
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}"} customername_1 {$MACRO:"customername"}
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \2)}"} customername_1 {$MACRO:"1"}
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+\", \1)}"} customername_1 {$MACRO:"{{#M}.regsub(\"(.*)_([0-9]+\", \1)}"} (invalid regular expression)
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \1)}\"}" customername_1 "{$MACRO:\"customername\"}"
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \2)}\"}" customername_1 "{$MACRO:\"1\"}")
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" customername_1 "{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}") (invalid regular expression)