You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Promtail侧将日志级别标签统一转为小写?

解决方案:在Promtail侧统一日志级别标签为小写

你可以通过Promtail的正则不区分大小写匹配和transform阶段来实现标签值的统一小写,以下提供两种符合你需求的配置方案:

方案1:使用统一的log_level标签(推荐)

这种方案将所有错误/警告日志统一标记为log_level: error或log_level: warning,避免多标签键的混乱,更利于后续筛选和面板展示:

- match:
    selector: '{job="varlogs"}'
    stages:
    # 不区分大小写匹配error相关日志
    - regex:
        expression: '.*(?i)error.*'
    # 直接设置固定小写标签值
    - labels:
        log_level: error

- match:
    selector: '{job="varlogs"}'
    stages:
    # 不区分大小写匹配warn/warning相关日志
    - regex:
        expression: '.*(?i)(warn|warning).*'
    # 直接设置固定小写标签值
    - labels:
        log_level: warning

说明:

  • (?i)开启正则的不区分大小写模式,无需重复写error|Error|ERROR这类变体,简化配置。
  • 直接给log_level设置固定的小写值,彻底避免大小写差异问题。

方案2:保留log_error/log_warning标签形式

如果你需要保留原标签键的形式,可以通过transform阶段将提取到的标签值转为小写,甚至统一不同写法(如把warn转为warning):

- match:
    selector: '{job="varlogs"}'
    stages:
    - regex:
        expression: '.*(?P<log_error>(error|Error|ERROR)).*'
    # 将提取到的log_error值转为小写
    - transform:
        source: log_error
        operation: lowercase
    - labels:
        log_error:

- match:
    selector: '{job="varlogs"}'
    stages:
    - regex:
        expression: '.*(?P<log_warning>(warn|Warn|WARN|warning|Warning|WARNING)).*'
    # 先转为小写
    - transform:
        source: log_warning
        operation: lowercase
    # 可选:把小写的warn统一替换为warning
    - transform:
        source: log_warning
        operation: replace
        replace:
          expression: '^warn$'
          replacement: 'warning'
    - labels:
        log_warning:

说明:

  • transform的lowercase操作会将提取到的字段值强制转为小写。
  • 额外的replace操作可以统一不同的级别写法,确保warn和warning最终都标记为warning。

内容的提问来源于stack exchange,提问作者GerardJP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 00:45:37