18

我们有一个分层的 prometheus 设置,其中一些服务器抓取其他服务器。我们想让一些服务器从其他服务器那里抓取所有指标。

目前我们尝试match[]="{__name__=~".*"}"用作度量选择器,但这给出了错误parse error at char 16: vector selector must contain at least one non-empty matcher

有没有办法从远程普罗米修斯抓取所有指标而不将每个(前缀)列为匹配选择器?

4

6 回答 6

18

是的,您可以这样做:(match[]="{__name__=~".+"}"注意,+*不是与空字符串不匹配)。

Prometheus 要求标签匹配器集中至少有一个匹配器,该匹配器不能匹配所有内容

于 2016-08-31T15:42:31.447 回答
10

我尝试了多个示例,即使是来自普罗米修斯文档的示例,但没有任何效果。

相反,这对我有用

http://prometheus-ip:9090/federate?match[]={job!=""}
于 2018-09-07T11:00:59.180 回答
5

联合并不打算传输所有指标,如果您尝试这样做,您最终会遇到问题。

相反,汇总您想要的指标,然后仅联合这些指标。

于 2016-08-31T17:52:04.073 回答
1

这是我的配置文件。

有了这个限制,您可以过滤从哪些导出器(作业)中抓取:

  params:
    'match[]':
    - '{job=~"node-exporter|kube-state|fluentbit"}'
    - '{__name__=~"job:.*"}'
于 2018-11-21T19:09:26.960 回答
0

将这些添加到您的联合工作中

    params:
      match[]:
        - '{__name__=~".+"}'
        - '{__name__=~"^job:.*"}'
        - '{job="prometheus"}'
        - '{job="node"}'
        - '{__name__="server_labels"}'
于 2019-06-19T07:58:58.870 回答
0

我试图达到相同的配置,在尝试了多种解决方案之后,真正对我有用的是:

params:
  match[]:
    - '{job=~".+"}'

这个简单的设置收集了所有具有job. 同样没有用{__name__=~"job:.*"}

于 2020-07-19T15:25:30.780 回答