静态变量是什么
除开从数据源查出来的查询型变量,Grafana 还提供四类静态变量:Custom 由人手写候选值(支持「中文显示名 : 实际值」),Interval 提供时间粒度下拉(1m、5m、1h 到 Auto),Constant 是隐藏常量,Textbox 允许现场输入关键字。它们的共同价值是候选集合固定时不再为每个选项发一次查询,看板加载更快,也不受数据源抖动影响。
基本信息
| 适用平台 | Grafana 8+,位于 Dashboard settings → Variables |
|---|---|
| Custom 写法 | 逗号分隔,支持「显示名 : 值」 |
| Interval 常用值 | 1m,5m,10m,30m,1h,6h,12h,1d,可勾选 Auto |
| Constant | 隐藏常量,不出现在下拉框 |
| 权限要求 | Editor 及以上才能修改变量 |
典型使用场景
- 环境切换:只有生产、预发、开发三个取值时用 Custom 写死,比每次查询标签值更稳
- 时间粒度共享:Interval 变量配合 rate 查询,让一组面板共用同一个步长
- 固定集群:单集群看板用 Constant 锁定集群名,避免被误改
- 临时排查:Textbox 让值班人现场输入错误码或 trace 前缀,不改查询即可过滤
- 可读下拉框:Custom 的「中文名 : 英文值」让选项读起来是业务语言,查询里仍用英文值
各类型写法
各类型写法
# Custom:env = prod : 生产,staging : 预发,dev : 开发
# Interval:values = 1m,5m,10m,30m,1h,6h,12h,1d,可勾选 Auto
# Constant:cluster = dc1(隐藏,不显示下拉框)
# Textbox:由值班人现场输入,如错误码前缀
# 引用方式与查询型变量一致
up{env="$env"}
# 时间粒度变量常直接喂给 rate 的步长
sum(rate(http_requests_total{env="$env"}[$interval]))四类变量对照
| 类型 | 取值来源 | 适用场合 |
|---|---|---|
| Custom | 手写候选集 | 取值固定、需要中文别名 |
| Interval | 预设时间粒度 | 多面板共享步长 |
| Constant | 固定常量 | 单环境看板、防止误改 |
| Textbox | 值班人输入 | 临时排查与模糊匹配 |
Interval 勾选 Auto 后会结合看板宽度与 auto_count 推算步长,配合 $__rate_interval 使用能避开「步长小于抓取间隔」这类常见错误。
All 选项不会自动生效:需要单独填写 allValue(如 .* 或 .+),否则选 All 时查询里传入的是字面量,结果为空。
类型选择建议
- 取值固定且数量少(环境、集群、区域)优先 Custom,看板加载不受数据源影响
- 需要现场输入关键字时才用 Textbox,它可能被输错,不适合承载固定维度
- 时间粒度统一用 Interval,避免每个面板各写一个步长导致图形之间不可比
- 只有真正的单集群看板才用 Constant,多环境共用时它会锁死切换能力
- 实例、服务这类取值随数据变化的维度必须用查询型变量,静态写法会在对象增减后失准