普罗米修斯联邦比赛params不起作用

时间:2018-02-12 16:56:31

标签: monitoring metrics grafana prometheus

我一直在尝试在我的普罗米修斯设置中实现联邦。在这样做时,我想排除一些由我的刮刀Prometheus刮掉的指标。

这是我的联盟配置:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'xxxxxxxx'
    scrape_interval: 15s
    honor_labels: true
    metrics_path: '/federate'
    params:
      'match[]':
        - '{job!="kubernetes-nodes"}'
    static_configs:
      - targets:
        - 'my-metrics-source'

从配置中可以看出,我想排除任何包含kubernetes-nodes job标签的指标,并检索其余指标。但是,当我部署配置时,不会删除任何指标。

这是普罗米修斯的错误还是我误解了匹配参数是如何工作的?

谢谢!

2 个答案:

答案 0 :(得分:4)

如果你真的需要这样做,你需要一个包含结果的主矢量选择器。

否则您将收到错误vector selector must contain at least one non-empty matcher

例如,对于这些匹配器,您将获得您想要实现的目标:

curl -G --data-urlencode 'match[]={job=~".+", job!="kubernetes-nodes"}' http://your-url.example.com/federate

答案 1 :(得分:1)

作为一种安全措施,为避免您不小心写入返回Prometheus中所有时间序列的即时向量,选择器必须包含至少一个与空字符串不匹配的匹配器。你的选择器没有这样的匹配器(job!="kubernetes-nodes"匹配一个空的job标签),所以这给你一个错误。

您可以添加一个选择器,例如__name__=~".+"但是在更高级别这是滥用联盟,因为它不是用于拉动整个Prometheus服务器。见https://www.robustperception.io/federation-what-is-it-good-for/