

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

# Grafana 9 中的控制面板
<a name="v9-dashboards"></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)。

控制面板是一组由一个或多个[面板](v9-panels.md)组成的集合，这些面板整理和排列成一行或多行。Grafana 随附各种面板，让您可以轻松构造正确的查询并自定义可视化，从而创建满足您需求的完美控制面板。每个面板都可以与任何配置的 [连接到数据来源](AMG-data-sources.md) 中的数据交互。

控制面板快照是静态的。无法从快照中重新运行查询和表达式。因此，如果更新查询或表达式中的任何变量，也不会更改控制面板数据。

**Topics**
+ [使用控制面板](v9-dash-using-dashboards.md)
+ [构建控制面板](v9-dash-building-dashboards.md)
+ [管理控制面板](v9-dash-managing-dashboards.md)
+ [共享控制面板和面板](v9-dash-sharing.md)
+ [管理播放列表](v9-dash-managing-playlists.md)
+ [添加和管理控制面板变量](v9-dash-variables.md)
+ [评测控制面板使用情况](v9-dash-assess-dashboard-usage.md)
+ [在 Grafana 9 中搜索控制面板](v9-search.md)

# 使用控制面板
<a name="v9-dash-using-dashboards"></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)。

本主题概述了控制面板的功能和快捷方式，并介绍了如何使用控制面板搜索。

## 功能
<a name="v9-dash-features"></a>

您可以通过以下方式使用控制面板自定义数据的表示形式。


|  功能  |  说明  | 
| --- | --- | 
| **1。主页** | 单击 Grafana 主页图标，重定向到 Grafana 实例中配置的主页。 | 
| **2。标题** | 单击控制面板标题时，可以搜索当前文件夹中包含的控制面板。 | 
| **3。共享控制面板** | 使用此选项通过链接或快照共享当前控制面板。您还可以从共享模式中导出控制面板定义。 | 
| **4。添加新面板** | 使用此选项向当前控制面板添加面板、控制面板行或库面板。 | 
| **5。控制面板设置** | 使用此选项可以更改控制面板名称、文件夹和标签，管理变量和注释查询。有关控制面板设置的更多信息，请参阅 [修改控制面板设置](v9-dash-modify-settings.md)。 | 
| **6。时间选取器下拉列表** |  单击选择相对时间范围选项，设置自定义绝对时间范围。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/grafana/latest/userguide/v9-dash-using-dashboards.html)  | 
| **7。缩小时间范围**  | 单击可缩小时间范围。有关如何使用时间范围控件的更多信息，请参阅 [设置控制面板时间范围](#v9-dash-setting-dashboard-time-range)。  | 
| **8。刷新控制面板** | 单击可立即触发查询并刷新控制面板数据。 | 
| **9。刷新控制面板时间间隔** | 单击选择控制面板自动刷新时间间隔。 | 
| **10。视图模式**  | 单击以在大屏幕（如电视或信息亭）上显示控制面板。视图模式会隐藏不相关的信息，例如导航菜单。  | 
| **11。控制面板面板** |  控制面板的主要构件是面板。要添加新面板、控制面板行或库面板，请单击**添加面板**。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/grafana/latest/userguide/v9-dash-using-dashboards.html)  | 
| **12。图形图例** | 直接从图例中更改序列颜色、y 轴和序列可见性。 | 
| **13。控制面板搜索** | 单击**搜索**按名称或面板标题搜索控制面板。 | 
| **14。控制面板行** | 控制面板行是控制面板中的逻辑分隔线，用于将面板分组在一起。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/grafana/latest/userguide/v9-dash-using-dashboards.html)  | 

## 键盘快捷键
<a name="v9-dash-keyboard-shortcuts"></a>

Grafana 有许多键盘快捷键可供选择。要显示所有可用的键盘快捷键，请按 **?** 或键盘上的 **h** 键。
+ `Ctrl+S` 保存当前控制面板。
+ `f` 打开控制面板查找器/搜索。
+  `d+k` 切换自助服务模式（隐藏菜单）。
+ `d+e` 展开所有行。
+ `d+s` 打开控制面板设置。
+ `Ctrl+K` 打开命令调色板。
+ `Esc` 在全屏视图或编辑模式下退出面板。还可以通过控制面板设置返回控制面板。

**聚焦面板**

要使用针对特定面板的快捷方式，请将指针悬停在面板上。
+ `e` 切换面板编辑视图 
+ `v` 切换面板全屏视图 
+ `ps` 打开面板共享功能 
+ `pd` 复制面板 
+ `pr` 删除面板 
+ `pl` 切换面板图例 

## 设置控制面板时间范围
<a name="v9-dash-setting-dashboard-time-range"></a>

Grafana 提供了多种方法来管理可视化数据的时间范围，包括控制面板、面板和警报。

本节介绍了支持的时间单位和相对范围、常用时间控件、控制面板范围的时间设置以及面板特定的时间设置。

**时间单位和相对范围**

Grafana 支持以下时间单位：`s (seconds)`、`m (minutes)`、`h (hours)`、`d (days)`、`w (weeks)`、`M (months)`、`Q (quarters)` 和 `y (years)`。

减号运算符可以回退时间（相对于现在）。如果要显示单位的完整周期（日、周或月），请在末尾附加 `/<time unit>`。要查看会计期，请使用 `fQ (fiscal quarter)` 和 `fy (fiscal year)` 时间单位。

加号运算符可以快进时间（相对于现在）。例如，您可以使用此功能来查看未来的预测数据。

下表提供了相对范围示例。


| 相对范围示例 | 来源 | 目标 | 
| --- | --- | --- | 
| 过去 5 分钟 |  `now-5m`  |  `now`  | 
| 当日至今 |  `now/d`  |  `now`  | 
| 本周 |  `now/w`  |  `now/w`  | 
| 本周至今 |  `now/w`  |  `now`  | 
| 本月 |  `now/M`  |  `now/M`  | 
| 本月至今 |  `now/M`  |  `now`  | 
| 上个月 |  `now-1M/M`  |  `now-1M/M`  | 
| 本年度至今 |  `now/Y`  |  `now`  | 
| 本年度 |  `now/Y`  |  `now/Y`  | 
| 上个财年 |  `now-1y/fy`  |  `now-1y/fy`  | 

**注意**  
 Grafana Alerting 不支持将 `now+n` 用于未来时间戳，也不支持将 `now-1n/n` 用于“从 n 开始到 n 结束”**时间戳。

**常用时间范围控件**

控制面板和面板时间控件具有通用的用户界面。以下介绍了常用的时间范围控件。
+ 当前时间范围（也称为“时间选取器”**）显示您正在查看的控制面板或面板中当前显示的时间范围。将光标悬停在字段上，可查看范围内的确切时间戳及其来源（如本地浏览器）。单击“当前时间范围”**进行更改。您可以使用“相对时间范围”**（例如过去 15 分钟）或“绝对时间范围”（例如从 `2020-05-14 00:00:00` 到 `2020-05-15 23:59:59`）。
+ 可从**相对时间范围**列表中选择**相对时间范围**。您可以使用顶部的输入字段来筛选列表。时间范围的一些示例包括“过去 30 分钟”**、“过去 12 小时”**、“过去 7 天”**、“过去 2 年”**、“昨天”**、“前天”**、“上周今天”**、“本日至今”**、“本周至今”**和“本月至今”**。
+ 可通过两种方式设置**绝对时间范围**：在**从**和**到**字段中输入确切的时间值或相对时间值，然后单击**应用时间范围**，或者在单击**从**或**到**字段时，从显示的日历中单击日期或日期范围。要应用选择，请单击**应用时间范围**。

*其他时间范围功能*

1. 若要缩小，请单击 **Cmd\$1Z** 或 **Ctrl\$1Z**。单击该图标可在控制面板或面板可视化中查看更大的时间范围。

1. 若要放大，请单击并拖动以选择要在可视化中查看的时间范围。

**注意**  
放大仅适用于图形可视化。

*刷新控制面板*

单击**刷新控制面板**图标可立即运行控制面板上的所有查询，并刷新可视化。触发刷新时，Grafana 会取消所有待处理的请求。

