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

如何通过正则从Docker容器名提取项目标签配置Promtail?

解决方案

方法一:通过Relabel配置提取项目标签

直接在现有relabel_configs中新增规则,从容器名称里提取project1/project2这类前缀:

relabel_configs:
  - source_labels: ['__meta_docker_container_name']
    regex: '/(.*)'
    target_label: 'container'
  # 新增规则提取project标签
  - source_labels: ['container']
    regex: '([^-]+)-.*'
    target_label: 'project'

这条规则会匹配容器名中-符号之前的内容,自动赋值给project标签。比如project1-api会提取出project1,project2-crons提取出project2。

方法二:通过Pipeline Stage解析添加标签

如果想用Pipeline Stage实现,在现有配置中新增regex阶段即可:

pipeline_stages:
- json:
    expressions:
      level: level
# 新增regex阶段提取project标签
- regex:
    expression: '^(?P<project>[^-]+)-.*$'
    source: 'container'

这里利用命名捕获组(?P<project>),从已提取的container字段中截取项目前缀,Promtail会自动将捕获内容转为project标签。

两种方案任选其一,配置完成后就能在Loki中用{project="project1"}这类语法精准过滤对应项目的日志了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:04:50