从普罗米修斯指标中删除标签

Pet*_*sor 0 regex prometheus

我有下面的指标,我想删除标签“exported_namespace =”test”并且我正在使用prometheus relabel_config,但我不确定配置是否可以正常工作:

"kube_pod_status_ready{condition="false", env="test", exported_namespace="test", instance="10.69.19.17:8080", job="kube-state-metrics", namespace="test", pod="test-1-deploy", uid="1asdadasaas"}
Run Code Online (Sandbox Code Playgroud)

普罗米修斯抓取配置

- source_labels = [exported_namesapce]
  separator: ,
  action: labeldrop
  regex: (.*)
  replacement: $1
Run Code Online (Sandbox Code Playgroud)

val*_*ala 5

请注意,如果您想对收集的指标应用重新标记,则必须使用metric_relabel_configs而不是。relabel_configs有关详细信息,请参阅这篇文章

如果您想从收集的指标中删除具有特定值的标签,请在所需scrape_config的metric_relabel_configs部分使用以下重新标记规则:

- source_labels: [exported_namespace]
  regex: test
  target_label: exported_namespace
  replacement: ""
Run Code Online (Sandbox Code Playgroud)

此重新标记规则exported_namespace="test"用label 替换exported_namespace=""label,而 label 又会被 Prometheus 自动删除,因为它包含空标签值。您可以在此页面使用此重新标记规则。

如果您只需要删除exported_namespace具有任何值的标签,请使用以下重新标记规则:

- action: labeldrop
  regex: exported_namespace
Run Code Online (Sandbox Code Playgroud)

请注意,此规则将删除exported_namespace标签的任何值。例如,两者exported_namespace="test"exported_namespace="foo"都会被删除。

更新:如果您使用vmagent,那么您可以使用if过滤器删除具有特定值的标签。例如,以下规则仅删除exported_namespace="test"标签:

- if: '{exported_namespace="test"}'
  regex: exported_namespace
  action: labeldrop
Run Code Online (Sandbox Code Playgroud)

有关过滤器的更多信息,请参阅这些文档if