diff options
Diffstat (limited to 'ui/include/classes/parsers/CPrometheusPatternParser.php')
-rw-r--r-- | ui/include/classes/parsers/CPrometheusPatternParser.php | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/ui/include/classes/parsers/CPrometheusPatternParser.php b/ui/include/classes/parsers/CPrometheusPatternParser.php index 6cfde3c3939..d45a50e7589 100644 --- a/ui/include/classes/parsers/CPrometheusPatternParser.php +++ b/ui/include/classes/parsers/CPrometheusPatternParser.php @@ -31,6 +31,7 @@ class CPrometheusPatternParser extends CParser { private $user_macro_parser; private $lld_macro_parser; + private $lld_macro_function_parser; public function __construct($options = []) { if (array_key_exists('usermacros', $options)) { @@ -45,6 +46,7 @@ class CPrometheusPatternParser extends CParser { } if ($this->options['lldmacros']) { $this->lld_macro_parser = new CLLDMacroParser(); + $this->lld_macro_function_parser = new CLLDMacroFunctionParser(); } } @@ -138,6 +140,12 @@ class CPrometheusPatternParser extends CParser { return true; } + elseif ($this->options['lldmacros'] + && $this->lld_macro_function_parser->parse($source, $pos) != self::PARSE_FAIL) { + $pos += $this->lld_macro_function_parser->getLength(); + + return true; + } return false; } @@ -176,6 +184,10 @@ class CPrometheusPatternParser extends CParser { elseif ($this->options['lldmacros'] && $this->lld_macro_parser->parse($source, $pos) != self::PARSE_FAIL) { $p += $this->lld_macro_parser->getLength(); } + elseif ($this->options['lldmacros'] + && $this->lld_macro_function_parser->parse($source, $pos) != self::PARSE_FAIL) { + $p += $this->lld_macro_function_parser->getLength(); + } else { return false; } @@ -321,6 +333,12 @@ class CPrometheusPatternParser extends CParser { return true; } + elseif ($this->options['lldmacros'] + && $this->lld_macro_function_parser->parse($source, $pos) != self::PARSE_FAIL) { + $pos += $this->lld_macro_function_parser->getLength(); + + return true; + } return false; } |