如何从联合端点抓取所有指标?
How to scrape all metrics from a federate endpoint?
我们有一个分层的 prometheus 设置,其中一些服务器抓取其他服务器。
我们想让一些服务器从其他服务器上抓取所有指标。
目前我们尝试使用 match[]="{__name__=~".*"}"
作为指标选择器,但这会产生错误 parse error at char 16: vector selector must contain at least one non-empty matcher
。
有没有一种方法可以从远程 prometheus 中抓取所有指标,而无需将每个指标(前缀)都列为匹配选择器?
是的,您可以这样做:match[]="{__name__=~".+"}"
(注意 +
而不是 *
以不匹配空字符串)。
Prometheus 要求标签匹配器集中至少有一个匹配器不匹配所有。
Federation 并非旨在传输所有指标,如果您尝试这样做,您最终会 运行 遇到问题。
相反,汇总您想要的指标,然后仅联合这些指标。
我尝试了多个示例,甚至是 prometheus 文档中的示例,但没有任何效果。
相反,这对我有用
http://prometheus-ip:9090/federate?match[]={job!=""}
这是我的配置文件。
有了这个限制,您可以筛选要抓取的出口商(职位):
params:
'match[]':
- '{job=~"node-exporter|kube-state|fluentbit"}'
- '{__name__=~"job:.*"}'
将这些添加到您的联邦作业中
params:
match[]:
- '{__name__=~".+"}'
- '{__name__=~"^job:.*"}'
- '{job="prometheus"}'
- '{job="node"}'
- '{__name__="server_labels"}'
我试图达到相同的配置,在尝试了多种解决方案之后,真正对我有用的是:
params:
match[]:
- '{job=~".+"}'
这个简单的设置收集了所有具有 job
的指标。同样不适用于 {__name__=~"job:.*"}
.
我们有一个分层的 prometheus 设置,其中一些服务器抓取其他服务器。 我们想让一些服务器从其他服务器上抓取所有指标。
目前我们尝试使用 match[]="{__name__=~".*"}"
作为指标选择器,但这会产生错误 parse error at char 16: vector selector must contain at least one non-empty matcher
。
有没有一种方法可以从远程 prometheus 中抓取所有指标,而无需将每个指标(前缀)都列为匹配选择器?
是的,您可以这样做:match[]="{__name__=~".+"}"
(注意 +
而不是 *
以不匹配空字符串)。
Prometheus 要求标签匹配器集中至少有一个匹配器不匹配所有。
Federation 并非旨在传输所有指标,如果您尝试这样做,您最终会 运行 遇到问题。
相反,汇总您想要的指标,然后仅联合这些指标。
我尝试了多个示例,甚至是 prometheus 文档中的示例,但没有任何效果。
相反,这对我有用
http://prometheus-ip:9090/federate?match[]={job!=""}
这是我的配置文件。
有了这个限制,您可以筛选要抓取的出口商(职位):
params:
'match[]':
- '{job=~"node-exporter|kube-state|fluentbit"}'
- '{__name__=~"job:.*"}'
将这些添加到您的联邦作业中
params:
match[]:
- '{__name__=~".+"}'
- '{__name__=~"^job:.*"}'
- '{job="prometheus"}'
- '{job="node"}'
- '{__name__="server_labels"}'
我试图达到相同的配置,在尝试了多种解决方案之后,真正对我有用的是:
params:
match[]:
- '{job=~".+"}'
这个简单的设置收集了所有具有 job
的指标。同样不适用于 {__name__=~"job:.*"}
.