仪表板 JSON schema v2
注意
仪表板 JSON schema v2 是一个实验性功能。不提供工程和呼叫支持。文档要么有限,要么仅在代码注释中提供。不提供 SLA。在 Grafana 中启用
dashboardNewLayouts
功能开关即可使用此功能。请联系 Grafana 支持以在 Grafana Cloud 中启用此功能。
Grafana 仪表板表示为 JSON 对象,其中存储了元数据、面板、变量和设置。
可观测性即代码适用于所有版本的 JSON 模型,并且与版本 2 完全兼容。
开始之前
Schema v2 会随着 Dynamic Dashboards 功能开关 dashboardNewLayouts
的启用而自动启用。它还需要同时启用新的仪表板 API 功能开关 kubernetesDashboard
。
有关仪表板如何根据您的功能标志配置而表现不同,请参阅注意事项和限制。
访问 JSON 模型
要查看仪表板的 JSON 表示
- 切换到仪表板右上角的编辑模式开关。
- 单击顶部导航栏中的齿轮图标以转到 设置。
- 选择 JSON 模型选项卡。
- 根据需要复制或编辑 JSON 结构。
JSON 字段
{
"annotations": [],
"cursorSync": "Off",
"editable": true,
"elements": {},
"layout": {
"kind": GridLayout, // Can also be AutoGridLayout, RowsLayout, or TabsLayout
"spec": {
"items": []
}
},
"links": [],
"liveNow": false,
"preload": false,
"tags": [], // Tags associated with the dashboard.
"timeSettings": {
"autoRefresh": "",
"autoRefreshIntervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"fiscalYearStartMonth": 0,
"from": "now-6h",
"hideTimepicker": false,
"timezone": "browser",
"to": "now"
},
"title": "",
"variables": []
},
所示的仪表板 JSON 示例使用了默认的 GridLayoutKind
。对于其他三种布局选项 AutoGridLayout
、RowsLayout
和 TabsLayout
,新仪表板中的 JSON 如下
AutoGridLayout
"layout": {
"kind": "AutoGridLayout",
"spec": {
"columnWidthMode": "standard",
"items": [],
"fillScreen": false,
"maxColumnCount": 3,
"rowHeightMode": "standard"
}
},
RowsLayout
"layout": {
"kind": "RowsLayout",
"spec": {
"rows": []
},
TabsLayout
"layout": {
"kind": "TabsLayout",
"spec": {
"tabs": []
},
DashboardSpec
下表解释了 DashboardSpec JSON 字段的用法。该表包含默认字段和其他字段
名称 | 用法 |
---|---|
annotations | 包含与仪表板关联的标注列表。 |
cursorSync | 仪表板光标同步行为。
|
editable | 布尔型。仪表板是否可编辑。 |
elements | 包含仪表板中包含的元素列表。支持的仪表板元素有:PanelKind 和 LibraryPanelKind。 |
layout | 仪表板布局。支持的布局有
|
links | 包含指向其他仪表板或外部网站的链接。 |
liveNow | 布尔型。当设置为 true 时,仪表板会以与像素宽度匹配的间隔重新绘制面板。这样数据会“向左移动”,无论查询刷新率如何。此设置有助于避免仪表板显示陈旧的实时数据。 |
preload | 布尔型。当设置为 true 时,仪表板加载时会加载所有面板。 |
tags | 包含与仪表板关联的标签列表。 |
timeSettings | 仪表板的所有时间设置。有关 TimeSettingsSpec 的 JSON 和字段用法说明,请参阅timesettings schema 文档。 |
title | 仪表板标题。 |
variables | 包含已配置的模板变量列表。 |
annotations
与仪表板关联的标注列表的配置。有关 JSON 和字段用法说明,请参阅annotations schema 文档。
elements
仪表板可以包含以下元素
layout
仪表板可以有四种布局选项
有关这些布局的 JSON 和字段用法说明,请参阅layout schema 文档。
links
包含指向其他仪表板或外部网站的链接的配置。
有关 JSON 和字段用法说明,请参阅links schema 文档。
tags
与仪表板关联的标签
[...string]
timesettings
TimeSettingsSpec
定义了特定仪表板的时间选择器和刷新选择器的默认时间配置。有关 TimeSettingsSpec
的 JSON 和字段用法说明,请参阅timesettings schema 文档。
variables
variables
schema 定义了仪表板中使用的变量。
有八种变量类型
- QueryVariableKind
- TextVariableKind
- ConstantVariableKind
- DatasourceVariableKind
- IntervalVariableKind
- CustomVariableKind
- GroupByVariableKind
- AdhocVariableKind
有关 variables
spec 的 JSON 和字段用法说明,请参阅variables schema 文档。
注意事项和限制
现有仪表板
启用 schema v2 后,您仍然可以打开和查看现有的仪表板。保存后,它们将更新到新的 schema,您可以利用新的功能和特性。
禁用功能标志时的仪表板行为
如果您禁用 dashboardNewLayouts
或 kubernetesDashboard
功能标志,您应该了解仪表板的行为。
禁用 dashboardNewLayouts
如果禁用 dashboardNewLayouts
功能开关,根据仪表板的构建方式,其行为会有所不同
- 通过 UI 基于新 schema 构建的仪表板 - 仅查看
- 基于 Schema v1 构建的仪表板 - 查看和编辑
- 通过 Terraform 或 CLI 基于新 schema 构建的仪表板 - 查看和编辑
- 基于新 schema 配置的仪表板 - 查看和编辑,但编辑体验将是旧的体验
禁用 dashboardNewLayouts
和 kubernetesDashboard
您将无法查看或编辑在新 schema 中创建或更新的仪表板。
导入和导出
从 UI 中,基于 schema v2 创建的仪表板可以像其他仪表板一样导出和导入。将它们导出到另一个实例中使用时,数据源的引用不会保留,但数据源类型会保留。您可以在导入 UI 中选择您选择的数据源。