我们有一个分层prometheus设置与一些服务器刮别人。 我们希望让一些服务器从其他服务器中删除所有指标。
目前我们尝试使用match[]="{__name__=~".*"}"
作为指标选择器,但这会产生错误parse error at char 16: vector selector must contain at least one non-empty matcher
。
有没有办法从远程prometheus中删除所有指标而不将每个(前缀)列为匹配选择器?
答案 0 :(得分:7)
是的,您可以执行:match[]="{__name__=~".+"}"
(请注意+
而非*
与空字符串不匹配。
普罗米修斯在标签匹配器集中至少需要一个与所有内容不匹配的匹配器。
答案 1 :(得分:4)
Federation is not intended to transfer all metrics, and if you try to do so you'll eventually run into problems.
Instead, aggregate up the metrics you want and then federate only those.
答案 2 :(得分:3)
我尝试了多个示例,即使是prometheus文档中的示例,也无济于事。
相反,这对我有用
http://prometheus-ip:9090/federate?match[]={job!=""}
答案 3 :(得分:0)
这是我的配置文件。
有了这个限制,您可以筛选要从哪些出口商(工作)中抓取:
params:
'match[]':
- '{job=~"node-exporter|kube-state|fluentbit"}'
- '{__name__=~"job:.*"}'
答案 4 :(得分:0)
将这些添加到您的联合工作中
params:
match[]:
- '{__name__=~".+"}'
- '{__name__=~"^job:.*"}'
- '{job="prometheus"}'
- '{job="node"}'
- '{__name__="server_labels"}'
答案 5 :(得分:0)
我试图达到相同的配置,并且尝试了多种解决方案之后,对我真正有用的是:
params:
match[]:
- '{job=~".+"}'
此简单设置收集了所有具有job
的指标。 {__name__=~"job:.*"}
不能使用相同的功能。