- 文档首页
托管 Prometheus
最佳实践
工作区数据写入和查询
使用 Recording Rule 预聚合加速查询
工作区数据写入和查询
使用 Recording Rule 预聚合加速查询
使用 Recording Rule 预聚合加速查询
看板频繁执行相同复杂 PromQL 或查询较长时间范围的数据时,重复扫描原始时间序列会增加查询耗时和计算资源消耗。针对这种情况,您可以使用 Recording Rule 预先计算常用聚合结果并开启查询加速,满足加速条件时,VMP 将自动复用预聚合结果,无需修改原有 PromQL 即可缩短查询时间并降低工作区负载。本文介绍如何使用 Recording Rule 预聚合功能。
- 工作区是配置 Recording Rule 和开启查询加速的基础环境,请确保在操作前已完成 创建工作区。
- 设计规则时,建议提前了解哪些查询可以自动匹配加速、哪些变化会导致无法复用,以便合理规划计算口径和标签维度。更多详细说明参见 哪些查询能够自动匹配加速规则。
- 单击左侧导航栏的 工作区,然后单击目标工作区名称。
- 在工作区概览页单击左侧导航栏的 慢查询,选择耗时较高、执行次数较多的 PromQL。更多详细说明请参见 慢查询。
本步骤以查询 Counter 指标 http_requests_total 为例,介绍如何设计预聚合规则并开启查询加速。该指标包含 job、cluster、namespace、service、status_code 及实例相关标签。
如果需要查看指定集群和命名空间内各服务最近 5m 的平均请求速率,可使用如下 PromQL:
rate(http_requests_total{
设计预聚合规则时,建议保留看板长期使用的筛选和分组维度,例如 cluster、namespace、service、status_code,对于仅用于临时排障的 instance、pod 等实例维度,可按需决定是否聚合。需要注意的是,维度一旦被聚合,后续将无法通过预聚合指标按该维度下钻查询。基于以上分析,本示例可以设计如下 Recording Rule,实现对查询的自动匹配加速。
- name: workload_http_requests_acceleration
- record: workload:http_requests:rate5m
sum by (cluster, namespace, service, status_code) (
rate(http_requests_total{job="gateway"}[5m])
- 单击左侧导航栏的 工作区,然后单击目标工作区名称。
- 在工作区概览页单击左侧导航栏的 Recording Rule 管理。
说明
规则运行正常不代表查询一定命中加速,仍需按照 结果验证 进行确认。 说明
首次验证查询加速前,请确认规则已正常运行且准备期已结束,并确保查询时间范围完全落在准备期结束之后。否则可能因时间未覆盖而无法命中加速。若查询包含子查询,还需覆盖子查询的向前回看窗口(例如 30m:1m 会额外读取前 30 分钟的数据)。满足时间覆盖条件后,再检查表达式匹配与查询步长等其他命中条件。
- 单击左侧导航栏的 Explore,进入 Explore 页面。
- 满足规则匹配、时间覆盖和查询步长等条件后,系统会自动将查询改写为基于预聚合指标的等效形式,您无需手动替换看板中的 PromQL,例如:
workload:http_requests:rate5m{
- 若使用 Grafana,请确认面板最终发出的是范围查询,且实际 step 不小于 1m;若使用 $__rate_interval 或 $__interval,还需确认变量展开后的计算窗口与规则口径一致。
请查看范围查询响应头 X-VMP-Query-Acceleration。若命中自动加速,该响应头会返回改写后的 PromQL。仅查询到预聚合指标有数据,不能证明原始 PromQL 已命中自动加速。如果查询经过 Grafana 或其他代理,响应头可能不会透传至浏览器,此时请以 VMP 的实际查询响应为准。
使用两组范围查询参数进行对照。两次请求的工作区、PromQL、start、end 和 step 必须完全一致,并使用固定时间范围,避免自动刷新导致对比口径变化。
建议按以下顺序确认加速效果:
说明
不建议根据单次查询耗时判断加速收益,实际提升幅度取决于原始序列规模、聚合后序列规模、查询频率与服务负载等因素。
- 请求可用性:两组请求均应返回成功结果,不能仅根据是否出现加速响应头判断查询是否可用。
- 时间粒度与对齐:Recording Rule 按周期生成结果,查询返回点与求值时刻可能不完全一致。对于变化较快的指标,应结合数据到达延迟与规则周期判断差异,无需要求所有数据点完全一致。
- 耗时改善:在负载和缓存条件相近的情况下,交替执行多次并比较整体耗时。样本充足时可进一步统计 P50 和 P95。命中加速不代表查询耗时会按固定倍数下降。
- 规则开销:持续观察规则执行状态、预聚合序列数量,以及工作区写入量和存储用量,确保查询收益高于新增的预计算成本。
最近更新时间:2026.09.20 15:35:00