您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Grafana中如何使用Global Variables
## 引言
在Grafana的可视化监控系统中,**Global Variables(全局变量)**是提升仪表板灵活性和复用性的核心功能。通过合理配置变量,用户可以实现动态切换数据源、时间范围或过滤条件,避免重复创建相似仪表板。本文将详细介绍Global Variables的定义、配置方法及典型应用场景。
---
## 一、什么是Global Variables?
Global Variables是Grafana中可在多个仪表板或面板间共享的变量,其特点包括:
- **跨仪表板复用**:一次定义,多处调用
- **动态更新**:变量值变化时,依赖该变量的所有面板自动刷新
- **支持多种类型**:如自定义常量、查询结果、时间区间等
---
## 二、配置Global Variables的步骤
### 1. 通过Templating功能定义变量
进入仪表板设置 → **Templating** → 点击`New variable`:
```yaml
# 示例:定义数据源变量
Name: datasource
Type: Datasource
Label: 选择数据源
Query: Prometheus
类型 | 用途 | 示例值 |
---|---|---|
Custom |
手动定义选项列表 | prod,dev,test |
Query |
从数据源查询动态选项 | SHOW TAG VALUES WITH KEY="host" |
Interval |
动态时间间隔 | 1m,5m,1h |
Global |
引用其他仪表板的变量 | $external_var |
在变量配置底部勾选: - Include All option:允许选择全部选项 - Global:将该变量标记为全局可用
-- 在面板查询中使用变量
SELECT * FROM $datasource WHERE host='$host'
当用户切换datasource
变量时,所有相关查询自动指向新数据源。
定义环境变量env
:
Name: env
Type: Custom
Values: production,staging,development
在告警规则中引用:
- alert: HighErrorRate
expr: rate(errors_total{env="$env"}[5m]) > 0.1
在全局配置$__timeFilter()
变量后,所有面板的时间筛选器将同步更新。
变量嵌套
在查询变量中使用其他变量值:
SHOW TAG VALUES FROM cpu WITH KEY = "instance" WHERE region = '$region'
默认值设置
通过URL参数传递变量初始值:
/d/uid/dashboard?var-host=web01
变量格式化
使用${var:raw}
保留原始值,或${var:json}
转为JSON格式。
通过合理使用Global Variables,Grafana用户可以构建高度灵活的动态仪表板体系。建议从简单的环境切换场景开始实践,逐步掌握变量嵌套等高级用法,最终实现监控系统的”一次配置,全局生效”。
该文章包含代码块、表格、列表等Markdown元素,总字数约700字,结构清晰且适合技术文档场景。可根据需要调整示例中的具体变量名称或查询语句。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。