在grafana loki中过滤时如何保留堆栈跟踪?

问题描述 投票:0回答:1

我在

promtail-config.yaml
文件中使用此代码部分来过滤包含单词
INFO
的日志行。

    pipeline_stages:
      - match:
          selector: '{env="myenv"}'
          stages:
            - json:
                expressions:
                  msg: log
            - match:
                selector: '{status="info"} !~ ".*INFO.*"'
                action: drop
            - output:
                source: msg

但问题是,当我使用这种方法来过滤日志时,它会导致删除

stack trace
日志中的
INFO
,因为
stack trace
由几行单独的行组成,Promtail 将其视为单独的日志行,并且该日志该行在过滤过程中被删除,因为该行中不包含单词
INFO

进行此过滤过程时如何保留堆栈跟踪?

任何帮助将不胜感激。

regex logging filter grafana-loki promtail
1个回答
0
投票

我通过在管道阶段使用

multiline
解决了这个问题。

 pipeline_stages:
- multiline:
    firstline: '^\[\d{4}-\d{2}-\d{2} \d{1,2}:\d{2}:\d{2}\]'
    max_wait_time: 3s

这使得整个堆栈跟踪成为一行,从而解决了问题。

有关更多详细信息,您可以参考grafana文档。 此外,我强烈鼓励每个对如何正确配置

promtail
有问题的人参考 有关 promtail 查询的 grafana 文档。

© www.soinside.com 2019 - 2024. All rights reserved.