仪表盘 JSON 模型
Grafana 中的仪表盘由一个 JSON 对象表示,该对象存储了其仪表盘的元数据。仪表盘元数据包括仪表盘属性、面板元数据、模板变量、面板查询等。
查看仪表盘的 JSON
- 点击仪表盘右上角的编辑。
- 点击设置。
- 转到JSON 模型标签页。
- 查看完 JSON 后,点击返回仪表盘和退出编辑。
JSON 字段
当用户创建一个新的仪表盘时,会使用以下字段初始化一个新的仪表盘 JSON 对象
注意
在下面的 JSON 中,id 显示为 null,这是在仪表盘保存之前分配给它的默认值。仪表盘保存后,会为
id
字段分配一个整数值。
{
"id": null,
"uid": "cLV5GDCkz",
"title": "New dashboard",
"tags": [],
"timezone": "browser",
"editable": true,
"graphTooltip": 1,
"panels": [],
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": []
},
"templating": {
"list": []
},
"annotations": {
"list": []
},
"refresh": "5s",
"schemaVersion": 17,
"version": 0,
"links": []
}
仪表盘 JSON 中的每个字段及其用法说明如下
名称 | 用法 |
---|---|
id | 仪表盘的唯一数字标识符。(由数据库生成) |
uid | 任何人都可以生成的唯一仪表盘标识符。字符串(8-40) |
title | 仪表盘当前标题 |
tags | 与仪表盘关联的标签,一个字符串数组 |
style | 仪表盘主题,例如 dark 或 light |
timezone | 仪表盘时区,例如 utc 或 browser |
editable | 仪表盘是否可编辑 |
graphTooltip | 0 表示无共享十字光标或提示框(默认),1 表示共享十字光标,2 表示共享十字光标和共享提示框 |
time | 仪表盘的时间范围,例如最近 6 小时、最近 7 天等 |
timepicker | timepicker 元数据,详情请参阅 timepicker 部分 |
templating | templating 元数据,详情请参阅 templating 部分 |
annotations | annotations 元数据,关于如何添加它们,请参阅 annotations |
refresh | 自动刷新间隔 |
schemaVersion | JSON Schema 版本(整数),每次 Grafana 更新导致 Schema 更改时递增 |
version | 仪表盘版本(整数),每次更新仪表盘时递增 |
panels | panels 数组,详情如下。 |
面板
面板是仪表盘的构建块。它包含数据源查询、图形类型、别名等。面板 JSON 是一个 JSON 对象数组,每个对象代表一个不同的面板。大多数字段对所有面板都是通用的,但有些字段取决于面板类型。以下是文本面板的面板 JSON 示例。
"panels": [
{
"type": "text",
"title": "Panel Title",
"gridPos": {
"x": 0,
"y": 0,
"w": 12,
"h": 9
},
"id": 4,
"mode": "markdown",
"content": "# title"
}
面板大小和位置
gridPos 属性描述了面板在网格坐标中的大小和位置。
w
1-24(仪表盘宽度被划分为 24 列)h
在网格高度单位中,每个单位代表 30 像素。x
X 位置,与w
单位相同。y
Y 位置,与h
单位相同。
网格具有负重力,如果面板上方有空白空间,会向上移动面板。
timepicker
"timepicker": {
"collapse": false,
"enable": true,
"notice": false,
"now": true,
"hidden": false,
"nowDelay": "",
"quick_ranges": [
{
"display": "Last 6 hours",
"from": "now-6h",
"to": "now"
},
{
"display": "Last 7 days",
"from": "now-7d",
"to": "now"
}
],
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"status": "Stable",
"type": "timepicker"
}
字段用法说明如下
名称 | 用法 |
---|---|
collapse | timepicker 是否折叠 |
enable | timepicker 是否启用 |
notice | |
now | |
hidden | timepicker 是否隐藏 |
nowDelay | 通过输入时间延迟覆盖 now 时间。使用此选项可适应已知的数据聚合延迟,避免出现空值。 |
quick_ranges | 自定义快速范围 |
refresh_intervals | 刷新选择器下拉菜单中的间隔选项 |
status | |
type |
templating
templating
字段包含一个模板变量数组,其中包含其保存的值以及一些其他元数据,例如
"templating": {
"enable": true,
"list": [
{
"allFormat": "wildcard",
"current": {
"tags": [],
"text": "prod",
"value": "prod"
},
"datasource": null,
"includeAll": true,
"name": "env",
"options": [
{
"selected": false,
"text": "All",
"value": "*"
},
{
"selected": false,
"text": "stage",
"value": "stage"
},
{
"selected": false,
"text": "test",
"value": "test"
}
],
"query": "tag_values(cpu.utilization.average,env)",
"refresh": false,
"type": "query"
},
{
"allFormat": "wildcard",
"current": {
"text": "apache",
"value": "apache"
},
"datasource": null,
"includeAll": false,
"multi": false,
"multiFormat": "glob",
"name": "app",
"options": [
{
"selected": true,
"text": "tomcat",
"value": "tomcat"
},
{
"selected": false,
"text": "cassandra",
"value": "cassandra"
}
],
"query": "tag_values(cpu.utilization.average,app)",
"refresh": false,
"regex": "",
"type": "query"
}
]
}
templating 部分中上述字段的用法说明如下
名称 | 用法 |
---|---|
enable | templating 是否启用 |
list | 一个对象数组,每个对象代表一个模板变量 |
allFormat | 从数据源获取所有值时使用的格式,例如:wildcard 、glob 、regex 、pipe 等。 |
current | 显示仪表盘上当前选定的变量文本/值 |
data source | 显示变量的数据源 |
includeAll | 是否提供“全部”值选项 |
multi | 是否可以从变量值列表中选择多个值 |
multiFormat | 从数据源获取时间序列时使用的格式 |
name | 变量名称 |
options | 可在仪表盘上选择的变量文本/值对数组 |
query | 用于获取变量值的数据源查询 |
refresh | 配置何时刷新变量 |
regex | 提取系列名称或指标节点段的一部分 |
type | 变量类型,例如 custom 、query 或 interval |