菜单
Grafana Cloud Enterprise 开源

仪表盘 JSON 模型

Grafana 中的仪表盘由一个 JSON 对象表示,该对象存储了其仪表盘的元数据。仪表盘元数据包括仪表盘属性、面板元数据、模板变量、面板查询等。

查看仪表盘的 JSON

  1. 点击仪表盘右上角的编辑
  2. 点击设置
  3. 转到JSON 模型标签页。
  4. 查看完 JSON 后,点击返回仪表盘退出编辑

JSON 字段

当用户创建一个新的仪表盘时,会使用以下字段初始化一个新的仪表盘 JSON 对象

注意

在下面的 JSON 中,id 显示为 null,这是在仪表盘保存之前分配给它的默认值。仪表盘保存后,会为 id 字段分配一个整数值。

json
{
  "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仪表盘主题,例如 darklight
timezone仪表盘时区,例如 utcbrowser
editable仪表盘是否可编辑
graphTooltip0 表示无共享十字光标或提示框(默认),1 表示共享十字光标,2 表示共享十字光标和共享提示框
time仪表盘的时间范围,例如最近 6 小时、最近 7 天等
timepickertimepicker 元数据,详情请参阅 timepicker 部分
templatingtemplating 元数据,详情请参阅 templating 部分
annotationsannotations 元数据,关于如何添加它们,请参阅 annotations
refresh自动刷新间隔
schemaVersionJSON Schema 版本(整数),每次 Grafana 更新导致 Schema 更改时递增
version仪表盘版本(整数),每次更新仪表盘时递增
panelspanels 数组,详情如下。

面板

面板是仪表盘的构建块。它包含数据源查询、图形类型、别名等。面板 JSON 是一个 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

json
"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"
  }

字段用法说明如下

名称用法
collapsetimepicker 是否折叠
enabletimepicker 是否启用
notice
now
hiddentimepicker 是否隐藏
nowDelay通过输入时间延迟覆盖 now 时间。使用此选项可适应已知的数据聚合延迟,避免出现空值。
quick_ranges自定义快速范围
refresh_intervals刷新选择器下拉菜单中的间隔选项
status
type

templating

templating 字段包含一个模板变量数组,其中包含其保存的值以及一些其他元数据,例如

json
 "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 部分中上述字段的用法说明如下

名称用法
enabletemplating 是否启用
list一个对象数组,每个对象代表一个模板变量
allFormat从数据源获取所有值时使用的格式,例如:wildcardglobregexpipe 等。
current显示仪表盘上当前选定的变量文本/值
data source显示变量的数据源
includeAll是否提供“全部”值选项
multi是否可以从变量值列表中选择多个值
multiFormat从数据源获取时间序列时使用的格式
name变量名称
options可在仪表盘上选择的变量文本/值对数组
query用于获取变量值的数据源查询
refresh配置何时刷新变量
regex提取系列名称或指标节点段的一部分
type变量类型,例如 customqueryinterval