一 联邦介绍
联合允许 Prometheus 服务器从另一个 Prometheus 服务器抓取选定的时间序列。
二 联邦用例
联邦有不同的用例。通常,它用于实现可扩展的 Prometheus 监控设置或将相关指标从一个服务的 Prometheus 提取到另一个服务中。
2.1 Hierarchical federation
分层联邦允许 Prometheus 扩展到具有数十个数据中心和数百万个节点的环境。在这个用例中,联邦拓扑类似于一棵树,更高级别的 Prometheus 服务器从大量从属服务器收集聚合时间序列数据。
例如,一个设置可能由许多每个数据中心的 Prometheus 服务器组成,这些服务器收集高度详细的数据(实例级向下钻取),以及一组仅收集和存储聚合数据(作业级向下钻取)的全局 Prometheus 服务器) 来自那些本地服务器。这提供了聚合的全局视图和详细的局部视图。
2.2 跨服务联合
在跨服务联合中,一个服务的 Prometheus 服务器被配置为从另一个服务的 Prometheus 服务器中抓取选定的数据,以便在单个服务器内对两个数据集进行警报和查询。
例如,运行多个服务的集群调度程序可能会公开有关在集群上运行的服务实例的资源使用信息(如内存和 CPU 使用情况)。另一方面,在该集群上运行的服务只会公开特定于应用程序的服务指标。通常,这两组指标由单独的 Prometheus 服务器抓取。使用联合,包含服务级别指标的 Prometheus 服务器可以从集群 Prometheus 中提取有关其特定服务的集群资源使用指标,以便可以在该服务器中使用这两组指标。
三 配置联邦
3.1 主Prometheus配置
scrape_configs:
- job_name: "federate"
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job=~".*"}' #匹配需要抓取的Prometheus Server配置的所有job
static_configs:
- targets:
- "192.168.174.103:9090" #需要抓取数据的Prometheus Server
3.2 验证Prometheus web界面