2. Prometheus 架构回顾:主节点与辅助节点的角色划分,数据流与查询路径分析

在构建辅助节点滚动升级的容量规划基线之前,必须首先厘清 Prometheus 标准部署架构中主节点(Primary)与辅助节点(Secondary)的职责边界、数据流转路径以及查询请求的完整生命周期。本节将基于最常见的 Prometheus + Thanos 或 Prometheus + VictoriaMetrics 联邦架构进行拆解,为后续的容量模型提供结构基础。

2.1 主节点与辅助节点的角色划分

在大型监控部署中,主节点与辅助节点并非简单的“主从复制”关系,而是通过 联邦(Federation) 或 远程写入(Remote Write) 实现分层职责分离。下表从数据采集、存储、查询、生命周期四个维度对比两者的核心差异:

维度 主节点(Primary) 辅助节点(Secondary)
数据采集 直接抓取(scrape)目标 exporter,承担原始指标入口 通过联邦接口 /federate 拉取主节点聚合指标,或接收远程写入
数据存储 本地 TSDB 存储全量原始样本,保留期较短(如 15d) 本地 TSDB 或对象存储,存储聚合/降采样数据,保留期较长(如 90d)
查询职责 承载实时/近实时查询,响应告警与短时间窗口仪表盘 承载历史查询、跨集群聚合查询、长时间范围分析
生命周期 频繁变更:配置更新、exporter 扩缩、标签调整 相对稳定:作为查询缓存层或历史层,变更频率低
升级影响 直接影响告警与实时监控,需谨慎操作 影响历史查询与聚合视图,可通过冗余节点滚动升级
容量规划提示: 辅助节点通常承载 3~5 倍于主节点的数据保留量,且查询负载呈现“长尾+突发”特征。在滚动升级期间,单节点离线会导致查询压力向剩余节点倾斜,基线构建时必须预留 30%~50% 的查询吞吐余量。

2.2 数据流路径分析

数据从目标 exporter 产生到最终被辅助节点存储,经历三个关键阶段。下图展示了主节点与辅助节点之间的数据流转关系:

Prometheus 主-辅助节点数据流架构 Prometheus 主-辅助节点数据流与查询路径 Exporter 集群 Exporter 集群 Exporter 集群 主节点(Primary) — 抓取 / 本地 TSDB / 告警 scrape 间隔 15s 本地保留 15d 告警规则评估 /federate?match[]= 拉取聚合指标 辅助节点(Secondary) — 联邦拉取 / 降采样 / 长期存储 拉取间隔 60s 降采样 5m/1h 分辨率 保留 90d+ Grafana / 告警管理器 PromQL 查询(历史 + 实时) 数据流说明 ① 主节点 scrape 原始数据 ② 辅助节点通过 /federate 拉取聚合后指标 ③ 查询层可同时访问主/辅节点

数据流的关键特征可归纳为以下步骤:

  1. 采集阶段: 主节点以固定间隔(通常 15s)抓取 Exporter 暴露的 /metrics 端点,写入本地 TSDB。
  2. 联邦阶段: 辅助节点通过 /federate?match[]={__name__=~"node_.*"} 等匹配规则,从主节点拉取预聚合指标。此阶段是容量规划的核心——联邦拉取的频率、匹配规则数量、指标基数直接影响辅助节点的网络与 CPU 开销。
  3. 存储与降采样: 辅助节点将拉取到的指标写入本地 TSDB,并执行降采样规则(如 5m 分辨率保留 30d,1h 分辨率保留 90d),减少存储成本。

2.3 查询路径分析

查询路径根据时间范围和查询来源呈现不同的路由策略。下图展示了两种典型查询路径:

Prometheus 查询路径:实时 vs 历史 查询路径:实时查询 vs 历史查询 Grafana 仪表盘(最近 6h) 主节点(Primary)— 本地 TSDB 实时数据 返回原始精度样本(15s 分辨率) Grafana 仪表盘(最近 30d) 辅助节点(Secondary)— 降采样数据 返回降采样样本(5m / 1h 分辨率) 关键差异:实时查询走主节点,返回高精度数据;历史查询走辅助节点,返回降采样数据,减少 I/O 与计算开销

查询路径的容量规划要点:

  • 实时查询(< 6h): 直接命中主节点本地 TSDB,查询延迟通常 < 100ms。滚动升级主节点时,需将实时查询临时切换至辅助节点,但辅助节点可能缺少最新 1~2 个拉取周期的数据,导致仪表盘出现短暂空白。
  • 历史查询(> 6h): 路由至辅助节点,查询降采样数据。辅助节点滚动升级期间,若采用 --query.vertical-sharding 或 Thanos Query 前端,单节点离线会导致查询超时或结果不完整。
  • 混合查询: 部分仪表盘同时请求实时与历史数据(如“同比”对比),此时查询层需要合并主节点与辅助节点的结果,对网络带宽和内存有额外消耗。
升级风险提示: 辅助节点滚动升级时,如果未提前构建查询缓存或冗余节点,历史查询的 P99 延迟可能从 200ms 飙升至 2s 以上。容量规划基线必须包含“升级期间查询延迟 SLO 降级容忍度”指标,通常建议不超过基线延迟的 1.5 倍。

2.4 数据流与查询路径的容量影响因子

基于上述架构分析,下表汇总了与辅助节点滚动升级直接相关的容量影响因子,这些因子将作为后续章节构建基线模型的输入参数:

影响因子 所属阶段 对容量的影响 升级期间变化趋势
联邦拉取间隔 数据流 间隔越短,辅助节点 CPU/网络负载越高 升级期间可能因节点离线导致拉取失败重试,负载瞬时上升
联邦匹配规则数量 数据流 每增加 10 条 match 规则,CPU 开销约 +8% 升级期间规则重新评估,可能触发全量拉取
降采样规则复杂度 数据流 多级降采样(5m→1h→24h)增加磁盘 I/O 升级后需重建降采样数据,I/O 压力持续数小时
历史查询并发数 查询路径 每 100 QPS 增加约 2 核 CPU 消耗 升级期间剩余节点需承担 2x 查询负载
查询时间范围跨度 查询路径 30d 查询比 7d 查询内存消耗高 4~6 倍 升级期间应限制 > 7d 的查询,避免 OOM