Les fonctions de macro offrent la possibilité de personnaliser les valeurs de macro.
Parfois, une macro peut donner une valeur avec laquelle il n’est pas forcément facile de travailler. Elle peut être longue ou contenir une sous-chaîne spécifique que vous souhaitez extraire. C'est là que les fonctions de macro peuvent être utiles.
La syntaxe d'une fonction de macro est la suivante :
où :
"
ou contiennent )
, ,
.Par exemple :
FONCTION | ||||
---|---|---|---|---|
Description | Paramètres | Supportée pour | ||
regsub (<pattern>,<output>) | ||||
Extraction de sous-chaîne par une expression régulière (sensible à la casse). | pattern - l'expression régulière à faire correspondre output - les options de sortie. \1 - \9 Les espaces réservés sont pris en charge pour capturer les groupes. \0 renvoie le texte correspondant. |
{ITEM.VALUE} {ITEM.LASTVALUE} Macros de découverte de bas niveau (sauf dans le filtre de règle de découverte de bas niveau) |
||
iregsub (<pattern>,<output>) | ||||
Extraction de sous-chaîne par une expression régulière (insensible à la casse). | pattern - l'expression régulière à faire correspondre output - les options de sortie. \1 - \9 Les espaces réservés sont pris en charge pour capturer les groupes. \0 renvoie le texte correspondant. |
{ITEM.VALUE} {ITEM.LASTVALUE} Macros de découverte de bas niveau (sauf dans le filtre de règle de découverte de bas niveau) |
Si une fonction est utilisée dans un emplacement supporté, mais appliquée à une macro ne prenant pas en charge les fonctions de macro, la macro est évaluée à 'INCONNU'.
Si le motif n'est pas une expression régulière correcte, la macro est évaluée à 'INCONNU' (à l'exception des macros de découverte de bas niveau pour lesquelles la fonction sera ignorée dans ce cas et la macro restera non développée).
Si une fonction de macro est appliquée à la macro dans des emplacements ne prenant pas en charge les fonctions de macro, la fonction est ignorée.
La manière dont les fonctions de macro peuvent être utilisées pour personnaliser les valeurs de macro est illustrée dans les exemples suivants, contenant les lignes de journal en tant que valeur reçue :
Valeur reçue | Macro | Sortie |
---|---|---|
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("^([A-Za-z]+).*([0-9]+)", " Problem ID: \1_\2 ")} |
'' Problem ID: MySQL_123 '' |
123 Log line |
{{ITEM.VALUE}.regsub("([1-9]+", "Problem ID: \1")} |
*UNKNOWN* (expression régulière non valide) |
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)} (expression régulière non valide) |