默认情况下，Grafana 不会自动刷新控制面板。根据面板设置，按自己的时间表运行查询。但是，如果要定期刷新控制面板，请单击**刷新控制面板**图标旁边的向下箭头，然后选择刷新间隔。

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

您可以通过在控制面板 URL 中提供以下查询参数来控制面板的时间范围。
+ `from` 定义时间范围的下限（以毫秒纪元为单位指定）或[相对时间](#v9-dash-setting-dashboard-time-range)。
+ `to` 定义时间范围的上限（以毫秒纪元为单位指定）或相对时间。
+ `time` 和 `time.window` 定义了从 `time-time.window/2` 到 `time+time.window/2` 的时间范围。两个参数均应以毫秒为单位指定。例如，`?time=1500000000000&time.window=10000` 将得出 10 秒的时间范围，从 1499999995000 到 1500000005000。

# 构建控制面板
<a name="v9-dash-building-dashboards"></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 工作区并登录后，您可以创建控制面板并修改设置以满足您的需求。

**Topics**
+ [创建控制面板](v9-dash-creating.md)
+ [添加或编辑面板](v9-dash-edit-panels.md)
+ [修改控制面板设置](v9-dash-modify-settings.md)
+ [控制面板 URL 变量](v9-dash-dashboard-url-variables.md)
+ [向控制面板添加库面板](v9-dash-manage-library-panels.md)
+ [管理控制面板版本历史记录](v9-dash-manage-version-history.md)
+ [管理控制面板链接](v9-dash-manage-dashboard-links.md)
+ [控制面板 JSON 模型](v9-dash-dashboard-json-model.md)

# 创建控制面板
<a name="v9-dash-creating"></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 以可视化形式显示数据。每个面板至少需要一次查询才能显示可视化效果。在开始之前，请满足以下先决条件。
+ 确保您拥有适当的权限。有关权限的更多信息，请参阅 [用户、团队和权限](Grafana-administration-authorization.md)。
+ 确定要向其中添加面板的控制面板。
+ 了解目标数据来源的查询语言。
+ 确保已添加要为其编写查询的数据来源。

 创建控制面板：

1. 登录 Grafana，将光标悬停在**控制面板**上，然后单击 **\$1 新建控制面板**。

1. 单击**添加新面板**。

1. 在**查询**选项卡的第一行中，单击下拉列表并选择数据来源。

1. 使用数据来源的查询语言编写或构造查询。

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

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

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

**配置重复行**

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

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

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

1. 在控制面板主页上，单击**添加面板**。

1. 在**添加面板**对话框中，单击**添加新行**。

1. 将鼠标悬停在行标题上，然后单击齿轮图标。

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

**移动面板**

1. 打开控制面板。

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

**调整面板大小**

1. 打开控制面板。

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

# 添加或编辑面板
<a name="v9-dash-edit-panels"></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)。

创建控制面板后，您可以随时添加、编辑或删除面板。
+ **查看控制面板**：要查看控制面板，请从 **主页**菜单中选择**控制面板**，然后选择要查看的控制面板。您可能要展开包含控制面板的文件夹。
+ **添加面板**：要向控制面板添加面板，请选择页面顶部附近的菜单栏中的**添加面板**图标。
+ **编辑面板**：要编辑控制面板上的现有面板，请选择鼠标悬停在面板上时显示的菜单图标，然后选择**编辑**。
+ **删除面板**：要删除控制面板上的现有面板，请选择鼠标悬停在面板上时显示的菜单图标，然后选择**删除**。

# 修改控制面板设置
<a name="v9-dash-modify-settings"></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)。

您可以在控制面板设置页面上：
+ 编辑控制面板的常规属性，包括时间设置。
+ 添加注释查询。
+ 添加控制面板变量。
+ 添加链接。
+ 查看控制面板 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 值。
+ **隐藏时间选取器**可删除 Grafana 时间选取器显示屏幕。

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

**添加注释查询**

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

**添加注释查询**

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

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

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

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

查询编辑器 UI 会根据您选择的数据来源而变化。有关如何构造查询的详细信息，请参阅[数据来源](AMG-data-sources.md)文档。

**添加变量**

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

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

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

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

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

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

**添加链接**

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

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

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

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

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

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

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

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

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

# 控制面板 URL 变量
<a name="v9-dash-dashboard-url-variables"></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 可以应用在控制面板中作为查询参数传递的变量值。 URLs有关更多信息，请参阅[管理控制面板链接](v9-dash-manage-dashboard-links.md)以及[模板和变量](v9-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 可以将变量添加到控制面板链接中。有关添加变量的更多信息和步骤，请参阅[管理控制面板链接](v9-dash-manage-dashboard-links.md)。

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

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

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

例如，在此 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="v9-dash-manage-library-panels"></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)。

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

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

**创建库面板**

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

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

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

1. 要打开**创建**对话框，请单击**库面板**选项，然后单击**创建库面板**。

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

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

1. 要保存更改，请单击**创建库面板**。

1. 要保存控制面板，请单击**保存**。

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

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

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

1. 将鼠标悬停在左侧菜单的**控制面板**选项上，然后从下拉选项中选择**新建控制面板**。此时将打开**添加面板**对话框。

1. 单击从面板库中**添加面板**选项。您将看到库面板的列表。

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

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

**取消链接库面板**

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

1. 将鼠标悬停在左侧菜单的**控制面板**上，然后单击**库面板**。

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

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

1. 单击面板标题，然后单击**编辑**。该面板将在编辑模式下打开。

1. 单击页面右上角的**取消链接**选项。

**查看库面板列表**

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

1. 将鼠标悬停在左侧菜单的**控制面板**选项上，然后单击**库面板**。您可以看到先前定义的库面板列表。

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

**删除库面板**

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

1. 将鼠标悬停在左侧菜单的**控制面板**上，然后选择**库面板**。

1. 选择要删除的面板。

1. 单击库名称旁边的删除图标。

# 管理控制面板版本历史记录
<a name="v9-dash-manage-version-history"></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)。

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

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

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

要比较两个控制面板版本，请从列表中选择要比较的两个版本。单击**比较版本**以查看两个版本之间的差异。

单击按钮后，您将转到差异视图。默认情况下，您将看到更改的文本摘要。

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

如果想要恢复到要比较的版本，可以单击右上角的**恢复到版本 <x>** 按钮来实现。

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

如果需要恢复到之前保存的控制面板版本，可以单击控制面板版本列表中一行右侧的**恢复**按钮，也可以单击差异视图中出现的**恢复到版本 <x>** 按钮。单击该按钮将弹出以下弹出窗口，提示您确认恢复。

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

# 管理控制面板链接
<a name="v9-dash-manage-dashboard-links"></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 支持控制面板链接、面板链接和数据链接。控制面板链接显示在控制面板顶部。单击面板左上角的图标即可访问面板链接。

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

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

