查询历史
Explore 数据源编辑器旁的 Query history 抽屉,记录你近期在这个数据源上执行过的查询:
- 点一条记录即可复用,可追加为新的 RefID 或替换当前查询。
- 历史保存在浏览器本地,换设备、清缓存即丢失——它是便利贴,不是资产库。
- 列表支持导出为 JSON,是把「好查询」带走的最直接方式:
[
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" },
"expr": "histogram_quantile(0.95, sum by (le) (rate(http_request_duration_seconds_bucket[$__rate_interval])))",
"legendFormat": "P95"
}
]
Saved queries 的边界
「把查询存下来」在不同版本与发行形态里成熟度不一,先建立分层认知:
| 机制 | 存在哪 | 团队可见 | 适用 |
|---|---|---|---|
| 查询历史 | 浏览器本地 | 否 | 个人临时复用 |
| Saved queries(若你的实例提供) | 服务端 | 可共享 | 查询资产库 |
| 面板查询 | 仪表盘 JSON | 是 | 长期展示与告警底座 |
注意: 原生 Saved queries 功能仍在演进,部分能力取决于插件或 Grafana Cloud;实例里找不到该入口属正常情况,用下一节的替代方案。
团队共享的务实做法:查询库仪表盘
社区通行的 poor-man’s 方案:建一个只读仪表盘 Query Library,每条沉淀的查询放一个面板,说明写进面板 Description(面板右上角 ⋮ → Edit → Panel options → Description)。队友打开后 Inspect → Query 复制 JSON,即可把查询带进自己的 Explore 或面板。配合查看权限即可防止误改。
构建器与面板查询互通
Explore 与面板里的是同一套查询构建器(Builder 与 Code 两种形态),同一条查询两边通用:
- Explore → 面板:查询结果区的 Add to dashboard,选目标仪表盘或新建。
- 面板 → Explore:复制面板查询 JSON,在 Explore 的 Code 模式粘贴。
topk(5, sum by (service) (rate(http_requests_total{status=~"5.."}[5m])))
查询的终极形态是规则
让「保存的查询」自动跑起来:在 Explore 当前查询上选择新建告警规则(入口名称随版本略有差异),查询就变成持续评估的告警条件,通知链路见通知策略与路由树。
常见坑
- 历史不跟人走:本地存储的设计如此,重要查询第一时间导出 JSON。
- UID 不匹配:复制出的查询带着
datasource.uid,粘到新环境先重新选数据源。 - Builder 丢细节:手工写的复杂表达式切到 Builder 可能被简化,改模式前留备份。