Federation 由上层 Prometheus 主动抓取下层已聚合指标;Remote Write 则由采集端把样本推送到长期存储。两者解决的问题不同,也可以组合使用。
先明确目标
需要少量全局健康指标和分层自治时,Federation 更简单:
- job_name: federate
metrics_path: /federate
params:
match[]:
- '{__name__=~"job:.*"}'
static_configs:
- targets: ['prometheus-region-a:9090']
需要统一长期保留、全局查询或高可用去重时,Remote Write 更合适,但必须管理队列、带宽和接收端容量。
观察传输健康
rate(prometheus_remote_storage_samples_failed_total[5m])
prometheus_remote_storage_samples_pending
rate(prometheus_remote_storage_samples_dropped_total[5m])
Remote Write 暂时中断会依赖 WAL 重放,长时间中断仍可能造成积压和磁盘压力。外部标签必须稳定标识 cluster、region 和 replica。
决策要点
- Federation 只选择必要的预聚合序列
- Remote Write 评估压缩后带宽与长期基数
- HA 副本要由后端去重,不能误做 sum
- 保留本地 Prometheus 以支持故障时独立排查
收尾清单
演练中心端不可用和网络分区,验证本地告警、队列恢复与数据缺口。架构图中明确每层的保留周期和查询责任。