下一步是找出哪种链接类型适合您的工作流程。尽管 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 问题](https://github.com/grafana/grafana/issues/new?title=Dashboard%3A%20HTTP%20Requests)。

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

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

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

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

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

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

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

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

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

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

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

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

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

1. 从下面选择链接选项。
   + **URL**：输入要链接的 URL。根据目标，您可能希望包含字段值。有关更多信息，请参阅此 [Github 示例](https://github.com/grafana/grafana/issues/new?title=Dashboard%3A%20HTTP%20Requests)。
   + **标题**：输入您希望链接显示的标题。
   + **标题**：输入您希望链接显示的工具提示。
   + **图标**：选择要与链接一起显示的图标。
   + **时间范围**：选择此选项可在链接中包含控制面板的时间范围。当用户单击链接时，链接的控制面板将会打开，并显示设置的指示时间范围。
     + `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. 单击 **Add（添加）**。

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

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

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

1. 更改设置，然后单击**更新**。

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

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

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

要删除现有控制面板链接，请单击要删除的重复图标旁边的垃圾桶图标。

**面板链接**

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

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

  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. 单击**编辑**（铅笔）图标打开编辑链接窗口。

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

  1. 单击**保存**以保存更改并关闭窗口。

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

  1. 在**面板**选项卡上，找到要更改的链接。

  1. 单击要删除的链接旁边的 **X** 图标。

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

# 控制面板 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"
      }
    ]
  }
```

# 管理控制面板
<a name="v9-dash-managing-dashboards"></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)。

控制面板由一个或多个[面板](v9-panels.md)组成，可将您的数据直观地呈现为一行或多行。

有关创建控制面板的更多信息，请参阅[添加和整理面板]()。

## 创建控制面板文件夹
<a name="v9-dash-create-dashboard-folder"></a>

文件夹有助于整理和分组控制面板，这在您有许多控制面板或多个团队使用同一 Grafana 实例时非常有用。

**先决条件**

确保您拥有 Grafana 管理员权限。有关控制面板权限的更多信息，请参阅[控制面板权限](Grafana-administration-authorization.md)。

**创建控制面板文件夹**

1. 登录 Grafana，在侧边菜单上，单击**控制面板 > 新建文件夹**

1. 输入唯一名称，然后单击**创建**。

**注意**  
保存控制面板时，您可以选择要保存控制面板的文件夹，也可以创建新文件夹。

## 管理控制面板和文件夹
<a name="v9-dash-manage-dashboard-folder"></a>

在**管理控制面板和文件夹**页面上，您可以：
+ 创建文件夹
+ 创建控制面板
+ 将控制面板移入文件夹
+ 删除多个控制面板
+ 导航到文件夹页面，您可以在其中分配文件夹和控制面板权限

**控制面板文件夹页面**

您可以在**控制面板文件夹**页面上执行以下操作：
+ 移动或删除文件夹中的控制面板。
+ 重命名文件夹（位于**设置**选项卡下）。
+ 为文件夹分配权限（由文件夹中的控制面板继承）。

要导航到控制面板文件夹页面，将鼠标悬停在控制面板搜索结果列表或**管理控制面板和文件夹**页面中的某个文件夹上时，会出现一个齿轮图标，单击此图标。

**控制面板权限**

您可以为文件夹分配权限。您分配的任何权限都将由文件夹中的控制面板继承。使用访问控制列表（ACL），可以为**组织角色**、**团队**和**用户**分配权限。

有关更多信息，请参阅[权限](Grafana-permissions.md)。

## 导出和导入控制面板
<a name="v9-dash-export-import-dashboards"></a>

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

**导出控制面板**

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

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

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

1. 选择共享图标。

1. 选择**导出**。

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

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

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

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

**导入控制面板**

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

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

1. 执行下列步骤之一。
   + 上传控制面板 JSON 文件。
   + 粘贴 [Grafana.com](https://grafana.com/) 控制面板网址。
   + 将控制面板 JSON 文本直接粘贴到文本区域。

   通过导入过程，您可以更改控制面板的名称，选择希望控制面板使用的数据来源，指定任何指标前缀（如果控制面板使用任何前缀）。

## 控制面板问题排查
<a name="v9-dash-troubleshooting"></a>

本节提供了一些信息来帮助您解决控制面板中的常见问题。

**控制面板运行缓慢**

如果控制面板运行缓慢，请考虑以下方面：
+ 您是否尝试在图形上渲染数十（或数百或数千）个时间序列？ 这可能会导致浏览器延迟。尝试使用 highestMax（Graphite）等函数来减少返回的序列。
+ 有时，序列名称可能非常大。这会导致响应大小变大。尝试使用别名来减小返回的序列名称大小。
+ 您是查询多个时间序列还是查询较长的时间范围？ 这两种情况都可能导致 Grafana 或您的数据来源提取大量数据，从而减慢速度。
+ 可能导致您的网络基础设施负载过高。如果缓慢程度不一致，这可能就是问题所在。

**控制面板刷新率问题**

默认情况下，Grafana 每 30 秒查询一次数据来源。在控制面板上设置低刷新率会给后端造成不必要的压力。在许多情况下，不需要频繁地查询，因为数据不会发送到系统，可以看到变化。

如果遇到此问题，建议使用以下解决方案。
+ 除非需要，否则请勿在控制面板、面板或变量上启用自动刷新。用户可以手动刷新浏览器，也可以将刷新率设置为合理的时间段（例如每十分钟或每小时）。
+ 如果需要，则将刷新率设置为每分钟一次。用户可以随时手动刷新控制面板。
+ 如果控制面板的时间段较长（例如一周），则可能不需要自动刷新。

**处理或呈现的 null 数据发生错误或令人困惑**

有些应用程序会间歇性地发布数据。例如，仅在事件发生时发布指标。默认情况下，Grafana 图形会在数据点之间用线连接。

# 共享控制面板和面板
<a name="v9-dash-sharing"></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 允许您与组织内的其他用户共享控制面板和面板，在某些情况下，还可以在 Web 上公开共享。您可以使用以下方式共享：
+ 直接链接
+ 快照
+ 导出链接（仅适用于控制面板）

您必须拥有授权查看者权限，才能查看通过直接链接渲染的图像。

除非您为 Grafana 实例启用了匿名访问权限，否则查看嵌入式链接也需要相同的权限。

以快照形式共享面板或控制面板时，快照（拍摄快照时的面板或控制面板）将在 Web 上公开发布。任何拥有链接的人都可以访问快照。由于快照不需要任何授权即可查看，因此 Grafana 会删除与快照来源账户相关的信息，以及快照中的任何敏感数据。

## 共享控制面板
<a name="v9-dash-share-dashboard"></a>

您可以将控制面板以直接链接或快照的形式共享。您也可以导出控制面板。

**注意**  
如果更改控制面板，请确保在共享之前保存更改。

1. 导航到 Grafana 实例的主页。

1. 单击顶部导航中的共享图标。

   共享对话框将打开并显示**链接**选项卡。

**共享直接链接**

**链接**选项卡显示当前时间范围、模板变量和默认主题。您还可以共享短 URL。

1. 单击**副本**。此操作将默认或短 URL 复制到剪贴板。

1. 将复制的 URL 发送给有权查看链接的 Grafana 用户。

**发布快照**

控制面板快照公开共享交互式控制面板。Grafana 会去除敏感数据，例如查询（指标、模板和注释）和面板链接，仅保留嵌入在控制面板中的可见指标数据和序列名称。任何拥有链接的人都可以访问控制面板快照。

您可以将快照发布到本地实例。

1. 单击**本地快照**。

1. Grafana 会生成快照的链接。复制快照链接，然后在组织内部或在 Web 上公开共享。

**导出控制面板**

Grafana 控制面板可以轻松导出和导入。有关更多信息，请参阅[导入和导出控制面板](v9-dash-managing-dashboards.md#v9-dash-export-import-dashboards)。

## 共享面板
<a name="v9-dash-share-panel"></a>

您可以将面板以直接链接或快照的形式共享。您也可以使用任何面板的**共享**选项来创建库面板。

1. 单击面板标题以打开面板菜单。

1. 单击**共享**。共享对话框将打开并显示**链接**选项卡。

**使用直接链接**

**链接**选项卡显示当前时间范围、模板变量和默认主题。您可以选择启用短 URL 以进行共享。

1. 单击**复制**将默认或短 URL 复制到剪贴板。

1. 将复制的 URL 发送给有权查看链接的 Grafana 用户。

1. 您也可以单击**直接链接渲染图像**，共享面板的图像。

**查询服务器端渲染图像的字符串参数**
+ **width**：宽度（像素）。默认值为 800。
+ **height**：高度（像素）。默认值为 400。
+ **tz**：时区格式 `UTC%2BHH%3AMM`，其中 HH 和 MM 在 UTC 之后以小时和分钟为单位偏移。
+ **timeout**：秒数。如果查询面板所需的时间超过默认的 30 秒，则可以延长超时时间。
+ **scale**：用于配置设备比例因子的数值。默认值为 1。使用较高的值可生成更详细的图像（更高的 DPI）。Grafana 7.0\$1 支持。

**发布快照**

面板快照公开共享交互式面板。Grafana 会去除敏感数据，仅保留控制面板中嵌入的可见指标数据和序列名称。任何拥有链接的人都可以访问面板快照

您可以将快照发布到本地实例。

1. 在**共享面板**对话框中，单击**快照**以打开选项卡。

1. 单击**本地快照**。Grafana 会生成快照的链接。

1. 复制快照链接，然后在组织内部或在 Web 上公开共享。

如果您创建的快照有误，请单击**删除快照**，从 Grafana 实例中删除快照。

**创建库面板**

从**共享面板**对话框创建库面板。

1. 单击**库面板**。

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

1. 在**保存在文件夹**中，选择要保存库面板的文件夹。默认情况下，选择**常规**文件夹。

1. 单击**创建库**面板以保存更改。

1. 单击**保存**以保存控制面板。

# 管理播放列表
<a name="v9-dash-managing-playlists"></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 可自动将控制面板缩放为任何分辨率，因此非常适合大屏幕使用。您可以从**控制面板**子菜单中的 Grafana 侧边菜单访问播放列表功能。

## 访问、共享和控制播放列表
<a name="v9-dash-access-share-control-playlist"></a>

使用本节中的信息访问现有播放列表。可通过五种可用模式启动和控制播放列表的显示。

**访问播放列表**

1. 将光标悬停在 Grafana 的侧边菜单上。

1. 单击**播放列表**。

   您将看到现有播放列表。

**启动播放列表**

您可以在五种不同的视图模式下启动播放列表。视图模式决定了菜单和导航栏在控制面板上的显示方式。

默认情况下，每个控制面板都会显示在**间隔**字段中输入的时间量，该时间量是您在创建或编辑播放列表时设置的。启动播放列表后，可通过页面顶部的导航栏来控制。

播放列表在 `Interval` 字段中指定的时间内显示每个控制面板，该时间是在创建或编辑播放列表时设置的。启动播放列表后，可通过页面顶部的导航栏来控制。

1. 访问播放列表页面以查看现有播放列表的列表。

1. 找到要启动的播放列表，然后单击**启动播放列表**。

   此时将打开启动播放列表对话框。

1. 根据下表中的信息，从五种可用的播放列表模式中选择一种。

1. 单击开始。


| Mode | 说明 | 
| --- | --- | 
| 正常模式 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/grafana/latest/userguide/v9-dash-managing-playlists.html)  | 
| 电视模式 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/grafana/latest/userguide/v9-dash-managing-playlists.html)  | 
| 电视模式（带有自动调整面板） |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/grafana/latest/userguide/v9-dash-managing-playlists.html)  | 
| 自助服务模式 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/grafana/latest/userguide/v9-dash-managing-playlists.html)  | 
| 自助服务模式（带有自动调整面板） |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/grafana/latest/userguide/v9-dash-managing-playlists.html)  | 

