Grafana 可通过联邦 Prometheus 或 Thanos 实现多区域指标统一大盘与聚合;PromQL 支持跨 region 求和、加权平均及分组对比;需标准化 label 并用变量、Panel Link 构建交互式视图。
Grafana 本身不直接做跨数据源的“计算聚合”,但通过合理架构和配置,完全可以实现多区域(如不同机房、不同云区、不同集群)指标的统一大盘展示与逻辑聚合。关键在于数据源头统一、查询层灵活、可视化层适配。
多个区域通常对应多个独立 Prometheus 实例(比如 region-a、region-b、region-c)。Grafana 不支持原生“合并多个 Prometheus 数据源”的查询,但可通过以下方式统一接入:
/federate 端点拉取指定指标(如 rate(http_requests_total[5m])),再将该联邦实例作为 Grafana 唯一数据源;这是最推荐的生产级方案。{region=~"region-a|region-b|region-c"})。当所有区域指标已通过同一数据源(如联邦或 Thanos)暴露,就可以用 PromQL 做语义聚合:
sum by (job) (rate(http_requests_total[5m])),自动合并所有 region 的同 job 指标。sum(rate(http_requests_failed_total[5m])) / sum(rate(http_requests_total[5m])),天然跨 region 计算。rate(http_requests_total{region=~".+"}[5m]) + 图表设置 “Legend” 为 {{region}},折线图中自动区分各区域曲线。region、env、cluster 等 label 必须标准化,否则无法对齐聚合。让大盘既可看全局聚合,又可钻取单区域细节:
region,类型为 Query,数据源选 Prometheus,查询语句:label_values(region),启用多选和全选(All)。rate(http_requests_total{region=~"$region"}[5m])。选 All 时自动聚合全部区域;单独选某 region 时聚焦该区域。legend 格式 {{region}} - {{job}},图表自动分组标注,避免混淆。env、service 变量,形成多维下钻能力(如:先选 region,再选 env,再看 service)。聚合大盘是“总览”,但运维仍需快速跳转到具体区域详情页:
/d/abc123/region-a-overview?var-region=region-a)。Global Overview、Region-A、Region-B,保持导航清晰。region,实现配置复用与权限隔离。不复杂但容易忽略的是 label 标准化和查询范围一致性——比如有的区域采样间隔是 15s,有的是 30s,rate() 计算结果就会偏差。统一采集配置,才是多区域聚合可靠的前提。