Regex 普罗米修斯/从元标记创建标记列表

Regex 普罗米修斯/从元标记创建标记列表,regex,prometheus,Regex,Prometheus,Im使用,通过使用普罗米修斯yml中的以下代码,将gce标签带到普罗米修斯标签上: relabel_configs: - source_labels: [__meta_gce_tags] target_label: tags 标签如下所示: tags=",node_a,node_prod,node_centos," 问题是,它提供了一个字符串列表,而我希望有一个标记列表,以便查询它。例如,不使用: sum(elasticsearch_node_stats_up{tags=~".

Im使用,通过使用普罗米修斯yml中的以下代码,将gce标签带到普罗米修斯标签上:

 relabel_configs:
  - source_labels: [__meta_gce_tags]
    target_label: tags
标签如下所示:

tags=",node_a,node_prod,node_centos,"
问题是,它提供了一个字符串列表,而我希望有一个标记列表,以便查询它。例如,不使用:

sum(elasticsearch_node_stats_up{tags=~".*?noda_a.*node_prod.?"})

我将能够使用它没有正则表达式。有什么办法吗?

在重新标记期间,可以使用正则表达式从标签值中提取值。所以试试这个,它不是很干,但是很有效:

relabel_configs:
  - source_labels: [__meta_gce_tags]
    regex: ",node_([a-z]+),node_[a-z]+,node_[a-z]+"
    target_label: node
    replacement: '${1}'
  - source_labels: [__meta_gce_tags]
    regex: ",node_[a-z]+,node_([a-z]+),node_[a-z]+"
    target_label: env
    replacement: '${1}'
  - source_labels: [__meta_gce_tags]
    regex: "",node_[a-z]+,node_[a-z]+,node_([a-z]+)""
    target_label: os
    replacement: '${1}'
请注意,可能有一个更优雅的正则表达式可供使用

如果您可以控制标签值,以下是一种更持久的技术: