【问题标题】:Prometheus Federation match params do not workPrometheus Federation 匹配参数不起作用
【发布时间】:2018-07-22 22:15:31
【问题描述】:

我一直在尝试在我的 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-nodesjob 标签的指标,并检索其余指标。但是,当我部署我的配置时,不会刮取任何指标。

这是 Prometheus 中的错误还是我只是误解了匹配参数的工作原理?

【问题讨论】:

    标签: regex match config prometheus federation


    【解决方案1】:

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

    否则你会得到错误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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-30
        • 2021-10-07
        • 2013-04-24
        • 2016-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多