

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

# 构建控制面板
<a name="v10-dash-building-dashboards"></a>

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

创建 Grafana 工作区并登录后，您可以创建控制面板并修改设置以满足您的需求。控制面板由[可视化面板](v10-panels-viz.md)组成。每个面板都有一个与之关联的查询，用于从其中一个 [连接到数据来源](AMG-data-sources.md) 提取数据。

您可以通过添加和使用[变量](v10-dash-variables.md)来创建更具交互性和动态性的控制面板。您可以在指标查询中使用变量代替服务器、应用程序或其他名称等硬编码。

**Topics**
+ [创建控制面板](v10-dash-creating.md)
+ [导入控制面板](v10-dash-importing.md)
+ [导出控制面板](v10-dash-exporting.md)
+ [修改控制面板设置](v10-dash-modify-settings.md)
+ [控制面板 URL 变量](v10-dash-dashboard-url-variables.md)
+ [管理库面板](v10-dash-manage-library-panels.md)
+ [管理控制面板版本历史记录](v10-dash-manage-version-history.md)
+ [管理控制面板链接](v10-dash-manage-dashboard-links.md)
+ [对可视化进行注释](v10-dash-annotations.md)
+ [控制面板 JSON 模型](v10-dash-dashboard-json-model.md)
+ [控制面板的最佳实践](v10-dash-bestpractices.md)

# 创建控制面板
<a name="v10-dash-creating"></a>

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

**创建控制面板**

您可以在控制面板和面板上使用 Grafana 以可视化形式显示数据。每个面板至少需要一次查询才能显示可视化效果。在开始之前，请满足以下先决条件。
+ 确保您拥有适当的权限。有关权限的更多信息，请参阅 [用户、团队和权限](Grafana-administration-authorization.md)。
+ 确定要向其中添加面板的控制面板。
+ 了解目标数据来源的查询语言。
+ 确保已添加要为其编写查询的数据来源。有关更多信息，请参阅 [连接到数据来源](AMG-data-sources.md)。

 创建控制面板：

1. 登录 Grafana，然后从左侧菜单中选择**控制面板**。

1. 依次选择**新建**和**新建控制面板**。

1. 在空的控制面板上，选择 **\$1 添加可视化**。这将打开新的可视化对话框。

1. 选择数据来源。您可以选择现有数据来源、Grafana 的内置数据来源之一进行测试，或者选择**配置新数据来源**以设置新数据来源（只有具有管理员权限的用户才能配置新的数据来源）。

   **编辑面板**视图将会打开，您的数据来源处于选中状态。如果需要，您可以稍后使用面板编辑器的**查询**选项卡更改面板的数据来源。

1. 使用数据来源的查询语言编写或构造查询。选择刷新控制面板图标以对数据来源执行查询，并随时查看结果。

1. 在**可视化**列表中，选择可视化类型。Grafana 将显示应用可视化后的查询结果预览。有关更多信息，请参阅[可视化选项](v10-panels-viz.md)。

1. 在**面板选项**下，您可以输入面板的标题和描述。

1. 大多数可视化效果需要进行一些调整，然后才能显示所需的具体信息。可通过以下方法调整面板设置。
   + [配置值映射](v10-panels-configure-value-mappings.md)
   + [可视化特定选项](v10-panels-viz.md)
   + [覆盖字段值](v10-panels-configure-overrides.md)
   + [配置阈值](v10-panels-configure-thresholds.md)
   + [配置标准选项](v10-panels-configure-standard-options.md)

1. 配置完面板后，选择**保存**以保存控制面板。

   或者，选择**应用**，无需离开面板编辑器即可查看更改。

1. 添加注释来描述可视化（或描述您的更改），然后单击页面右上角的**保存**。
**注意**  
如果您需要将控制面板恢复到以前的版本，注释会很有帮助。

1. 选择**保存**。

1. 或者，您可以在控制面板标题中选择**添加**，然后从下拉列表中选择**可视化**，向控制面板添加更多面板。

**复制现有控制面板**

您可以快速复制现有控制面板，以快速开始创建新的控制面板。

**复制现有控制面板**

1. 在左侧菜单中选择**控制面板**。

1. 选择要复制的控制面板，将其打开。

1. 选择控制面板右上角的**设置**（齿轮图标）。

1. 选择控制面板右上角的**另存为**。

1. （可选）指定名称、文件夹、描述，以及是否复制已复制控制面板的原始控制面板标签。

1. 选择**保存**。

**配置重复行**

您可以将 Grafana 配置为根据变量的值向控制面板动态添加面板或行。变量会动态更改控制面板中所有行的查询。有关重复面板的更多信息，请参阅[配置重复面板]()。

如果在设置变量时选择了 `Multi-value` 或 `Include all values`，也可以重复行。

在开始之前，请确保查询包含多值变量，然后完成以下步骤。

**配置重复行**

1. 从左侧菜单中选择**控制面板**，然后选择要修改的控制面板。

1. 在控制面板顶部，选择**添加**，然后从下拉列表中选择**行**。

   如果控制面板为空，您也可以选择控制面板中间的 **\$1 添加行**按钮。

1. 将鼠标悬停在行标题上，然后选择显示的**设置**（齿轮）图标。

1. 在**行选项**对话框中，添加标题并选择要为其添加重复行的变量。
**注意**  
 要向控制面板用户提供上下文，请将变量添加到行标题。

1. 选择**更新**。

**重复行和控制面板特殊数据来源**

