Se puede utilizar un contexto opcional en las macros de usuario, permitiendo reemplazar el valor predeterminado por uno específico del contexto.
El contexto se añade al nombre de la macro; la sintaxis depende de si el contexto es un valor de texto estático:
o una expresión regular:
Tenga en cuenta que una macro con contexto de expresión regular sólo se puede definir en la configuración de macros de usuario. Si el prefijo regex:
se usa en otro lugar como contexto de macro de usuario, como en una expresión de iniciador, se tratará como contexto estático.
Las comillas contextuales son opcionales (ver también las notas importantes).
Ejemplos de macros con contexto:
Ejemplo | Descripción |
---|---|
{$LOW_SPACE_LIMIT} |
Macro de usuario sin contexto. |
{$LOW_SPACE_LIMIT:/tmp} |
Macro de usuario con contexto (cadena estática). |
{$LOW_SPACE_LIMIT:regex:"^/tmp$"} |
Macro de usuario con contexto (expresión regular). Igual que {$LOW_SPACE_LIMIT:/tmp} . |
{$LOW_SPACE_LIMIT:regex:"^/var/log/.*$"} |
Macro de usuario con contexto (expresión regular). Coincide con todas las cadenas con el prefijo /var/log/. |
Las macros de usuario con contexto se pueden definir para lograr una mayor flexibilidad umbrales en expresiones desencadenantes (según los valores recuperados por descubrimiento de bajo nivel). Por ejemplo, puede definir las siguientes macros:
Entonces, una macro de descubrimiento de bajo nivel se puede usar como macro contexto en un desencadenar el prototipo para el descubrimiento del sistema de archivos montado:
Después del descubrimiento, se aplicarán diferentes umbrales de espacio bajo en se desencadena según los puntos de montaje descubiertos o los tipos de sistemas de archivos. Los eventos de problema se generarán si:
No cree macros de contexto diferentes que coincidan con la misma cadena para evitar un comportamiento indefinido.
Técnicamente, el contexto macro se especifica mediante reglas similares a los parámetros de la clave de métrica, excepto que el contexto macro no se analiza como varios parámetros si hay un carácter ,
:
"
si el contexto contiene el carácter }
o comienza con un carácter "
. Las comillas dentro de un contexto entrecomillado deben tener como escape el carácter \
.\
en sí no tiene escape, lo que significa que es imposible tener un contexto entre comillas que termine con el carácter \
- la macro {$MACRO:"a:\b\c\"} no es válida.Las siguientes macros son todas equivalentes porque tienen el mismo contexto: {$MACRO:A}, {$MACRO: A} y {$MACRO:"A"}. Esto es en contraste con las claves de métricas, donde 'key[a]', 'key[ a]' y 'key["a"]' son lo mismo semánticamente, pero diferente a efectos de unicidad.