prometheus - 如何在普罗米修斯中使用relable_config为指标添加前缀

标签 prometheus netapp

最终在带有 Prometheus 和 Grafana 的 Docker 环境中运行 Harvest2。
问题是,在同一个 Prometheus DB 中还有其他系统报告,而 NetApp Harvest 没有在它的指标名称上添加前缀,例如 netapp_ 到每个 netapp 指标。以这种方式找到正确的指标真是太麻烦了。
我想使用 Prometheus_config 的 reable_config 选项作为解决方法。
目前,我对收获轮询器有以下配置:

 - job_name: harvest
    scrape_interval: 1m
    scrape_timeout: 1m
    metrics_path: /metrics
    relabel_configs:
    - action: replace
      source_labels: [__name__]
      regex: (.*)
      target_label: __name__
      replacement: 'netapp_$1'

    - action: keep
      source_labels:
      - "custom_labels"
      - "custom_labels"
      - "custom_labels"
      - "custom_labels"
      regex: '.+;.+;.+;.+'

    file_sd_configs:
     - refresh_interval: 10s
       files:
       - targets/harvest.yml
但这导致收获轮询器根本没有出现在 Grafana/Prometheus 中。关于如何添加所需前缀的任何想法?

最佳答案

此配置有两个问题,但它们的原因相同。此外,在这种情况下,添加前缀可能不是最好的主意。请务必阅读本答案末尾的注释。
问题是relabel_configs包含应应用的重新标记配置 刮前 .例如,您可以更改 __address__ ,以便 Prometheus 将联系另一个主机,而不是服务发现提供的主机。当然,__name__暂时不可用,因为 Prometheus 还没有抓取任何东西 .
解决办法是搬家__name__metric_relabel_configs .在此步骤中,指标已收集但尚未摄取,您可以更改其 __name__ .这是一个添加 super_ 的示例所有抓取指标的前缀:

metric_relabel_configs:
- source_labels: [__name__]
  target_label: __name__
  replacement: super_$1
问题中的第二次重新标记几乎相同:
    - action: keep
      source_labels:
      - "custom_labels"
      - "custom_labels"
      - "custom_labels"
      - "custom_labels"
      regex: '.+;.+;.+;.+'
指标尚未抓取,因此尚无自定义标签。这有效地删除了所有目标,因为没有提到的标签。如果您认为需要重新标记(不需要为标签名称添加前缀),则必须将其放在 metric_relabel_configs 下。 .
为什么为标签名称添加前缀可能不是最好的主意
问题在于,由于标签名称不同,您将无法使用具有重命名指标的相同仪表板/警报。您必须为这些指标制作单独的仪表板或使用奇怪且无效的查询,例如:
{__name__=~".*my_metric_without_prefix"}
最好简单地添加一个标签来区分一组指标和另一组指标。您可以添加自己的新标签或使用不同的作业来抓取这些指标。在最后一种情况下,您可以通过 job 区分一组指标与另一组指标。标签。

关于prometheus - 如何在普罗米修斯中使用relable_config为指标添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69626704/

相关文章:

java.lang.NoClassDefFoundError : com/google/common/io/NullOutputStream 错误

weblogic - 错误 - "INVALID"不是有效的开始标记

go - 从收集器中清除普罗米修斯指标

kubernetes - Kubernetes 中 Prometheus 的动态目标?

java - 在 Dropwizard 中公开 Prometheus 指标

prometheus - 如何从联合端点抓取所有指标?

Python 执行 SSH 登录并做一些事情

azure - 如何在 Azure 门户中查找 SPNAME