如果一行包含使用特殊[控制面板](AMG-data-sources.md#AMG-data-sources-special)数据来源的面板（该数据来源使用同一控制面板中另一面板的结果集），则重复行中的相应面板将引用原始行中的面板，而不是重复行中的面板。

例如，在控制面板中：
+ `Row 1` 包括 `Panel 1A` 和 `Panel 1B`。
+ `Panel 1B` 通过 `Dashboard` 数据来源使用 `Panel 1A` 的结果。
+ 重复 `Row 2` 包括 `Panel 2A` 和 `Panel 2B`。
+ `Panel 2B` 引用 `Panel 1A`，而不是 `Panel 2A`。

**移动面板**

1. 打开控制面板。

1. 选择面板标题，然后将面板拖动到新位置。您可以将面板放置在控制面板上的任何位置。

**调整面板大小**

1. 打开控制面板。

1. 要调整面板大小，请拖动面板右下角。您可以根据需要调整控制面板的面板大小。

# 导入控制面板
<a name="v10-dash-importing"></a>

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

您可以将预配置的控制面板导入 Amazon Managed Grafana 工作区。

**导入控制面板**

1. 登录您的 Amazon Managed Grafana 工作区。

1. 在左侧菜单中选择**控制面板**。

1. 选择**新建**，然后在下拉菜单中选择**导入**。

1. 接下来，您需要选择要导入的控制面板 JSON 定义。对于如何导入 JSON，您有三种选择：
   + 上传包含控制面板 JSON 的文件。
   + 直接将 JSON 文本复制到文本区域。
   + 将 Grafana Labs 控制面板 URL 或 ID 粘贴到字段中。有关 grafana.com 控制面板的更多信息 URLs，请参阅下一节。
   + （可选）更改您想要更改的任何控制面板详细信息。
   + 如果需要，请选择一个数据来源。
   + 选择**导入**。
   + 保存控制面板。

## 在 grafana.com 上查找控制面板
<a name="v10-dash-import-from-grafana"></a>

grafana.com 上的[控制面板](https://grafana.com/grafana/dashboards/)页面提供了常见服务器应用程序的控制面板。浏览官方和社区构建的控制面板库，然后将其导入以快速启动和运行。

**注意**  
要从 grafana.com 导入控制面板，您的 Amazon Managed Grafana 工作区必须能够访问互联网。

# 导出控制面板
<a name="v10-dash-exporting"></a>

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

您可以使用 Grafana UI 或 HTTP API 导出控制面板。

控制面板导出操作会创建一个 Grafana JSON 文件，其中包含您需要的一切，包括布局、变量、样式、数据源、查询等，以便您以后可以导入控制面板。

**使控制面板可移植**

如果要导出控制面板供其他人使用，则可以为指标前缀（使用常量变量）和服务器名称之类的内容添加模板变量。

`Constant` 类型的模板变量将自动隐藏在控制面板中，并在导入控制面板时作为必必需输入添加。

**导出控制面板**

1. 打开要导出的控制面板。

1. 选择共享图标。

1. 选择**导出**。

1. 选择**保存到文件**。

**注意**  
Grafana 会将 JSON 文件下载到您的本地计算机。

# 修改控制面板设置
<a name="v10-dash-modify-settings"></a>

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

您可以在控制面板设置页面上：
+ 编辑控制面板的常规属性，包括时间设置。
+ 添加注释查询。
+ 添加控制面板变量。
+ 添加链接。
+ 查看控制面板 JSON 模型

**访问控制面板设置页面**

1. 在编辑模式下打开控制面板。

1. 单击页面顶部的**控制面板设置**（齿轮图标）。

**修改控制面板时间设置**

如果要更改控制面板时区、本地浏览器时间并指定自动刷新时间间隔，请调整控制面板时间设置。

**修改控制面板时间设置**

1. 在**控制面板**设置页面上，选择**常规**。

1. 导航到**时间选项**部分。

1. 根据以下描述指定时间设置。

1. 
   + **时区**：指定了您要监控的服务或系统的本地时区。这在监控跨多个时区运行的系统或服务时非常有用。
     + **默认**：Grafana 对用户个人资料、团队或组织使用默认选定的时区。如果没有为用户个人资料、用户所属的团队或组织指定时区，Grafana 将使用本地浏览器时间。
     + **本地浏览器时间**：使用为查看用户浏览器配置的时区。这通常与计算机上设置的时区相同。
     + 使用标准 [ISO 8601 时区](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)，包括 UTC。
   + **自动刷新**：自定义相对时间显示的选项和自动刷新选项。条目以逗号分隔，接受任何有效的时间单位。
   + **现在延迟**：通过输入时间延迟来覆盖 `now` 时间。使用此选项来适应数据聚合中的已知延迟，以避免 null 值。
   + **隐藏时间选取器**：如果您不希望控制面板显示时间选取器，请选择此选项。

**注意**  
要使用时间控件，您的数据必须包含时间列。有关包含时间列的更多信息，请参阅特定[数据来源](AMG-data-sources.md)的文档。

**添加注释查询**

注释查询是查询事件的一种查询方式。这些事件可以在控制面板上的图形中显示为垂直线，并带有一个小图标，您可以将鼠标悬停在上方以查看事件信息。

**添加注释查询**

1. 在**控制面板设置**页面上，选择**注释**。

1. 选择**添加注释查询**。

1. 输入名称并选择数据来源。

1. 完成表单的其余部分以构建查询和注释。

查询编辑器 UI 会根据您选择的数据来源而变化。有关如何构造查询的详细信息，请参阅[数据来源](AMG-data-sources.md)文档。或者，对于从 [使用插件目录查找插件](grafana-plugins.md#plugin-catalog) 中安装的数据来源插件，您可以使用 [Grafana Labs 网站上的文档](https://grafana.com/docs/grafana/v10.3/datasources/)。

**添加变量**

变量使您能够创建更具交互性和动态性的控制面板。您可以在指标查询中使用变量代替服务器、应用程序和传感器名称等硬编码。变量以下拉列表的形式显示在控制面板顶部。通过这些下拉列表，可以轻松更改控制面板中显示的数据。

有关变量的更多信息，请参阅[变量](v10-dash-variables.md)。

**添加变量**

1. 在**控制面板设置**页面上，单击左侧菜单中的**变量**，然后单击**添加变量**按钮。

1. 在**常规**部分，添加变量的名称。这是您稍后将在查询中使用的名称。

1. 选择变量**类型**。
**注意**  
选择的变量类型会影响您在页面上填充的字段。

1. 定义变量并单击**更新**。

**添加链接**

控制面板链接让您可以将指向其他控制面板和网站的链接直接放在控制面板标题下方。通过链接，可以轻松导航到其他相关的控制面板和内容。

**添加链接**

1. 在**控制面板设置**页面上，从左侧菜单中选择**链接**，然后单击**添加链接**按钮。

1. 输入标题，然后在**类型**字段中选择**控制面板**或**链接**。

1. 要添加控制面板链接，请添加可选标签，选择任意控制面板链接选项，然后单击**应用**。
**注意**  
使用标签创建包含特定标签的控制面板的动态下拉列表。

1. 要添加 Web 链接，请添加当用户将鼠标悬停在链接上时显示的 URL 和工具提示文本，选择链接旁边显示的图标，然后选择任意控制面板链接选项。

**查看控制面板 JSON 模型**

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

要查看控制面板 JSON 模型，请在**控制面板设置**页面上单击 **JSON**。

有关 JSON 字段的更多信息，请参阅 [JSON 字段](v10-dash-dashboard-json-model.md)。

# 控制面板 URL 变量
<a name="v10-dash-dashboard-url-variables"></a>

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

Grafana 可以应用在控制面板中作为查询参数传递的变量值。 URLs有关更多信息，请参阅[管理控制面板链接](v10-dash-manage-dashboard-links.md)以及[模板和变量](v10-dash-variables.md)。

**将变量作为查询参数传递**

Grafana 将前缀为 `var-` 的查询字符串参数解释为给定控制面板中的变量。

例如，在此 URL 中：

```
https://${your-domain}/path/to/your/dashboard?var-example=value
```

查询参数 `var-example=value` 表示值为 `value` 的控制面板变量。

**为变量传递多个值**

要传递多个值，请为每个值重复一次变量参数。

```
https://${your-domain}/path/to/your/dashboard?var-example=value1&var-example=value2
```

Grafana 将 `var-example=value1&var-example=value2` 解释为带有两个值的控制面板变量示例：`value1` 和 `value2`。

**将变量添加到控制面板链接**

当您从控制面板的设置生成变量时，Grafana 可以将变量添加到控制面板链接中。有关添加变量的更多信息和步骤，请参阅[管理控制面板链接](v10-dash-manage-dashboard-links.md)。

**传递临时筛选条件**

临时筛选条件将键或值筛选条件应用于使用指定数据来源的所有指标查询。有关更多信息，请参阅[临时筛选条件](v10-dash-variable-add.md#v10-dash-variable-add-adhoc)。

要将临时筛选条件作为查询参数传递，请使用变量语法传递临时筛选条件变量，并提供键、运算符作为值、管道分隔列表作为值。

例如，在此 URL 中：

`https://${your-domain}/path/to/your/dashboard?var-adhoc=example_key|=|example_value` 

查询参数 `var-adhoc=key|=|value` 使用 `example_key` 键、`=` 运算符和 `example_value` 值应用配置为临时控制面板变量的临时筛选条件。

**注意**  
使用即席过滤 URLs 器共享时，请记得对 URL 进行编码。在上面的示例中，将竖线 `|` 替换为 `%7C`，将相等运算符 `=` 替换为 `%3D`。

**使用 URL 控制时间范围**

要设置控制面板的时间范围，请使用 `from`、`to`、`time` 和 `time.window` 查询参数。因为这些不是变量，所以不需要 `var-` 前缀。

# 管理库面板
<a name="v10-dash-manage-library-panels"></a>

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

库面板是可在任何控制面板中使用的可重用面板。更改库面板时，更改会传播到使用该面板的所有实例。库面板简化了面板在多个控制面板中的重用。

您可以将库面板与保存的控制面板一起保存在文件夹中。

**创建库面板**

创建库面板时，来源控制面板上的面板也将转换为库面板。转换面板后，您需要保存原始控制面板。

**创建库面板**

1. 在编辑模式下打开要转换为库面板的面板。

1. 在面板显示选项中，单击向下箭头选项开始对可视化进行更改。

1. 选择**库面板**，然后选择 **\$1 新建库面板**。这将打开创建对话框。

1. 在**库面板名称**中，输入面板的名称。

1. 在**保存在文件夹**中，选择要保存库面板的文件夹。

1. 选择**创建库面板**以保存对库的更改。

1. 保存控制面板。

创建库面板后，您可以在面板所在的控制面板上对其进行修改。保存更改后，库面板的所有实例都会反映这些修改。

您也可以选择**更多...**，然后选择**创建库面板**，直接从面板的编辑菜单创建库面板。

**向控制面板添加库面板**

如果您想向其他控制面板用户提供可视化效果，请将 Grafana 库面板添加到控制面板。

**向控制面板添加库面板**

1. 在左侧菜单中选择**控制面板**。

1. 选择**新建**，然后从下拉列表中选择**新建控制面板**。

1. 在空的控制面板上，选择 **\$1 导入库面板**。您将看到库面板的列表。

1. 筛选列表或搜索以查找要添加的面板。

1. 单击面板将其添加到控制面板。

**取消链接库面板**

如果要对库面板进行更改，而不影响库面板的其他实例，请取消链接该面板。

**取消链接库面板**

1. 在左侧菜单中选择**控制面板**。

1. 选择**库面板**。

1. 选择正在其他控制面板中使用的库面板。

1. 选择要取消链接的面板。

1. 选择面板标题（或将指针悬停在面板上的任意位置），以在面板的右上角显示操作菜单。

1. 选择**编辑**。该面板将在编辑模式下打开。

1. 选择页面右上角的**取消链接**。

1. 选择**是，取消链接**。

**查看库面板列表**

您可以查看可用库面板列表并搜索库面板。

**查看库面板列表**

1. 在左侧菜单中选择**控制面板**。

1. 选择**库面板**。您可以看到先前定义的库面板列表。

1. 如果您知道特定库面板的名称，请搜索该面板。您也可以按文件夹或类型筛选面板。

**删除库面板**

当您不再需要某个库面板时，请将其删除。

**删除库面板**

1. 在左侧菜单中选择**控制面板**。

1. 选择**库面板**。

1. 选择要删除的面板的库面板名称旁边的删除图标。

# 管理控制面板版本历史记录
<a name="v10-dash-manage-version-history"></a>

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

每当您保存控制面板的某个版本时，都会保存该版本的副本，这样控制面板的先前版本就不会丢失。输入控制面板设置，然后在左侧菜单中选择**版本**，即可获得这些版本的列表。

**注意**  
控制面板的最近 20 个版本已保存。

控制面板版本历史记录功能允许比较和恢复到之前保存的控制面板版本。

**比较两个控制面板版本**

要比较两个控制面板版本，请从列表中选择要比较的两个版本。单击**比较版本**以查看两个版本之间的差异。这将显示版本差异视图。默认情况下，您将看到更改的文本摘要。

如果要查看代表控制面板的原始 JSON 的差异，可以单击底部的**查看 JSON 差异**按钮来实现。

**恢复到之前保存的控制面板版本**

如果需要恢复到之前保存的控制面板版本，可以选择控制面板版本列表中一行右侧的**恢复**按钮，或者在差异视图中选择**恢复到版本 *<x>*** 按钮。选择其中任何一项都将提示您确认恢复。

恢复到先前版本后，将创建一个新版本，其中包含与先前版本完全相同的数据，只是版本号不同。这将在新控制面板版本中该行的**备注列**中指示。这样可确保您之前的控制面板版本不受更改的影响。

# 管理控制面板链接
<a name="v10-dash-manage-dashboard-links"></a>

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

您可以使用链接在常用控制面板之间导航，或者将其他人连接到您的可视化。链接使您能够创建指向其他控制面板、面板甚至外部网站的快捷方式。

Grafana 支持控制面板链接、面板链接和数据链接。控制面板链接显示在控制面板顶部。单击面板左上角的图标即可访问面板链接。

**选择要使用的链接**

首先，了解您当前在控制面板之间导航的方式。如果您经常在一组控制面板之间跳来跳去，而且难以在每个控制面板中找到相同的上下文，那么链接有助于优化您的工作流程。

下一步是找出哪种链接类型适合您的工作流程。尽管 Grafana 中的所有链接类型都用于创建指向其他控制面板或外部网站的快捷方式，但它们在不同的环境中起作用。
+ 如果链接与控制面板中的大多数（如果不是全部）面板相关，请使用控制面板链接。
+ 如果要深入查看特定面板，请使用面板链接。
+ 如果要链接到外部站点，您可以使用控制面板链接或面板链接。
+ 如果要深入查看特定序列，甚至是单个测量值，请使用数据链接。

**使用 URL 控制时间范围**

要控制面板或控制面板的时间范围，您可以在控制面板 URL 中提供查询参数：
+ `from` 定义时间范围的下限，以毫秒纪元为单位指定。
+ `to` 定义时间范围的上限，以毫秒纪元为单位指定。
+ `time` 和 `time.window` 定义了从 `time-time.window/2` 到 `time+time.window/2` 的时间范围。两个参数均应以毫秒为单位指定。例如，`?time=1500000000000&time.window=10000` 将得出 10 秒的时间范围，从 1499999995000 到 1500000005000。

**控制面板链接**

创建控制面板链接时，可包含时间范围和当前模板变量，以直接跳转到另一个控制面板中的相同上下文。这样，您就不必担心发送链接的人查看的是否是正确的数据。有关其他类型的链接，请参阅[数据链接变量]()。

仪表板链接也可以用作外部系统的快捷方式，例如使用当前仪表板名称提交 GitHub 问题。

添加控制面板链接后，则会显示在控制面板的右上角。

**向控制面板添加链接**

在当前控制面板的顶部添加指向其他控制面板的链接。

**将链接添加到控制面板**

1. 在查看要链接的控制面板时，单击屏幕顶部的齿轮以打开**控制面板设置**。

1. 选择**链接**，然后选择**添加控制面板链接**或**新建**。

1. 在**类型**中，选择**控制面板**。

1. 从下面选择链接选项。
   + **带标签**：输入标签，将链接的控制面板限制为仅包含带有您所输入标签的控制面板。否则，Grafana 将包含指向所有其他控制面板的链接。
   + **作为下拉列表** — 如果您要链接到许多仪表板，默认情况下，Grafana 会将它们 side-by-side全部显示在仪表板的顶部。选择此选项并添加可选标题，链接将显示在下拉列表中。
   + **时间范围**：选择此选项可在链接中包含控制面板的时间范围。当用户单击链接时，链接的控制面板将会打开，并显示已设置的指示时间范围。
   + **变量值**：选择此选项可在链接中包含当前用作查询参数的模板变量。当用户单击链接时，链接的控制面板中的任何匹配模板都将设置为链接中的值。有关更多信息，请参阅[控制面板 URL 变量](v10-dash-dashboard-url-variables.md)。
   + **在新选项卡中打开**：如果您希望控制面板链接在新选项卡或窗口中打开，请选择此选项。

1. 单击 **Add（添加）**。

**向控制面板添加 URL 链接**

在当前控制面板的顶部添加指向 URL 的链接。您可以链接到任何可用的 URL，包括控制面板、面板或外部站点。甚至可以控制时间范围，确保用户在 Grafana 中放大正确的数据。

**将 URL 链接添加到控制面板**

1. 在查看要链接的控制面板时，选择屏幕顶部的齿轮以打开**控制面板设置**。

1. 选择**链接**，然后选择**添加控制面板链接**或**新建**。

1. 在**类型**中，选择**链接**。

1. 从下面选择链接选项。
   + **URL**：输入要链接的 URL。根据目标，您可能希望包含字段值。
   + **标题**：输入您希望链接显示的标题。
   + **标题**：输入您希望链接显示的工具提示。
   + **图标**：选择要与链接一起显示的图标。
   + **时间范围**：选择此选项可在链接中包含控制面板的时间范围。当用户单击链接时，链接的控制面板将会打开，并显示设置的指示时间范围。
     + `from`：定义时间范围的下限，以毫秒纪元为单位指定。
     + `to`：定义时间范围的上限，以毫秒纪元为单位指定。
     + `time` 和 `time.window`：定义从 `time-time.window/2` 到 `time+time.window/2` 的时间范围。两个参数均应以毫秒为单位指定。例如，`?time=1500000000000&time.window=10000` 将得出 10 秒的时间范围，从 1499999995000 到 1500000005000。
   + **变量值**：选择此选项可在链接中包含当前用作查询参数的模板变量。当用户单击链接时，链接的控制面板中的任何匹配模板都将设置为链接中的值。

     变量格式如下：

     ```
     https://${you-domain}/path/to/your/dashboard?var-${template-varable1}=value1&var-{template-variable2}=value2
     ```
   + **在新选项卡中打开**：如果您希望控制面板链接在新选项卡或窗口中打开，请选择此选项

1. 选择**添加**。

**更新控制面板链接**

要更改或更新现有控制面板链接，请按照以下步骤操作。

**更新控制面板**

1. 在**控制面板设置**的**链接**选项卡上，选择要编辑的现有链接。

1. 更改设置，然后选择**更新**。

**复制控制面板链接**

要复制现有控制面板链接，请选择要复制的现有链接旁边的复制图标。

**删除控制面板链接**

要删除现有控制面板链接，请选择要删除的链接旁边的垃圾桶图标。

**面板链接**

每个面板都有自己的一组链接，这些链接显示在面板左上角。您可以链接到任何可用的 URL，包括控制面板、面板或外部站点。甚至可以控制时间范围，确保用户在 Grafana 中放大正确的数据。

要查看可用的面板链接，请选择面板标题右侧的图标。
+ **添加面板链接**：每个面板都有自己的一组链接，这些链接显示在面板左上角。您可以链接到任何可用的 URL，包括控制面板、面板或外部站点。甚至可以控制时间范围，确保用户在 Grafana 中放大正确的数据。单击面板左上角的图标，查看可用的面板链接。

  1. 将光标悬停在要添加链接的面板上。

  1. 选择菜单，然后选择**编辑**，也可以使用键盘快捷键 `e`。

  1. 展开**面板选项**部分，然后向下滚动到**面板链接**。

  1. 选择**添加链接**。

  1. 输入**标题**。这是是链接的可读标签，显示在 UI 中。

  1. 输入要链接的 **URL**。按 `Ctrl+Space`（或 `Cmd+Space`）并选择 URL 字段以查看可用的变量。通过向面板链接添加模板变量，该链接会将用户引导到正确的上下文，且相关变量已设置。

     您还可以使用时间变量。
     + `from` 定义时间范围的下限，以毫秒纪元为单位指定。
     + `to` 定义时间范围的上限，以毫秒纪元为单位指定。
     + `time` 和 `time.window` 定义了从 `time-time.window/2` 到 `time+time.window/2` 的时间范围。两个参数均应以毫秒为单位指定。例如，`?time=1500000000000&time.window=10000` 将得出 10 秒的时间范围，从 1499999995000 到 1500000005000。
+ **更新面板链接**

  1. 选择一个面板（或将光标放在面板上）以在面板的右上角显示操作菜单。

  1. 从菜单中选择**编辑**。

     还可以使用键盘快捷键 `e`。

  1. 展开**面板选项**部分，然后向下滚动到**面板链接**。

  1. 找到要更改的链接，然后选择其旁边的**编辑**（铅笔）图标。

  1. 进行任何必需的更改。

  1. 选择**保存**以保存更改并关闭窗口。

  1. 选择右上角的**保存**将更改保存到控制面板。
+ **删除面板链接**

  1. 选择一个面板（或将光标放在面板上）以在面板的右上角显示操作菜单。

  1. 从菜单中选择**编辑**。

     还可以使用键盘快捷键 `e`。

  1. 展开**面板选项**部分，然后向下滚动到**面板链接**。

  1. 找到要删除的链接，然后选择其旁边的 **X** 图标。

  1. 选择右上角的**保存**将更改保存到控制面板。

# 对可视化进行注释
<a name="v10-dash-annotations"></a>

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

注释提供了一种用丰富的事件在可视化上标记点的方法。注释在所有图形面板上都显示为垂直线和图标。将鼠标悬停在注释上时，可以获取事件描述和事件标签。文本字段可以包含指向其他系统的链接，并提供更多详细信息。

您可以通过三种方式对可视化进行注释：
+ 直接在面板中，使用[内置的注释查询](#v10-dash-built-in-query)。
+ 使用 Grafana HTTP API。
+ 在控制面板设置中配置注释查询。

在前两种情况下，您需要创建新的注释，而在最后一种情况下，您需要从数据来源中查询现有注释。内置的注释查询也支持此功能。

本节介绍了第一和第三个选项；有关使用 Grafana HTTP API 的信息，请参阅 [注释 API](Grafana-API-Annotations.md)。

以下可视化类型支持注释：
+ 时间序列 
+ 状态时间轴
+ K 线图

## 在面板中创建注释
<a name="v10-dash-create-annotations-in-panels"></a>

Grafana 允许使用所有控制面板上存在的[内置注释查询](#v10-dash-built-in-query)直接从面板添加注释事件。以这种方式创建的注释存储在 Grafana 中。

要直接在面板中添加注释：
+ 必须已保存控制面板。
+ 必须启用内置查询。

**添加注释**

1. 在控制面板中，选择要向其添加注释的面板。将出现一个上下文菜单。

1. 在上下文菜单中，选择**添加注释**。

1. （可选）添加注释描述和标签。

1. 选择**保存**。

或者，要添加注释，请在选择面板时按下 `Ctrl`（或 `Cmd`），此时将显示**添加注释**弹出窗口。

**区域注释**

您还可以创建覆盖可视化中某个区域或时间段的注释。

**添加区域注释**

1. 在控制面板中，按住 `Ctrl`（或 `Cmd`）并选择面板的某个区域。

1.  添加注释描述和标签（可选）。

1.  单击**保存**。

**编辑注释**

1. 在控制面板中，将鼠标悬停在面板中的注释指示器上。

1. 选择注释工具提示中的**编辑**（铅笔）图标。

1. 修改描述 and/or 标签。

1. 选择**保存**。

**删除注释**

1. 在控制面板中，将鼠标悬停在面板中的注释指示器上。

1. 选择注释工具提示中的**删除**（垃圾桶）图标。

## 通过控制面板设置获取注释
<a name="v10-dash-fetch-annotations"></a>

在控制面板设置的**注释**下，您可以添加新查询以使用任何数据来源获取注释，包括内置数据注释数据来源。注释查询返回的事件可以在控制面板上的图形中可视化为事件标记。

**添加新的注释查询**

1. 选择控制面板标题中的**设置**（齿轮）图标以打开设置菜单。

1. 选择**注释**。

1. 单击**添加注释查询**。

1. 输入注释查询的名称。

   此名称被赋予切换功能，允许您启用此查询中显示的注释事件。

1. 选择注释的数据来源。

   您还可以选择**打开高级数据来源选取器**以查看更多选项，包括添加数据来源（仅供管理员使用）。

1. 如果不想立即使用注释查询，请清除**启用**复选框。

1. 如果不想在控制面板中显示注释查询切换，请选中**隐藏**复选框。

1. 选择事件标记的颜色。

1. 在**显示位置**下拉列表中，选择以下选项之一：
   + **所有面板**：注释显示在所有支持注释的面板上。
   + **选定面板**：注释显示在您选择的所有面板上。
   + **除此以外的所有面板**：注释显示在除您选择的面板之外的所有面板上。

1. 配置查询。

   每个数据来源的注释查询选项都不同。有关特定数据来源中注释的信息，请参阅 [连接到数据来源](AMG-data-sources.md)。

## 内置查询
<a name="v10-dash-built-in-query"></a>

添加注释后，将仍然可见。这是因为所有控制面板上都存在内置的注释查询。此注释查询将获取源于当前控制面板（存储在 Grafana 中）的所有注释事件，并将其显示在创建事件的面板上。这包括警报状态历史记录注释。

默认情况下，内置注释查询使用 `Grafana` 特殊数据来源，仅支持使用此数据来源进行手动注释。您可以在内置注释查询中使用其他数据来源，但只能使用该数据来源的查询编辑器创建自动注释。

要直接向控制面板添加注释，必须启用此查询。

**确认内置查询已启用**

1. 选择控制面板标题中的控制面板**设置**（齿轮）图标以打开控制面板设置菜单。

1. 选择**注释**。

1. 查找**注释和警报（内置）**查询。

   如果查询名称前显示**已禁用**，则需要选择查询名称以将其打开并更新设置。

**阻止获取和绘制注释**

1. 选择控制面板标题中的控制面板**设置**（齿轮）图标以打开控制面板设置菜单。

1. 选择**注释**。

1. 选择**注释和警报（内置）**查询。

1. 选择**启用**开关将其关闭。

当您使用**另存为**功能复制控制面板时，将获得一个新的控制面板 ID，因此在来源控制面板上创建的注释将不再显示在副本上。如果您添加新的**注释查询**并按标签筛选，则仍然可以显示。但只有当来源控制面板上的注释具有可筛选的标签时，这才有效。

**按标签筛选查询**

您可以将**筛选依据**设置为 `Tags` 来创建新的查询，以通过 `Grafana` 数据来源从内置注释查询获取注释。

例如，创建注释查询名称 `outages` 并指定标签 `outage`。此查询将显示带有 `outage` 标签的所有注释（来自任何控制面板或通过 API）。如果在注释查询中定义了多个标签，Grafana 将仅显示与所有标签匹配的注释。要修改行为，请启用**匹配任何**，Grafana 将显示包含您提供的任何一个标签的注释。

 您还可以在标签查询中使用模板变量。这意味着，如果您有一个显示不同服务的统计信息的控制面板和一个指示显示哪些服务的模板变量，您可以在注释查询中使用相同的模板变量，仅显示这些服务的注释。

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

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

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

**查看控制面板 JSON 对象**

1. 导航到控制面板。

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

1. 选择 **JSON 模型**。

## JSON 字段
<a name="v10-dash-json-fields"></a>

当用户创建新控制面板时，将使用以下字段初始化新的控制面板 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": {
    "time_options": [],
    "refresh_intervals": []
  },
  "templating": {
    "list": []
  },
  "annotations": {
    "list": []
  },
  "refresh": "5s",
  "schemaVersion": 17,
  "version": 0,
  "links": []
}
```

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


| Name | 用法 | 
| --- | --- | 
| `id` | 控制面板的唯一数字标识符（由数据库生成） | 
| `uid` | 任何人都可以生成的唯一控制面板标识符，字符串（8-40） | 
| `title` | 控制面板的当前标题 | 
| `tags` | 与控制面板关联的标签，字符串数组 | 
| `style` | 控制面板的主题，例如 `dark` 或 `light` | 
| `timezone` | 控制面板的时区，例如 `utc` 或 `browser` | 
| `editable` | 控制面板是否可编辑 | 
| `graphTooltip` | 0 表示无共享十字准线或工具提示（默认），1 表示共享十字准线，2 表示共享十字准线和共享工具提示 | 
| `time` | 控制面板的时间范围，例如 `last 6 hours` 或 `last 7 days` | 
| `timepicker` | 时间选取器元数据，详情请参阅[时间选取器部分](#v10-dash-json-panels) | 
| `templating` | 模板化元数据，详情请参阅[模板化部分](#v10-dash-json-panels) | 
| `annotations` | 注释元数据，有关如何添加注释，请参阅[注释](v10-dash-annotations.md) | 
| `refresh` | 自动刷新间隔 | 
| `schemaVersion` | JSON 架构的版本（整数），每当 Grafana 更新对此架构进行更改时都会递增 | 
| `version` | 控制面板的版本（整数），每次更新控制面板时都会递增 | 
| `panels` | 面板阵列（详情请参阅下一部分） | 

## 面板
<a name="v10-dash-json-panels"></a>

面板是控制面板的组成部分。由数据来源查询、图形类型、别名等构成。面板 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"
      }
    ]
  }
```

下表介绍了模板化字段的使用。


| Name | 用法 | 
| --- | --- | 
|  `enable`  |  模板化是否已启用  | 
|  `list`  |  一组对象，每个对象代表一个模板变量  | 
|  `allFormat`  |  从数据来源获取所有值时使用的格式，包括 `wildcard`、`glob`、`regex` 和 `pipe`。  | 
|  `current`  |  在仪表板 text/value 上显示当前选定的变量  | 
|  `datasource`  |  显示变量的数据来源  | 
|  `includeAll`  |  所有值选项是否可用  | 
|  `multi`  |  是否可以从变量值列表中选择多个值  | 
|  `multiFormat`  |  从数据来源获取时间序列时使用的格式  | 
|  `name`  |  变量名称  | 
|  `options`  |  可在仪表板上选择的变量 text/value 对数组  | 
|  `query`  |  用于获取变量值的数据来源查询  | 
|  `refresh`  |  配置何时刷新变量  | 
|  `regex`  |  提取序列名称或指标节点分段的一部分  | 
|  `type`  |  变量类型 `custom`、`query` 或 `interval`  | 

# 控制面板的最佳实践
<a name="v10-dash-bestpractices"></a>

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

本节为 Grafana 管理员和用户提供了有关如何构建和维护 Grafana 控制面板的最佳实践。

有关您可以创建的不同类型的控制面板的信息，请参阅 Grafana Labs 网站上的博文 [Grafana 控制面板：您可以构建的不同类型的完整指南](https://grafana.com/blog/2022/06/06/grafana-dashboards-a-complete-guide-to-all-the-different-types-you-can-build/?pg=webinar-getting-started-with-grafana-dashboard-design-amer&plcmt=related-content-1)。

**注意**  
本节可帮助您制定监控和控制面板维护策略。您最了解自己的系统，因此应通过本节内容加强理解。归根结底，您有责任为自己的系统制定最佳实践。

## 常见可观测性策略
<a name="v10-dash-common-observability-strategies"></a>

如果需要监控的内容很多，比如服务器场，就需要有一个策略来决定哪些内容足够重要，需要监控。本页介绍了选择监控内容的几种常用方法。

通过逻辑策略，您可以创建统一的控制面板，并轻松扩展可观测性平台。

**策略指南**
+ 您可以通过 USE 方法了解计算机状况，通过 RED 方法了解用户是否满意。
+ USE 报告问题的原因。
+ RED 报告用户体验，并很有可能报告问题的症状。
+ 监视两者对于了解系统非常重要。最佳做法是注意症状而不是原因。通常，警报是在 RED 控制面板上配置的。

**USE 方法**

USE 代表：
+ **利用率**：资源繁忙的时间百分比，例如节点 CPU 使用率。
+ **饱和度**：资源必须完成的工作量，通常是队列长度或节点负载。
+ **错误**：错误事件计数。

这种方法最适合基础设施中的硬件资源，例如 CPU、内存和网络设备。有关更多信息，请参阅 Brendan Gregg 的博文 [USE 方法](http://www.brendangregg.com/usemethod.html)。

**RED 方法**

RED 代表：
+ **速率**：每秒请求数
+ **错误**：失败的请求数。
+ **持续时间**：这些请求花费的时间，延迟测量值的分布。

这种方法最适用于服务，尤其是微服务环境。对于每项服务，都要检测代码以便对每个组件公开这些指标。红色仪表板非常适合提醒和 SLAs. 精心设计的 RED 控制面板是用户体验的代名词。

有关更多信息，请参阅 Tom Wilkie 的博文 [RED 方法：如何检测服务](https://grafana.com/blog/2018/08/02/the-red-method-how-to-instrument-your-services)。

**四个黄金信号**

根据 [Google SRE 手册](https://landing.google.com/sre/sre-book/chapters/monitoring-distributed-systems/#xref_monitoring_golden-signals)，如果您只能衡量面向用户系统的四个指标，请重点关注这四个指标。

此方法与 RED 方法类似，但包括饱和度。
+ **延迟**：处理请求所花费的时间。
+ **流量**：对系统的要求。
+ **错误**：失败的请求率。
+ **饱和度**：系统是否满载。

## 控制面板管理成熟度模型
<a name="v10-dash-management-maturity-model"></a>

*控制面板管理成熟度*是指控制面板生态系统的完善程度和效率。建议您定期查看控制面板设置，以评估现状以及如何改进。

从广义上讲，控制面板成熟度可以定义为低、中或高。

 该主题的大部分内容取自 KubeCon 2019 年的演讲 [Fool-Proof Kubernetes Dashboards for Seeprift On](https://www.youtube.com/watch?v=YE2aQFiMGfY) Calls 

**低：默认状态**

在此阶段，您没有一致的控制面板管理策略。几乎每个人都从这里开始。

如何知道自己所处的位置？
+ 每个人都可以修改您的控制面板。
+ 有大量复制的控制面板，几乎没有重复使用的控制面板。
+ 永久存在的一次性控制面板。
+ 无版本控制（版本控制中的控制面板 JSON）。
+ 大量浏览控制面板，搜索合适的控制面板。这意味着要浪费大量时间去寻找所需的控制面板。
+ 没有任何警报将您定向到正确的控制面板。

**中：有条理的控制面板**

在此阶段，您将开始使用有条理的控制面板来管理控制面板的使用。您可能已经制定了策略，但有些方面还可以改进。

 如何知道自己所处的位置？ 
+ 使用模板变量防止蔓延。例如，您不需要为每个节点提供单独的控制面板，可以使用查询变量。更棒的是，您还可以将数据来源设置为模板变量，以便您可以在不同的集群和监控后端之间重用相同的控制面板。

  请参阅 [变量](v10-dash-variables.md) 中的示例列表，了解相关想法。
+ 基于[可观测性策略](#v10-dash-common-observability-strategies)的有条理的控制面板。
+ 分层控制面板，可向下钻取到下一级。
+ 控制面板设计反映了服务层次结构。例如，您可以使用 RED 方法，每个服务一行。当您向下滚动控制面板时，行顺序可以反映数据流。
+ 同类比较：当大小不同时拆分服务控制面板。确保聚合指标不会淹没重要信息。
+ 富有表现力的图表，有意义地使用颜色，并在可能的情况下标准化轴。
  + 有意义的颜色示例：蓝色表示不错，红色表示不好。[阈值](v10-panels-configure-thresholds.md)可以帮助解决这个问题。
  + 标准化轴的示例：在比较 CPU 使用率时，请按百分比而不是原始数字来衡量，因为计算机的内核数可能不同。通过内核数对 CPU 使用率进行标准化可以减少认知负担，因为观看者可以相信所有内核都在 100% 被使用，而不必知道内核的 CPUs数量。
+ 定向浏览可减少猜测。
  + 模板变量使随机或漫无目的地浏览变得更加困难。
  + 大多数控制面板都应通过警报链接。
  + 通过链接定向浏览。有关更多信息，请参阅 [管理控制面板链接](v10-dash-manage-dashboard-links.md)。
+  版本控制的控制面板 JSON。

**高：优化使用**

在此阶段，您已经通过一致且周到的策略优化了控制面板管理的使用。策略需要维护，但结果是值得的。
+ 主动减少蔓延。
  + 定期查看现有控制面板，以确保其仍然相关。
  + 只有批准的控制面板才会添加到主控制面板列表。
  + 跟踪控制面板的使用情况。您可以利用[使用情况见解](v10-dash-assess-dashboard-usage.md)。
+ 设计的一致性。
+ 使用脚本库生成控制面板，确保模式和样式的一致性。
  + gravonnet（Jsonnet）
  + grafanalib（Python）
+ 无法在浏览器中编辑。控制面板查看器使用变量更改视图。
+ 浏览控制面板是例外，而不是常规。
+ 在专用于此用途的单独 Grafana 实例（而不是生产实例）中执行实验和测试。当测试环境中的控制面板被证明有用时，请将该控制面板添加到主 Grafana 实例中。

## 创建控制面板的最佳实践
<a name="v10-dash-best-practices-for-creating-dashboards"></a>

本节概述了创建 Grafana 控制面板时应遵循的一些最佳实践。

**开始之前**

 以下是在创建控制面板之前需要考虑的一些原则。

**控制面板应讲述故事或回答问题**

您想用控制面板讲述什么故事？ 尝试创建数据的逻辑进程，例如从大到小，或者从一般到具体。此控制面板的目标是什么？ （提示：如果控制面板没有目标，问问自己是否真的需要控制面板。）

图形要简单明了，重点放在回答问题上。例如，如果您的问题是“哪些服务器有问题？”，您可能不需要显示所有服务器数据。只显示有问题的服务器数据。

**控制面板应减少而非增加认知负荷**

*认知负荷*是指您需要多么努力去思考某件事才能弄明白。使控制面板易于理解。其他用户和未来的您（当您凌晨 2 点还在想哪里出现问题）会很感激。

 问问自己：
+ 我能说出每个图形具体代表什么吗？ 这是显然的，还是我必须考虑一下？
+ 如果我把这个给别人看，他们需要多长时间才能弄清楚？ 他们会不会迷惑？

**制定监控策略**

制作新的控制面板很容易。优化控制面板创建和遵守计划更难，但这是值得的。此策略应管理总体控制面板方案，并确保单个控制面板设计的一致性。

有关更多信息，请参阅[常见可观测性策略](#v10-dash-common-observability-strategies)和[控制面板管理成熟度水平](#v10-dash-management-maturity-model)。

**写下来**

有了策略或设计指南后，将其写下来，以保持长期的一致性。

**应遵循的最佳实践**
+ 创建新控制面板时，确保为其提供有意义的名称。
  + 如果要创建用来播放或试验的控制面板，请在名称中输入词 `TEST` 或 `TMP`。
  + 考虑在控制面板名称中包含姓名或首字母缩写或作为标签，以便人们知道谁拥有控制面板。
  + 完成临时试验控制面板后，将其删除。
+ 如果您创建了许多相关的控制面板，请考虑如何交叉引用以便于导航。有关更多信息，请参阅本节后面的[管理控制面板的最佳实践](#v10-dash-best-practices-for-managing-dashboards)。
+ Grafana 从数据来源检索数据。重要的是，对 [连接到数据来源](AMG-data-sources.md) 的一般情况和您的特定数据来源有基本的了解。
+ 避免不必要的控制面板刷新，以减少网络或后端的负载。例如，如果您的数据每小时变化一次，则无需将控制面板刷新率设置为 30 秒。
+ 在显示具有不同单位或范围的时间序列时，使用左侧和右侧 Y 轴。
+ 向控制面板和面板添加文档。
  + 要向控制面板添加文档，请向控制面板添加[文本面板可视化](v10-panels-text.md)。记录控制面板的用途、有用的资源链接以及用户与控制面板交互可能需要的任何说明等内容。
  + 要向面板添加文档，请编辑面板设置并添加描述。如果将光标悬停在面板左上角的小 `i` 上，您添加的任何文本都会出现。
+ 重用控制面板，并使用[模板和变量](v10-dash-variables.md)来确保一致性。
+ 堆叠图形数据时要小心。可视化可能会产生误导，并隐藏重要数据。大多数情况下，我们建议将其关闭。

## 管理控制面板的最佳实践
<a name="v10-dash-best-practices-for-managing-dashboards"></a>

 本页概述了管理 Grafana 控制面板时要遵循的一些最佳实践。

**开始之前**

以下是在开始管理控制面板之前需要考虑的一些原则。

**战略可观测性**

有几种[常见的可观测性策略](#v10-dash-common-observability-strategies)。您应该研究这些策略，确定哪种策略对您有用，或者您想提出自己的策略。无论哪种方式，都要有一个计划，写下来，然后去执行。

根据需要调整策略以适应不断变化的需求。

**成熟度级别**

您的控制面板成熟度级别如何？ 分析您当前的控制面板设置，并将其与[控制面板管理成熟度模型](#v10-dash-management-maturity-model)比较。了解所处的位置有助于确定如何实现自己的目标。

**应遵循的最佳实践**
+ 避免控制面板蔓延，即控制面板不受控制地增长。控制面板的蔓延会对找到合适控制面板的时间产生负面影响。复制控制面板并更改“某项内容”（糟糕的是：保留原始标签）是最简单的蔓延方式。
  + 定期查看控制面板并删除不必要的控制面板。
  + 如果您创建一个临时控制面板，也许是为了测试某些内容，请在名称前加上 `TEST:` 前缀。完成后删除控制面板。
+ 复制没有重大更改的控制面板并不是一个好办法。
  + 您错过了对原始控制面板的更新，例如文档更改、错误修复或指标添加。
  + 在许多情况下，制作副本只是为了通过设置模板参数来自定义视图。应该通过维护指向主控制面板的链接并使用 [URL 参数](v10-panels-configure-data-links.md#v10-panels-data-link-variables)自定义视图来完成。
+ 当必须复制控制面板时，请将其重命名，但*不要*复制控制面板标签。标签是搜索期间使用的控制面板的重要元数据。复制标签可能会导致匹配错误。
+ 维护控制面板或交叉引用控制面板。这可以通过几种方式来实现：
  + 创建控制面板链接、面板或数据链接。链接可以指向其他控制面板或外部系统。有关更多信息，请参阅[管理控制面板链接](v10-dash-manage-dashboard-links.md)。
  +  添加[控制面板列表面板](v10-panels-dashboard-list.md)。然后，您可以通过执行标签或文件夹搜索来自定义您看到的内容。
  + 添加[文本面板](v10-panels-dashboard-list.md)并使用 markdown 来自定义显示。