Prometheus:根据其他标签添加标签

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

我已将 Prometheus 设置为使用来自 prometheus-ecs-discovery:

的文件 sd
scrape_configs:
- job_name: ecs
  file_sd_configs:
    - files:
      - /prometheus/ecs_file_sd.yml

这会在其他标签中添加任务 arn 作为标签:

container_label_com_amazonaws_ecs_task_arn=
"arn:aws:ecs:us-west-1:xxxxxx:task/2c1655cd-36b7-4db9-4326-ee90537b6271"

在 grafana 中,我想使用任务 ID(在我的示例中为

2c1655cd-36b7-4db9-4326-ee90537b6271
)作为大部分统计数据的图例,可以从任务 arn 中提取。我可以以某种方式添加一个新标签吗?

prometheus amazon-ecs
2个回答
2
投票

这可以使用 relabel_configs 来实现。这将允许您从源标签创建新的目标标签。

scrape_configs:
- job_name: ecs
  file_sd_configs:
    - files:
      - /prometheus/ecs_file_sd.yml
  relabel_configs:
    - source_labels: [container_label_com_amazonaws_ecs_task_arn]
      regex: '.*\/(.*)'
      replacement: '${1}'
      target_label: task_id

上面将创建一个名为

task_id
的新标签,其值为
/
标签的
container_label_com_amazonaws_ecs_task_arn
之后的部分。


1
投票

虽然我不认为它解决了OP的问题,但我遇到了这个问题,因为标题与我所坚持的类似。

我有标签,例如:

label_1="blue"
label_2="green"
我想添加一个新标签 (
label_3
),使用
label_2
的值与
label_1
上的正则表达式匹配。

这可以使用

relabel_configs
和多个
source_labels
来实现 https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config

- source_labels: [label_1, label_2]
  separator: ';'
  target_label: label_3
  regex: "blue;(.+)"
  replacement: '${2}'
  action: replace
© www.soinside.com 2019 - 2024. All rights reserved.