

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 控制面板 JSON 模型
<a name="v9-dash-dashboard-json-model"></a>

****  
本文档主题专为支持 **Grafana 9.x 版本**的 Grafana 工作区而设计。  
对于支持 Grafana 10.x 版本的 Grafana 工作区，请参阅[使用 Grafana 版本 10](using-grafana-v10.md)。  
对于支持 Grafana 8.x 版本的 Grafana 工作区，请参阅[使用 Grafana 版本 8](using-grafana-v8.md)。

Grafana 中的控制面板由 JSON 对象表示，该对象存储其控制面板的元数据。控制面板元数据包括控制面板属性、面板元数据、模板变量和面板查询。

查看控制面板 JSON 对象。

1. 导航到控制面板。

1. 在顶部导航菜单中，单击**控制面板设置**（齿轮）图标。

1. 单击 **JSON 模型**。

**JSON 字段**

当用户创建新控制面板时，将使用以下字段初始化新的控制面板 JSON 对象。

**注意**  
在以下 JSON 中，ID 显示为 null，这是在保存控制面板之前分配的默认值。保存控制面板后，会为 `id` 字段分配一个整数值。

```
{
  "id": null,
  "uid": "cLV5GDCkz",
  "title": "New dashboard",
  "tags": [],
  "style": "dark",
  "timezone": "browser",
  "editable": true,
  "graphTooltip": 1,
  "panels": [],
  "time": {
    "from": "now-6h",
    "to": "now"
  },
  "timepicker": {
    "time_options": [],
    "refresh_intervals": []
  },
  "templating": {
    "list": []
  },
  "annotations": {
    "list": []
  },
  "refresh": "5s",
  "schemaVersion": 17,
  "version": 0,
  "links": []
}
```

下面介绍了控制面板 JSON 中的每个字段。


| Name | 用法 | 
| --- | --- | 
| **id** | 控制面板的唯一数字标识符（由数据库生成） | 
| **uid** | 任何人都可以生成的唯一控制面板标识符，字符串（8-40） | 
| **删除实例快照** | 控制面板的当前标题 | 
| **tags** | 与控制面板关联的标签，字符串数组 | 
| **style** | 控制面板的主题，例如*深色*或*浅色* | 
| **timezone** | 控制面板的时区，例如 *UTC* 或*浏览器* | 
| **editable** | 控制面板是否可编辑 | 
| **graphTooltip** | 0 表示无共享十字准线或工具提示（默认），1 表示共享十字准线，2 表示共享十字准线和共享工具提示 | 
| **时间** | 控制面板的时间范围，比如*过去 6 小时*或*过去 7 天* | 
| **timepicker** | 时间选取器元数据，详情请参阅[时间选取器部分](#v9-dash-dashboard-json-model) | 
| **templating** | 模板化元数据，详情请参阅[模板化部分](#v9-dash-dashboard-json-model) | 
| **annotations** | 注释元数据，有关如何添加注释，请参阅[注释](v9-panels-annotate-visualizations.md) | 
| **refresh** | 自动刷新间隔 | 
| **schemaVersion** | JSON 架构的版本（整数），每当 Grafana 更新对所述架构进行更改时都会递增 | 
| **版本** | 控制面板的版本（整数），每次更新控制面板时都会递增 | 
| **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,
    "refresh_intervals": [
      "5s",
      "10s",
      "30s",
      "1m",
      "5m",
      "15m",
      "30m",
      "1h",
      "2h",
      "1d"
    ],
    "status": "Stable",
    "type": "timepicker"
  }
```

**模板化**

`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"
      }
    ]
  }
```