**控制播放列表**

启动播放列表后，可通过屏幕顶部的导航栏，在**正常**或**电视**模式下控制播放列表。按下键盘上的 `Esc` 键停止播放列表。


| 按钮 | Action | 
| --- | --- | 
| 前进（双右箭头） | 前进到下一个控制面板。 | 
| 后退（向左箭头） | 返回到上一个控制面板。 | 
| 停止（方形箭头） | 结束播放列表，退出到当前控制面板。 | 
| 循环视图模式（监视器图标） | 在不同的视图模式下旋转控制面板的显示。 | 
| 时间范围 | 显示某个时间范围内的数据。使用向下箭头，可将其设置为显示最近 5 分钟至 5 年前的数据，或自定义时间范围。 | 
| 刷新（圆形箭头） | 重新加载控制面板以显示当前数据。可使用下拉箭头将其设置为每 5 秒到 1 天自动重新加载一次。 | 

## 创建播放列表
<a name="v9-dash-create-playlist"></a>

您可以创建一个播放列表，按照设定的顺序和控制面板之间的时间间隔依次显示控制面板。

1. 单击播放列表页面上的**新建播放列表**。

1. 在**名称**文本框中输入描述性名称。

1. 在**间隔**文本框中输入时间间隔。
**注意**  
您添加的控制面板将按顺序列出。

1. 在**控制面板**中，使用**按标题添加**和**按标签添加**下拉选项将现有控制面板添加到播放列表。

1. 可选：
   + 按名称、正则表达式或标签搜索控制面板。
   + 按已加星标的状态或标签筛选结果。
   + 使用向上和向下箭头图标对您添加的控制面板重新排序。
   + 单击控制面板旁边的 **X** 图标，从播放列表中删除控制面板。

1. 单击**保存**保存您的更改。

## 保存播放列表
<a name="v9-dash-save-playlist"></a>

您可以保存播放列表并将其添加到**播放列表**页面，然后在那里启动。

**重要**  
在保存播放列表之前，确保在创建或编辑播放列表时，已添加所有要显示在播放列表中的控制面板。

1. 要访问播放列表功能，将光标悬停在 Grafana 的侧边菜单上。

1. 单击**播放列表**查看可供您使用的播放列表。

1. 单击您选择的播放列表。

1. 编辑播放列表。

1. 检查播放列表中是否添加了**名称**、**间隔**和至少一个**控制面板**。

1. 单击**保存**保存您的更改。

## 编辑或删除播放列表
<a name="v9-dash-edit-delete-playlist"></a>

在编辑播放列表时，您可以更新播放列表的名称和间隔时间，添加、删除控制面板并重新排序。

**编辑播放列表**

1. 单击播放列表页面上的**编辑播放列表**。

1. 更新名称和时间间隔，然后按照上面创建播放列表中的说明，在播放列表中添加或删除控制面板。

1. 单击**保存**保存您的更改。

**删除播放列表**

1. 单击**播放列表**。

1. 单击要删除的播放列表旁边的**删除**。

**重新排列控制面板顺序**

1. 在要移动的控制面板旁边，单击向上或向下箭头。

1. 单击**保存**保存您的更改。

**移除控制面板**

1. 单击**删除**将控制面板从播放列表中删除。

1. 单击**保存**保存您的更改。

## 在视图模式下共享播放列表
<a name="v9-dash-share-playlist-view-mode"></a>

在共享播放列表时，您可以在首选的视图模式下复制链接地址，然后将 URL 粘贴到目标。

1. 在**控制面板**子菜单中，单击**播放列表**。

1. 单击要共享的播放列表旁边的**启动播放列表**。

1. 在下拉列表中，右键单击首选视图模式。

1. 单击**复制链接地址**将 URL 复制到剪贴板。

1. 将 URL 粘贴到目标。

# 添加和管理控制面板变量
<a name="v9-dash-variables"></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 查看器能够快速调整可视化效果，但又不想授予其完全编辑权限的管理员来说，这些功能尤其有用。Grafana 查看器可以使用变量。

变量和模板还允许您使用单一来源控制面板。如果有多个相同的数据来源或服务器，则可以创建一个控制面板，使用变量来更改您查看的内容。这极大地简化了维护和保养。

**模板**

模板是任何包含变量的查询。例如，如果要管理一个控制面板来监控多个服务器，则可以为每个服务器创建一个控制面板，也可以创建一个控制面板并使用带有模板查询的面板，如下所示。

```
wmi_system_threads{instance=~"$server"}
```

变量值始终使用语法 var-<varname>=value 同步到 URL。

**示例**

变量位于屏幕顶部的下拉列表中。选择不同的变量，查看可视化效果的变化。

要查看变量设置，请导航到**控制面板设置 > 变量**。单击列表中的变量以查看其设置。 

变量可用于标题、描述、文本面板和查询。以 `$` 开头的文本为模板查询。并非所有面板都有模板查询。

**变量最佳实践**
+ 变量下拉列表按照**控制面板设置**的变量列表中列出的顺序显示。
+ 将经常更改的变量放在顶部，这样它们就会显示在最前面（控制面板的最左边）。

# 添加和管理变量
<a name="v9-dash-variable-add"></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 附带的变量类型。


