联合容许Prometheus服务器从另外一个Prometheus服务器中截取选定的时间序列。git
联邦有不一样的用例。 一般,它用于实现可扩展的Prometheus监控设置或将相关指标从一个服务的Prometheus拉到另外一个服务。github
分层联合容许Prometheus扩展到具备数十个数据中心和数百万个节点的环境。 在此用例中,联合拓扑相似于树,较高级别的Prometheus服务器从较大数量的从属服务器收集聚合时间序列数据。api
例如,设置可能包含许多高度详细收集数据的每一个数据中心Prometheus服务器(实例级深刻分析),以及一组仅收集和存储聚合数据的全局Prometheus服务器(做业级向下钻取) )来自那些本地服务器。 这提供了聚合全局视图和详细的本地视图。bash
在跨服务联合中,一个服务的Prometheus服务器配置为从另外一个服务的Prometheus服务器中提取所选数据,以便对单个服务器中的两个数据集启用警报和查询。服务器
例如,运行多个服务的集群调度程序可能会暴露有关在集群上运行的服务实例的资源使用状况信息(如内存和CPU使用状况)。 另外一方面,在该集群上运行的服务仅公开特定于应用程序的服务指标。 一般,这两组指标都是由单独的Prometheus服务器抓取的。 使用联合,包含服务级别度量标准的Prometheus服务器能够从群集Prometheus中提取有关其特定服务的群集资源使用状况度量标准,以即可以在该服务器中使用这两组度量标准。spa
在任何给定的Prometheus服务器上,/federate
端点容许检索该服务器中所选时间序列集的当前值。 必须至少指定一个match[]
URL参数才能选择要公开的系列。 每一个match[]
参数都须要指定一个即时向量选择器,如up
或{job="api-server"}
。 若是提供了多个match[]
参数,则选择全部匹配系列的并集。code
要将指标从一个服务器联合到另外一个服务器,请将目标Prometheus服务器配置为从源服务器的/federate
端点进行刮取,同时还启用honor_labels
scrape选项(以不覆盖源服务器公开的任何标签)并传入所需的 match[]
参数。 例如,如下scrape_config
将任何带有标签job="prometheus"
的系列或以job
开头的度量标准名称联合起来:source-prometheus-{1,2,3}:9090
的Prometheus服务器进入抓取普罗米修斯:server
- job_name: 'federate'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
static_configs:
- targets:
- 'source-prometheus-1:9090'
- 'source-prometheus-2:9090'
- 'source-prometheus-3:9090'
复制代码
Prometheus官网地址:prometheus.io/ 个人Github:github.com/Alrights/pr…内存