普罗米修斯:根据其他标签添加标签

时间:2018-12-05 14:50:33

标签: prometheus amazon-ecs

我将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中提取。我可以以某种方式添加新标签吗?

2 个答案:

答案 0 :(得分:0)

可以使用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 :(得分:0)

尽管我认为这不能解决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