| 变量类型 | 说明 | 
| --- | --- | 
|  Query  |  查询生成的值列表，例如指标名称、服务器名称、传感器 IDs、数据中心等。添加查询变量。  | 
|  自定义  |  使用逗号分隔的列表手动定义变量选项。添加自定义变量。  | 
|  Text box（文本框）  |  显示带有可选默认值的自由文本输入字段。添加文本框变量。  | 
|  常量  |  定义隐藏的常量。添加常量变量。  | 
|  数据来源  |  快速更改整个控制面板的数据来源。添加数据来源变量。  | 
|  Interval  |  间隔变量表示时间跨度。添加间隔变量。  | 
|  临时筛选条件  |  自动添加到数据来源（仅限 Prometheus、Loki、InfluxDB 和 Elasticsearch）的所有指标查询中的键值筛选条件。添加临时筛选条件。  | 
|  全局变量  |  可在查询编辑器的表达式中使用的内置变量。参考全局变量。  | 
|  链式变量  |  变量查询可以包含其他变量。请参考链式变量。  | 

## 输入常规选项
<a name="v9-dash-variable-options"></a>

您必须为创建的任何类型的变量输入常规选项。

**输入常规选项**

1. 导航到要为其设置变量的控制面板，然后选择页面顶部的**控制面板设置**（齿轮）图标。

1. 在**变量**选项卡上，选择**新建**。

1. 输入变量的**名称**。

1. 在**类型**列表中，选择**查询**。

1. （可选）在**标签**中，输入变量下拉列表的显示名称。

   如果未输入显示名称，则下拉标签就是变量名称。

1. 选择**隐藏**选项：
   + **无选择（空白）：**变量下拉列表显示变量**名称**或**标签**值。
   + **标签：**变量下拉列表仅显示选定变量值和向下箭头。
   + **变量：**控制面板上不显示变量下拉列表。

## 添加查询变量
<a name="v9-dash-variable-add-query"></a>

通过查询变量，您可以编写数据来源查询，该查询可返回指标名称、标签值或键的列表。例如，查询变量可能返回服务器名称 IDs、传感器或数据中心的列表。变量值在使用数据来源查询动态获取选项时会发生变化。

查询变量通常仅支持字符串。如果您的查询返回数字或任何其他数据类型，则可能需要将其转换为字符串，才能将其用作变量。例如，对于 Azure 数据来源，您可以使用 [tostring](https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/tostringfunction) 函数来实现此目的。

查询表达式可以包含对其他变量的引用，实际上就是创建链接变量。Grafana 会检测到这一点，并在其中一个链接变量发生变化时自动刷新变量。

**注意**  
每个数据来源的查询表达式都不同。有关更多信息，请参阅[数据来源](AMG-data-sources.md)的文档。

**添加查询变量**

1. 如上所示，输入常规选项。

1. 在**数据来源**列表中，选择查询的目标数据来源。

1. 在**刷新**列表中，选择变量应何时更新选项。
   + **控制面板加载时：**每次加载控制面板时查询数据来源。这会减慢控制面板的加载速度，因为需要在初始化控制面板之前完成变量查询。
   + **时间范围更改时：**当控制面板时间范围发生变化时查询数据来源。仅当变量选项查询包含时间范围筛选条件或依赖于控制面板时间范围时，才使用此选项。

1. 在**查询**字段中，输入查询。
   + 查询字段因数据来源而异。某些数据来源具有自定义查询编辑器。
   + 如果单个输入字段查询编辑器中需要更多空间，请将光标悬停在字段右下角的行上，然后向下拖动以展开。

