博客/工程

学习Grafana:如何在动态仪表板中自动重复行和面板

2020年6月9日6分钟

在动态基础设施上运行软件意味着监视平台需要动态更改。

变量使您可以为所有服务重用一个指示板。从下拉菜单中选择要检查的服务,然后观察面板更新为只显示来自该服务的指标。

Grafana允许您使用模板变量.查询中的任何变量在将查询发送到数据库之前都会对变量的当前值进行插值。

虽然您可以创建一个自定义变量,让您手动定义可用值,但模板变量的强大之处在于能够查询数据源,以便基于(例如)集群中所有节点的主机名动态更新值。

变量的一个常见用例是在面板中筛选数据。在这篇博客文章中-这是我们的一部分学习Grafana系列,介绍如何构建有效的而且非常高效。仪表板——我们将看看如何通过一个名为重复的面板

如何重复面板

如果为仪表板定义了至少一个变量,则可以将面板配置为重复对于该变量中的每个选定值。当变量中的值发生变化时,仪表板也会发生变化。整洁!

但是,在启用重复面板之前,需要创建一个变量。让我们创建一个变量来保存一组实例。如果您已经有一个带有一个或多个变量的仪表板,您可以跳过这一部分。

  1. 创建一个新的空白仪表板。
  2. 仪表板设置通过点击右上角的齿轮图标。
  3. 变量选择并单击添加变量
  4. 的名字,输入实例.这是您将在查询中引用的内容。
  5. 类型中,选择自定义.自定义变量允许我们手动向变量添加值,这对测试很有用。
  6. 值之间用逗号分隔,输入Web1 web2 web3 backend1 backend2
  7. 选择选项,使多值而且包括所有选项
  8. 在页面底部,单击添加
  9. 单击左上角的箭头返回仪表板。在仪表板的左上角,现在有一个下拉菜单,其中包含刚才定义的值。

在那里。您已经创建了一个变量,但还没有使用它。接下来,让我们创建一个使用刚才创建的变量的面板。

  1. 添加一个面板,然后选择文本可视化。
  2. 选择Markdown模式,然后将示例文本替换为美元的实例
  3. 设置,改变面板标题美元的实例.这将每个重复面板的标题设置为实例名。
  4. 点击应用回到仪表盘。
创建小组
创建小组

方法中选择不同的实例实例下拉菜单。面板显示文本面板内和面板标题中的变量值。如果选择多个值,则面板将显示类似于Web1 + web2,取决于您选择的值。

通过更改变量的值,可以动态地更改面板的内容。这已经非常有用了,但我们还没有完成!接下来,您将对面板进行配置,以便对每个选定的实例进行重复。

  1. 通过单击面板的标题编辑面板,然后单击编辑
  2. 在面板编辑器中,打开重复的选项下节面板选项
  3. 按变量重复,选择实例变量。
  4. 重复的方向中,选择水平将重复的面板水平布置。
  5. 应用更改以返回仪表板。

现在,当您从下拉菜单更改选择时,面板将相应地出现和消失。你甚至可以选择所有为每个实例创建一个面板。

由于重复面板是基于原始面板,要编辑重复面板,您需要编辑原始面板-所有重复面板在您重新加载页面后更新。不管你最终有多少个面板,你都可以在一个地方改变它们。

重复的面板有助于避免手动创建几乎相同的面板。但是如果你想重复为每个选定值的面板?

如何重复行

我们已经看到如何从变量动态创建面板。接下来,我们将看到如何动态添加整行面板!重复行允许动态创建整个面板组。

假设你想要创建一个红色指示板.对于每个服务,您希望有三个面板显示流量、错误数量和请求花费的时间。我们可以为每个指标创建重复的面板,但理想情况下,我们希望为每个服务对面板进行分组。

让我们看看如何重复使用面板集重复的行

对于本例,让我们创建另一个自定义变量服务,包含Order-api auth-api billing-api.属性时执行相同的步骤实例变量。我会等你的。

做了什么?完美的。现在,让我们创建一个重复行:

  1. 点击添加面板,然后按添加新行.您在前面创建的面板将自动分配给您创建的行。
  2. 将光标悬停在行标题然后点击齿轮图标打开行选项
  3. 标题,输入美元服务
  4. 重复做,选择要为其重复行的变量。对于本例,选择服务
  5. 点击更新
  6. 中选择多个服务服务下拉菜单。Grafana为每个选定的服务创建一行,每个服务都在自己的一组重复面板中。
  7. 在最上面的行中找到最左边的面板并编辑它。
  8. 在文本面板的文本区域中,输入$instance和$service
  9. 保存仪表板并刷新页面。

我们在这里使用的是文本面板,因此您可以看到实例而且服务变量可用于每个重复面板。但实际上,您可以在查询中使用变量使每个面板显示给定实例和服务的数据。

重复的行
重复的行

重复面板时的陷阱

虽然我理解为所有300个生产实例创建重复面板的诱惑,但使用重复面板并不是偏离的借口良好的仪表盘设计

首先,每个重复面板向数据源发送一个单独的查询。这很快就会变得很贵!

出于这些原因,避免为高度可变的变量重复面板,例如中的pod名称Kubernetes.相反,应该使用重复的面板来显示状态、优先级或机器类型。

在这篇博文中,我们已经看到了如何创建重复的面板和行,这两个有用的特性可以避免在您的Grafana仪表板上维护重复的面板。有关更多信息,请参阅重复的面板

了解更多

为了充分利用Grafana,请查看我的网站上的这些易于遵循的指南学习Grafana系列:

Grafana云是开始使用仪表板、指标、日志和跟踪的最简单方法。我们有一个慷慨的免费永远层和计划为每个bob体育手机二维码用例。报名现在免费!