首页/云/可观测性速查/联邦:从下级 Prometheus 拉取汇总数据
Prometheus 与采集64 条

联邦:从下级 Prometheus 拉取汇总数据

联邦让上级 Prometheus 通过 /federate 端点拉取下级实例的部分序列;适合分层架构,把跨集群的少量核心指标汇总到全局视图。

可观测性速查云更新于 2026-10-13

联邦是什么

联邦(federation)让上级 Prometheus 通过下级实例的 /federate 端点拉取部分序列,适合分层架构:各集群各自采集全量数据,上级只拉取记录规则产出的聚合指标,形成跨集群的全局视图。它解决的是多个 Prometheus 之间如何汇总的问题,代价是汇总完整度取决于下级规则产出什么。全量数据汇聚应该用 remote write,而不是靠联邦硬拉原始序列。

基本信息

机制上级通过 metrics_path: /federate 拉取下级数据
关键参数params 中的 match[]、honor_labels、scrape_interval
典型用法只拉取记录规则产出的聚合指标
适用版本Prometheus 2.x
权限要求下级实例的接口需对上级网络可达

典型使用场景

  • 分层汇总:各集群保留全量数据,全局只汇总关键服务指标
  • 跨机房视图:上级看各机房的可用性与错误率对比
  • 容量观察:汇总各集群的资源使用率,用于统一规划
  • 数据隔离:下级保留原始数据,上级只拿聚合结果
  • 迁移过渡:多实例并存期间用联邦做过渡汇总

使用要点

  • 只拉聚合指标,避免把原始序列拉上来把上级实例拖垮
  • honor_labels 决定标签冲突的处理方式,要防止实例标签互相覆盖
  • 聚合口径由下级记录规则保证,规则变更要同步通知上级使用者
  • 拉取间隔匹配下级规则的评估间隔,过密没有额外收益
  • 配置前先评估下级联邦端点的负载与查询范围

上级抓取下级汇总指标

上级抓取下级汇总指标
- job_name: 'federate'
  scrape_interval: 30s
  honor_labels: true
  metrics_path: /federate
  params:
    'match[]':
      - '{__name__=~"job:.*"}'   # 只取记录规则产出的聚合指标
  static_configs:
    - targets: ['prometheus-dc1:9090', 'prometheus-dc2:9090']

关键参数

参数作用注意
metrics_path固定为 /federate写错会拉不到任何数据
match[]筛选要拉取的序列写宽会把原始序列全拉上来
honor_labels标签冲突处理方式跨集群汇总时尤其重要
scrape_interval拉取间隔匹配下级规则的评估间隔
targets下级实例地址需保证网络可达
联邦适合汇总少量聚合指标;全量数据汇聚应使用远程写入,否则上级实例很容易被下级分片规模拖垮。

易错点

  • 一次性拉取大量原始序列会让联邦端点成为瓶颈,应只拉聚合指标
  • honor_labels 决定冲突标签的处理方式,跨集群汇总时要防止实例标签互相覆盖
  • 下级记录规则改名或删除后上级会静默失去数据,规则变更要同步告知上级使用者
  • 把联邦当全量汇聚方案,上级实例很快被规模拖垮,应改用远程写入

数据来源与参考

  • Prometheus 文档 · Federation
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