1. （可选）在**正则表达式**字段中，键入正则表达式以筛选或捕获数据来源查询返回的名称的特定部分。要查看示例，请参阅[使用正则表达式筛选变量](#v9-dash-variable-add-filter)。

1. 在**排序**列表中，选择要在下拉列表中显示的值的排序顺序。默认选项**禁用**表示使用数据来源查询返回的选项顺序。

1. （可选）输入[选择选项](#v9-dash-variable-add-selection)。

1. 在**值预览**中，Grafana 显示当前变量值的列表。查看以确保其符合您的预期。

1. 选择**添加**将变量添加到控制面板。

## 添加自定义变量
<a name="v9-dash-variable-add-custom"></a>

对不变的值（如数字或字符串）使用*自定义*变量。

例如，如果您的服务器名称或区域名称从未更改，则可能需要将其创建为自定义变量，而不是查询变量。因为其不会更改，所以可以在[链式变量](#v9-dash-variable-add-chained)中，而不是其他查询变量中使用。这将减少链式变量更新时 Grafana 必须发送的查询次数。

**添加自定义变量**

1. 如上所示，输入常规选项。

1. 在 

   **以逗号分隔的值**列表，在逗号分隔的列表中输入此变量的值。可以包含由空格和冒号分隔的数字、字符串或键值对。例如 `key1 : value1,key2 : value2`。

1. （可选）输入[选择选项](#v9-dash-variable-add-selection)。

1. 在**值预览**中，Grafana 显示当前变量值的列表。查看以确保其符合您的预期。

1. 选择**添加**将变量添加到控制面板。

## 添加文本框变量
<a name="v9-dash-variable-add-text"></a>

*文本框*变量显示带有可选默认值的自由文本输入字段。这是最灵活的变量，因为您可以输入任何值。如果您的指标具有高基数，或者您希望同时更新控制面板中的多个面板，请使用此类型的变量。

**添加文本框变量**

1. 如上所示，输入常规选项。

1. （可选）在**默认值**字段中，选择变量的默认值。如果未在此字段中输入任何内容，Grafana 会显示一个空文本框，供用户键入文本。

1. 在**值预览**中，Grafana 显示当前变量值的列表。查看以确保其符合您的预期。

1. 选择**添加**将变量添加到控制面板。

## 添加常量变量
<a name="v9-dash-variable-add-constant"></a>

*常量变量*允许定义隐藏的常量。这对于要共享的控制面板的指标路径前缀很有用。导出控制面板时，常量变量会转换为导入选项。

常量变量*不*灵活。每个常量变量仅包含一个值，除非更新变量设置，否则无法更新。

如果需要在查询中包含复杂的值，但又不想在每次查询中都重新输入，常量变量就非常有用。例如，如果有一个名为 `i-0b6a61efe2ab843gg` 的服务器路径，则可以将其替换为一个名为 `$path_gg` 的变量。

**添加常量变量**

1. 如上所示，输入常规选项。

1. 在**值**字段中，输入变量值。您可以输入字母、数字和符号。如果您使用[原始格式](https://grafana.com/docs/grafana/latest/dashboards/variables/variable-syntax/#raw)，甚至可以使用通配符。

1. 在**值预览**中，Grafana 显示当前变量值的列表。查看以确保其符合您的预期。

1. 选择**添加**将变量添加到控制面板。

## 添加数据来源变量
<a name="v9-dash-variable-add-datasource"></a>

*数据来源*变量让您可以快速更改整个控制面板的数据来源。如果您有多个数据来源实例（可能位于不同的环境中），则会很有用。

**添加数据来源变量**

1. 如上所示，输入常规选项。

1. 在**类型**列表中，选择变量的目标数据来源。

1. （可选）在**实例名称筛选条件**中，在变量值下拉列表中输入要从中选择的数据来源实例的正则表达式筛选条件。将此字段留空可显示所有实例。

1. （可选）输入[选择选项](#v9-dash-variable-add-selection)。

1. 在**值预览**中，Grafana 显示当前变量值的列表。查看以确保其符合您的预期。

1. 选择**添加**将变量添加到控制面板。

## 添加间隔变量
<a name="v9-dash-variable-add-internal"></a>

使用*间隔*变量来表示时间跨度，例如 `1m`、`1h` 或 `1d`。您可以将其视为控制面板范围内的*按时间分组*命令。间隔变量会更改数据在可视化中的分组方式。您也可以使用“自动选项”在每个时间跨度返回一定数量的数据点。

您可以使用间隔变量作为按时间分组参数（对于 InfluxDB）、日期直方图间隔（对于 Elasticsearch）或作为 summarize 函数参数（对于 Graphite）。

**添加间隔变量**

1. 如上所示，输入常规选项。

1. 在**值**字段中，输入您希望在变量下拉列表中显示的时间范围间隔。支持以下时间单位：`s (seconds)`、`m (minutes)`、`h (hours)`、`d (days)`、`w (weeks)`、`M (months)` 和 `y (years)`。您也可以接受或编辑默认值：`1m,10m,30m,1h,6h,12h,1d,7d,14d,30d`.

1. （可选）如果要将 `auto` 选项添加到列表中，请打开**自动选项**。此选项允许您指定应将当前时间范围划分多少次，来计算当前 `auto` 时间跨度。如果将其打开，则会出现另外两个选项：
   + **步数**：选择当前时间范围的划分次数以计算该值，类似于**最大数据点**查询选项。例如，如果当前可见的时间范围为 30 分钟，则 `auto` 间隔将数据分组为 30 个一分钟增量。默认值为 30 步。
   + **最小间隔：**最小阈值，低于该阈值的步数间隔不会划分时间。继续以 30 分钟为例，如果最小间隔设置为 2m，则 Grafana 会将数据分组为 15 个两分钟增量。

1. 在**值预览**中，Grafana 显示当前变量值的列表。查看以确保其符合您的预期。

1. 选择**添加**将变量添加到控制面板。

**间隔变量示例**

以下示例显示了 Graphite 函数中的模板变量 `myinterval`：

```
summarize($myinterval, sum, false)
```

## 添加临时筛选条件
<a name="v9-dash-variable-add-adhoc"></a>

*临时筛选条件*允许您添加键值筛选条件，这些筛选条件会自动添加到使用指定数据来源的所有指标查询中。与其他变量不同的是，不在查询中使用临时筛选条件。而是使用临时筛选条件为现有查询编写筛选条件。

**注意**  
临时筛选条件变量仅适用于 Prometheus、Loki、InfluxDB 和 Elasticsearch 数据来源。

1. 如上所示，输入常规选项。

1. 在**数据来源**列表中，选择目标数据来源。

1. 选择**添加**将变量添加到控制面板。

**创建临时筛选条件**

临时筛选条件是可用的最复杂、最灵活的变量选项之一。此变量让您可以构建控制面板范围的临时查询，而不是常规的变量选项列表。以这种方式应用的筛选条件将应用于控制面板上的所有面板。

## 配置变量选择选项
<a name="v9-dash-variable-add-selection"></a>

**选择选项**是一项用于管理变量选项选择的功能。所有选择选项都是可选的，默认处于关闭状态。

### 多值变量
<a name="v9-dash-variable-add-selection-multi"></a>

对选择了多个值的变量进行插值会比较麻烦，因为如何将多个值格式化为字符串，而且该字符串在使用该变量的给定上下文中有效，这不是个简单明了的过程。Grafana 试图通过允许每个数据来源插件通知模板插值引擎对多个值使用的格式来解决这个问题。

**注意**  
变量上的**自定义所有值**选项必须为空，Grafana 才能将所有值格式化为单个字符串。如果将其留空，则 Grafana 会将查询中的所有值连接（相加）。例如 `value1,value2,value3`。如果使用自定义的 `all` 值，该值将变为 `*` 或 `all`。

**具有 Graphite 数据来源的多值变量**

Graphite 使用 glob 表达式。在这种情况下，如果当前变量值为 *host1*、*host2* 和 *host3*，则具有多个值的变量将插值为 `{host1,host2,host3}`。

**具有 Prometheus 或 InfluxDB 数据来源的多值变量**

InfluxDB 和 Prometheus 使用正则表达式，因此相同的变量将插值为 `(host1|host2|host3)`。每个值也将进行正则表达式转义。否则，带有正则表达式控制字符的值将中断正则表达式。

**具有 Elastic 数据来源的多值变量**

Elasticsearch 使用 lucene 查询语法，因此相同的变量将格式化为 `("host1" OR "host2" OR "host3")`。在这种情况下，必须对每个值进行转义，使该值仅包含 lucene 控制词和引号。

**多值变量问题排查**

自动转义和格式化可能会导致问题，其背后的逻辑也很难理解。特别是对于 InfluxDB 和 Prometheus 来说，使用正则表达式语法需要在正则表达式运算符上下文中使用变量。

如果您不希望 Grafana 自动执行正则表达式转义和格式化，则必须执行下列操作之一：
+ 关闭**多值**或**包含全部选项**选项。
+ 使用[原始变量格式](https://grafana.com/docs/grafana/latest/dashboards/variables/variable-syntax/#raw)。

### 包含全部选项
<a name="v9-dash-variable-add-multi-all"></a>

Grafana 在变量下拉列表中添加了 `All` 选项。如果用户选择此选项，则会选择所有变量选项。

### 自定义所有值
<a name="v9-dash-variable-add-multi-custom"></a>

仅当选择**包含全部选项**时，此选项才可见。

在**自定义所有值**字段中输入 regex、glob 或 lucene 语法来定义 `All` 选项的值。

默认情况下，`All` 值包含组合表达式中的所有选项。该值可能会变得很长，并且可能会出现性能问题。有时，最好指定自定义 all 值，例如通配符正则表达式。

要在**自定义所有值**选项中使用自定义 regex、glob 或 lucene 语法，使其永远不会转义，因此您必须考虑数据来源的有效值。

## 全局变量
<a name="v9-dash-variable-add-global"></a>

Grafana 具有全局内置变量，可在查询编辑器的表达式中使用。本主题按字母顺序列出了这些变量，并对其进行了定义。这些变量在查询、控制面板链接、面板链接和数据链接中非常有用。

**\$1\$1\$1dashboard**

此变量是当前控制面板的名称。

**\$1\$1\$1from 和 \$1\$1\$1to**

Grafana 有两个内置的时间范围变量：`$__from` 和 `$__to`。默认情况下，当前始终插值为 epoch 毫秒，但您可以控制日期格式。


| 语法 | 示例结果 | 说明 | 
| --- | --- | --- | 
|  `${__from}`  |  1594671549254  |  Unix 毫秒 epoch  | 
|  `${__from:date}`  |  2020-07-13T20:19:09.254Z  |  无参数，默认为 ISO 8601/RFC 3339  | 
|  `${__from:date:iso}`  |  2020-07-13T20:19:09.254Z  |  ISO 8601/RFC 3339  | 
|  `${__from:date:seconds}`  |  1594671549  |  Unix 秒 epoch  | 
|  `${__from:date:YYYY-MM}`  |  2020-07  |  任何不包含 : 字符的自定义日期格式  | 

上面的语法也适用于 `${__to}`。

**\$1\$1\$1interval**

您可以使用 `$__interval` 变量作为按时间分组参数（对于 InfluxDB、MySQL、Postgres、MSSQL）、日期直方图间隔（对于 Elasticsearch）或作为 *summarize* 函数参数（对于 Graphite）。

Grafana 会自动计算一个间隔，该间隔可用于在查询中按时间分组。当数据点多于图形上显示的数据点时，可通过按更大的间隔分组来提高查询的效率。例如，如果您正在查看包含 3 个月数据的图形，则可能无法看到分钟级别的详细信息。按小时或天分组可以提高查询效率，而不会影响图形显示的内容。`$__interval` 是使用时间范围和图形宽度（像素数）计算得出的。

近似计算：`(to - from) / resolution`

例如，当时间范围为 1 小时且图形为全屏时，则可以将间隔计算为 `2m`，点按 2 分钟间隔分组。如果时间范围为 6 个月且图形为全屏时，则间隔可能是 `1d`（1 天），点按天分组。

在 InfluxDB 数据来源中，传统变量 `$interval` 是同一个变量。应改为使用 `$__interval`。

InfluxDB 和 Elasticsearch 数据源具有 `Group by time interval` 字段，用于对间隔进行硬编码或设置 `$__interval` 变量的最小限制（使用 `>` 语法 -> `>10m`）。

**\$1\$1\$1interval\$1ms**

此变量是以毫秒为单位的 `$__interval` 变量，而不是时间间隔格式的字符串。例如，如果 `$__interval` 为 `20m`，则 `$__interval_ms` 为 `1200000`。

**\$1\$1\$1org**

此变量是当前组织的 ID。`${__org.name}` 是当前组织的名称。

**\$1\$1\$1user**

`${__user.id}` 是当前用户的 ID。`${__user.login}` 是当前用户的登录句柄。`${__user.email}` 是当前用户的电子邮件。

**\$1\$1\$1range**

目前仅支持 Prometheus 和 Loki 数据来源。此变量表示当前控制面板的范围。由 `to - from` 计算得出。此变量有毫秒和秒两种表示形式，分别称为 `$__range_ms` 和 `$__range_s`。

**\$1\$1\$1rate\$1interval**

目前仅支持 Prometheus 数据来源。`$__rate_interval` 变量旨在用于 rate 函数。

**\$1timeFilter 或 \$1\$1\$1timeFilter**

`$timeFilter` 变量以表达式形式返回当前选定的时间范围。例如，时间范围间隔 `Last 7 days` 表达式为 `time > now() - 7d`。

可在多个地方使用，包括：
+ InfluxDB 数据来源的 WHERE 子句。在查询编辑器模式下，Grafana 会自动将其添加到 InfluxDB 查询。您可以在文本编辑器模式下手动添加：`WHERE $timeFilter`。
+ 在 Azure Monitor 数据来源中记录分析查询。
+ MySQL、Postgres 和 MSSQL 中的 SQL 查询。
+ `$__timeFilter` 变量用于 MySQL 数据来源。

## 链式变量
<a name="v9-dash-variable-add-chained"></a>

*链式变量*，也称为*链接变量*或*嵌套变量*，是变量查询中包含一个或多个其他变量的查询变量。本节说明了链式变量的工作原理，并提供了指向使用链式变量的示例控制面板的链接。

每个数据来源的链式变量查询都不同，但前提都是一样的。您可以在任何允许的数据来源中使用链式变量查询。

可以使用极为复杂的链接模板控制面板，深度为 5 或 10 级。从技术上讲，深度和复杂程度没有限制，但链接越多，查询负荷就越大。

**最佳实践和提示**

以下做法可使您的控制面板和变量更易于使用。

**创建新的链接变量**
+ 链接变量会产生 parent/child 依赖关系。您可以将其想象成梯子或树。
+ 创建新的链式变量的最简单方法是复制要作为新变量基础的变量。在变量列表中，单击变量条目右侧的**复制变量**图标以创建副本。然后，您就可以为父变量添加查询。
+ 通过这种方式创建的新变量显示在列表的底部。您可能需要将其拖动到列表中的其他位置，以使其按逻辑顺序排列。

**变量顺序**

您可以通过单击每个条目右侧的向上和向下箭头，来更改控制面板变量列表中变量的顺序。Grafana 根据此列表从左到右列出变量下拉列表，变量位于最左侧的顶部。
+ 在顶部列出没有依赖关系的变量，放在其子变量之前。
+ 每个变量都应遵循其依赖的变量。
+ 请记住，UI 中没有指示哪些变量具有依赖关系。按逻辑顺序列出变量，以方便其他用户（和您自己）使用。

**复杂性考虑**

变量中的依赖关系层越多，更改变量后更新控制面板所需的时间就越长。

例如，如果您有一系列四个链接变量（国家、地区、服务器、指标），并更改了根变量值（国家），Grafana 必须先对所有因变量运行查询，然后才能更新控制面板中的可视化。

## 管理变量
<a name="v9-dash-variable-add-manage"></a>

您可以在变量页面上[添加](https://grafana.com/docs/grafana/latest/dashboards/variables/add-template-variables/)变量和管理现有变量。还可以[检查](https://grafana.com/docs/grafana/latest/dashboards/variables/inspect-variable/)变量，并确定变量是否在其他变量或控制面板中被引用（或使用）。

**移动：**您可以使用拖放操作在列表中上下移动变量。

**克隆：**要克隆变量，请单击右侧图标集中的克隆图标。这将创建一个变量的副本，其原始变量的名称前缀为 `copy_of_`。

**删除：**要删除变量，请单击右侧图标集中的垃圾桶图标。

## 使用正则表达式筛选变量
<a name="v9-dash-variable-add-filter"></a>

通过 Regex Query 选项，您可以筛选变量查询返回的选项列表或修改返回的选项。

本页展示了如何使用正则表达式来处理变量下 filter/modify 拉列表中的值。

通过 Regex Query 选项，您可以筛选变量查询返回的选项列表或修改返回的选项。有关更多信息，请参阅 Mozilla [正则表达式](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)指南。

以下示例显示了对以下选项列表的筛选

```
backend_01
backend_02
backend_03
backend_04
```

**筛选以仅返回以 `01` 或 `02` 结尾的选项**

正则表达式：

```
/
(
01|02 
) 
$/
```

结果：

```
backend_01
backend_02
```

**使用正则表达式捕获组筛选和修改选项以返回部分文本**

正则表达式：

```
/.* 
(
01|02 
)
/
```

结果：

```
01
02
```

**筛选和修改：Prometheus 示例**

选项列表：

```
up{instance="demo.robustperception.io:9090",job="prometheus"} 1 1521630638000
up{instance="demo.robustperception.io:9093",job="alertmanager"} 1 1521630638000
up{instance="demo.robustperception.io:9100",job="node"} 1 1521630638000
```

正则表达式：

```
/. *instance="
(
[^"]*
)
.*/
```

结果：

```
demo.robustperception.io:9090
demo.robustperception.io:9093
demo.robustperception.io:9100
```

**使用命名文本和值捕获组进行筛选和修改**

使用命名捕获组，您可以从变量查询返回的选项中捕获单独的“文本”和“值”部分。这样，变量下拉列表中的每个可选值都会包含友好的名称。

例如，在查询 `node_hwmon_chip_names` Prometheus 指标时，`chip_name` 比 `chip` 值更友好。因此，以下变量查询结果：

```
node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_0",chip_name="enp216s0f0np0"} 1
node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_1",chip_name="enp216s0f0np1"} 1
node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_2",chip_name="enp216s0f0np2"} 1
node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_3",chip_name="enp216s0f0np3"} 1
```

通过以下正则表达式传递：

```
/chip_name="(?<text>[ ^ " ] + ) |chip=" (?<value >[ ^ " ] + )/g
```

将生成以下下拉列表：

```
Display Name          Value
------------          -------------------------
enp216s0f0np0         0000:d7:00_0_0000:d8:00_0
enp216s0f0np1         0000:d7:00_0_0000:d8:00_1
enp216s0f0np2         0000:d7:00_0_0000:d8:00_2
enp216s0f0np3         0000:d7:00_0_0000:d8:00_3
```

仅支持 `text` 和 `value` 捕获组名称。

## 
<a name="v9-dash-variable-add-inspect"></a>

您可以在变量页面上轻松识别变量是否在其他变量或控制面板中被引用（或使用）。

任何被引用或使用的变量旁边都有一个绿色的复选标记，而未引用的变量旁边有一个橙色的警告图标。此外，所有引用的变量在绿色复选标记旁边都有一个依赖关系图标。您可以选择图标来查看依赖关系图。依赖关系图可以移动。您可以使用鼠标滚轮或等效工具来放大或缩小。

# 变量语法
<a name="v9-dash-variable-syntax"></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)。

面板标题和指标查询可以使用两种不同的语法来引用变量。
+ `$varname`：此语法易于读取，但不能在词中间使用变量。

  **示例**：`apps.frontend.$server.requests.count`
+ `${var_name}`：如果要在表达式中间使用变量，请使用此语法。
+ `${var_name:<format>}`：此格式让您可以更好地控制 Grafana 如何解释值。有关更多信息，请参阅*高级变量格式选项*。
+ `[[varname]]`：请勿使用。此语法已过时，不再使用。这将在未来版本中删除。

在将查询发送到数据来源之前，会对查询进行*插值*，这意味着变量将替换为当前值。在插值过程中，变量值可能会被*转义*，以符合查询语言的语法和使用场合。例如，InfluxDB 或 Prometheus 查询中的正则表达式中使用的变量将被正则表达式转义。

**高级变量格式选项**

变量插值的格式取决于数据来源，但在某些情况下，可能需要更改默认格式。

例如，MySQL 数据来源的默认格式是以逗号分隔的形式联接多个值，并使用引号：`'server01','server02'`。在某些情况下，您可能希望使用逗号分隔的字符串，但不使用引号：`server01,server02`。您可以使用下面列出的高级变量格式选项来实现这一点。

**一般语法**

语法：`${var_name:option}`

如果指定了任何无效的格式选项，`glob`则为该 default/fallback 选项。

**CSV**

将具有多个值的变量格式化为逗号分隔的字符串。

```
servers = [ 'test1',  'test2' ]
String to interpolate:  '${servers:csv}'
Interpolation result:  'test1,test2'
```

**分布式 OpenTSDB**

以 OpenTSDB 自定义格式来格式化具有多个值的变量。

```
servers = [ 'test1',  'test2' ]
String to interpolate:  '${servers:distributed}'
Interpolation result:  'test1,servers=test2'
```

**Doublequote**

将单值和多值变量格式化为逗号分隔的字符串，在每个值中使用 `\"` 对 `"` 进行转义，并在每个值两侧加上 `"`。

```
servers = [ 'test1',  'test2' ]
String to interpolate:  '${servers:doublequote}'
Interpolation result:  '"test1","test2"'
```

**Glob - Graphite**

将具有多个值的变量格式化为 glob（用于 Graphite 查询）。

```
servers = [ 'test1',  'test2' ]
String to interpolate:  '${servers:glob}'
Interpolation result:  '{test1,test2}'
```

**JSON**

将具有多个值的变量格式化为逗号分隔的字符串。

```
servers = [ 'test1',  'test2' ]
String to interpolate:  '${servers:json}'
Interpolation result:  '["test1", "test2"]'
```

**Lucene - Elasticsearch**

将具有多个值的变量格式化为适用于 Elasticsearch 的 Lucene 格式。

```
servers = [ 'test1',  'test2' ]
String to interpolate:  '${servers:lucene}'
Interpolation result:  '("test1" OR "test2")'
```

**Percentencode**

格式化单值和多值变量，供 URL 参数使用。

```
servers = [ 'foo()bar BAZ',  'test2' ]
String to interpolate:  '${servers:percentencode}'
Interpolation result:  'foo%28%29bar%20BAZ%2Ctest2'
```

**Pipe**

将具有多个值的变量格式化为以竖线分隔的字符串。

```
servers = [ 'test1.',  'test2' ]
String to interpolate:  '${servers:pipe}'
Interpolation result:  'test1.|test2'
```

**Raw**

关闭特定于数据来源的格式化，如 SQL 查询中的单引号。

```
servers = [ 'test.1',  'test2' ]
String to interpolate:  '${var_name:raw}'
Interpolation result:  'test.1,test2'
```

**Regex (正则表达式)**

将具有多个值的变量格式化为正则表达式字符串。

```
servers = [ 'test1.',  'test2' ]
String to interpolate:  '${servers:regex}'
Interpolation result:  '(test1\.|test2)'
```

**Singlequote**

将单值和多值变量格式化为逗号分隔的字符串，在每个值中使用 `\'` 对 `'` 进行转义，并在每个值两侧加上 `'`。

```
servers = [ 'test1',  'test2' ]
String to interpolate:  '${servers:singlequote}'
Interpolation result:  "'test1','test2'"
```

**Sqlstring**

将单值和多值变量格式化为逗号分隔的字符串，在每个值中使用 `''` 对 `'` 进行转义，并在每个值两侧加上 `'`。

```
servers = [ "test'1",  "test2" ]
String to interpolate:  '${servers:sqlstring}'
Interpolation result:  "'test''1','test2'"
```

**文本**

将单值和多值变量格式化为其文本表示形式。对于单个变量，仅返回文本表示形式。对于多值变量，将返回与 `+` 组合的文本表示形式。

```
servers = [ "test1",  "test2" ]
String to interpolate:  '${servers:text}'
Interpolation result:  "test1 + test2"
```

**查询参数**

将单值和多值变量格式化为其查询参数表示形式。示例：`var-foo=value1&var-foo=value2`

```
servers = [ "test1",  "test2" ]
String to interpolate:  '${servers:queryparam}'
Interpolation result:  "var-servers=test1&var-servers=test2"
```

# 评测控制面板使用情况
<a name="v9-dash-assess-dashboard-usage"></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 实例的使用情况。

使用情况见解功能可收集大量聚合数据，并将其存储在数据库中。
+ 控制面板视图（聚合视图和每个用户视图）
+ 数据来源错误
+ 数据来源查询

聚合数据使您可以访问多种功能，包括控制面板和数据来源见解、状态指示器，使用见解数据对控制面板排序，在控制面板中可视化使用情况见解数据。

此功能还可生成详细日志，并导出到 Loki。

## 控制面板和数据来源见解
<a name="v9-dash-insights"></a>

对于每个控制面板和数据来源，您可以访问使用情况信息。

**控制面板见解**

要查看控制面板使用情况信息，请单击顶部栏中的**控制面板见解**。

控制面板见解显示以下信息。
+ **统计信息**：过去 30 天的每日查询和错误数。
+ **用户和活动**：过去 30 天的每日浏览次数；控制面板上最近的活动和最近的用户（上限为 20 个）。

**数据来源见解**

数据来源见解提供了过去 30 天内数据来源使用情况的信息，例如：
+ 每日查询数
+ 每日错误数
+ 每日查询加载时间（平均毫秒数）

查找数据来源见解：

1. 转到**数据来源**列表视图。

1. 单击**数据来源**。

1. 单击**见解**选项卡。

## 状态指示器
<a name="v9-dash-presence-indicator"></a>

在登录并查看控制面板时，您可以通过状态指示器了解谁在与您查看同一控制面板，该指示器显示最近与控制面板交互的用户的头像。默认时间范围为 10 分钟。要查看用户的姓名，请将鼠标悬停在用户头像上。头像来自 [Gravatar](https://gravatar.com/)，基于用户的电子邮件。

当控制面板上的活动用户数量超出状态指示器的容纳范围时，请单击 **\$1X** 图标。这样将打开控制面板见解，其中包含有关最近用户活动的更多详细信息。

## 使用见解数据对控制面板排序
<a name="v9-dash-sort-dashboards"></a>

在搜索视图中，您可以使用见解数据来帮助查找最常用、损坏和未使用的控制面板。
+ 错误总数
+ 30 天错误数
+ 浏览总数
+ 30 天浏览数

# 在 Grafana 9 中搜索控制面板
<a name="v9-search"></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 实例中可用的所有控制面板，即使您没有查看控制面板内容的权限。

## 使用控制面板名称搜索控制面板
<a name="v9-search-by-name"></a>

在搜索栏中输入控制面板名称的任意部分。当您键入时，搜索将实时返回任何部分字符串匹配的结果。

控制面板搜索：
+ 实时
+ *不*区分大小写
+ 跨存储和基于文件的控制面板运行。

**提示**  
您可以使用键盘箭头键导航结果，然后按 `Enter` 键打开选定的控制面板。

## 使用面板标题搜索控制面板
<a name="v9-search-by-title"></a>

您可以按控制面板中显示的面板标题来搜索控制面板。如果面板标题与您的搜索查询匹配，控制面板将出现在搜索结果中。

## 按标签筛选控制面板搜索结果
<a name="v9-search-by-tag"></a>

标签是整理控制面板的好方法，尤其是在控制面板数量增加时。您可以在控制面板**设置**中添加和管理标签。

当您选择多个标签时，Grafana 会显示包含所有选定标签的控制面板。

要按标签筛选控制面板，请完成下列步骤之一：
+ 要按标签筛选控制面板搜索结果，请选择显示在搜索结果右列中的标签。

  您可以通过选择其他标签来继续筛选。
+ 要查看所有可用标签的列表，请单击**按标签筛选**下拉菜单并选择一个标签。

  将显示所有标签，当您选择标签时，将立即筛选控制面板搜索。

**提示**  
仅使用键盘时，按 `tab` 键导航至**按标签筛选**下拉菜单，按向下箭头键激活菜单并找到标签，然后按 `Enter` 键选择标签。