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