1 宏函数

    概述

    有时宏可能解析为一个不一定容易使用的值。它可能很长,或者包含您想要提取的特定感兴趣的子字符串。这就是宏函数可以发挥作用的地方。

    宏函数的语法是:

    其中:

    • <macro> - 要自定义的宏(例如{ITEM.VALUE}或{#LLDMACRO})
    • <params> - 以逗号分隔的函数参数列表。如果参数以“’”(空格)、“或包含”开头,则必须将其引用。
    1. {{#LLDMACRO}.regsub(pattern, output)}

    支持的宏函数

    如果函数在支持的位置中使用,但应用于不支持宏函数的宏,则宏的计算结果为“未知”。

    如果模式不是正确的正则表达式,则宏的计算结果为“未知”(不包括底层自动发现宏,在这种情况下,函数将被忽略,宏将保持未展开)

    如果在不支持宏函数的位置将宏函数应用于宏,则该函数将被忽略。

    例子

    收到的值宏变量输出
    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
    {{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
    customername1{{#IFALIAS}.regsub(“(.*)([0-9]+)”, \2)}1
    customername1{{#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”}
    customername1{$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\”}”)
    customername1“{$MACRO:\”{{#IFALIAS}.regsub(\“(.*)([0-9]+\“, \1)}\”}”“{$MACRO:\”{{#IFALIAS}.regsub(\“(.*)_([0-9]+\“, \1)}\”}”) (invalid regular expression)
    查看完整的监控项值

    已解析的文本/日志监控项的 {ITEM.VALUE} 和 {ITEM.LASTVALUE} 宏的长值在某些前端位置被截断为 20 个字符。 要查看这些宏的完整值,您可以使用宏函数,例如:


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

    另请参阅:{ITEM.VALUE} 和 {ITEM.LASTVALUE} 。