菜单
Grafana Cloud Enterprise 开源 RSS

仪表板 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 表示

  1. 切换到仪表板右上角的编辑模式开关。
  2. 单击顶部导航栏中的齿轮图标以转到 设置
  3. 选择 JSON 模型选项卡。
  4. 根据需要复制或编辑 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。对于其他三种布局选项 AutoGridLayoutRowsLayoutTabsLayout,新仪表板中的 JSON 如下

AutoGridLayout

json
  "layout": {
    "kind": "AutoGridLayout",
    "spec": {
      "columnWidthMode": "standard",
      "items": [],
      "fillScreen": false,
      "maxColumnCount": 3,
      "rowHeightMode": "standard"
    }
  },

RowsLayout

json
  "layout": {
    "kind": "RowsLayout",
    "spec": {
      "rows": []
  },

TabsLayout

json
  "layout": {
    "kind": "TabsLayout",
    "spec": {
      "tabs": []
  },

DashboardSpec

下表解释了 DashboardSpec JSON 字段的用法。该表包含默认字段和其他字段

名称用法
annotations包含与仪表板关联的标注列表。
cursorSync仪表板光标同步行为。
  • Off - 无共享十字光标或工具提示(默认)
  • Crosshair - 共享十字光标
  • Tooltip - 共享十字光标和共享工具提示
editable布尔型。仪表板是否可编辑。
elements包含仪表板中包含的元素列表。支持的仪表板元素有:PanelKind 和 LibraryPanelKind。
layout仪表板布局。支持的布局有
  • GridLayoutKind
  • AutoGridLayoutKind
  • RowsLayoutKind
  • TabsLayoutKind
links包含指向其他仪表板或外部网站的链接。
liveNow布尔型。当设置为 true 时,仪表板会以与像素宽度匹配的间隔重新绘制面板。这样数据会“向左移动”,无论查询刷新率如何。此设置有助于避免仪表板显示陈旧的实时数据。
preload布尔型。当设置为 true 时,仪表板加载时会加载所有面板。
tags包含与仪表板关联的标签列表。
timeSettings仪表板的所有时间设置。有关 TimeSettingsSpec 的 JSON 和字段用法说明,请参阅timesettings schema 文档
title仪表板标题。
variables包含已配置的模板变量列表。

annotations

与仪表板关联的标注列表的配置。有关 JSON 和字段用法说明,请参阅annotations schema 文档

elements

仪表板可以包含以下元素

layout

仪表板可以有四种布局选项

有关这些布局的 JSON 和字段用法说明,请参阅layout schema 文档

包含指向其他仪表板或外部网站的链接的配置。

有关 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,您可以利用新的功能和特性。

禁用功能标志时的仪表板行为

如果您禁用 dashboardNewLayoutskubernetesDashboard 功能标志,您应该了解仪表板的行为。

禁用 dashboardNewLayouts

如果禁用 dashboardNewLayouts 功能开关,根据仪表板的构建方式,其行为会有所不同

  • 通过 UI 基于新 schema 构建的仪表板 - 仅查看
  • 基于 Schema v1 构建的仪表板 - 查看和编辑
  • 通过 Terraform 或 CLI 基于新 schema 构建的仪表板 - 查看和编辑
  • 基于新 schema 配置的仪表板 - 查看和编辑,但编辑体验将是旧的体验

禁用 dashboardNewLayoutskubernetesDashboard

您将无法查看或编辑在新 schema 中创建或更新的仪表板。

导入和导出

从 UI 中,基于 schema v2 创建的仪表板可以像其他仪表板一样导出和导入。将它们导出到另一个实例中使用时,数据源的引用不会保留,但数据源类型会保留。您可以在导入 UI 中选择您选择的数据源。