Grafana 仪表盘中,变量(Variables)如 $namespace 是如何工作的?
2026-08-11 01:06:54 # 监控

为什么 Grafana 的仪表盘能“换个命名空间就换一组数据”?秘密就在变量(Variables)。它是让监控面板从“写死”走向“交互式、动态化”的关键。

变量的值从哪来

变量的值通常来自一条 Prometheus 查询,比如:

1
label_values(kube_namespace)

这条查询会返回所有命名空间的名字,作为下拉菜单的选项。

它怎么生效

当你在面板的下拉菜单里选择一个 namespace(比如 prod),Grafana 会把面板所有查询语句里的 $namespace 自动替换成你选中的值:

1
2
3
4
# 查询里写的是
sum(rate(http_requests_total{namespace="$namespace"}[5m]))
# 选了 prod 后,实际执行的是
sum(rate(http_requests_total{namespace="prod"}[5m]))

于是,同一块面板就能按需展示任意命名空间的数据,无需为每个空间复制一份 dashboard。

小结

变量 = “用 PromQL 取选项 + 在查询里用 $变量名 占位”。理解了这点,你就能做出真正可复用的动态仪表盘。