跳到主要内容

查询变量使用

在 Grafana 中,查询变量是一种强大的工具,允许你动态地控制仪表板中的数据展示。通过使用查询变量,你可以根据用户的选择动态更改查询条件,从而展示不同的数据集。这对于创建灵活且交互性强的仪表板非常有用。

什么是查询变量?

查询变量是一种特殊类型的变量,它的值是通过查询数据源动态生成的。这些变量可以用于仪表板的查询、面板标题、文本内容等地方,从而实现动态内容展示。

例如,假设你有一个监控系统,其中包含多个服务器。你可以创建一个查询变量,列出所有服务器的名称。然后,用户可以选择一个服务器,仪表板将自动显示该服务器的相关数据。

如何定义查询变量?

在 Grafana 中定义查询变量的步骤如下:

  1. 打开仪表板的设置页面。
  2. 选择 Variables 选项卡。
  3. 点击 Add variable 按钮。
  4. Name 字段中输入变量的名称(例如 server)。
  5. Type 字段中选择 Query
  6. Data source 字段中选择数据源。
  7. Query 字段中输入查询语句,例如 SHOW TAG VALUES FROM cpu_usage WITH KEY = "hostname"
  8. 根据需要配置其他选项,例如 RefreshSort
  9. 点击 Update 保存变量。

示例

假设你有一个 Prometheus 数据源,并且你想列出所有服务器的名称。你可以使用以下查询语句:

promql
label_values(up, instance)

这个查询将返回所有 up 指标的 instance 标签值,即所有服务器的名称。

如何使用查询变量?

定义好查询变量后,你可以在仪表板的查询、面板标题、文本内容等地方使用它。使用变量的语法是 $variable_name

在查询中使用变量

假设你定义了一个名为 server 的查询变量,你可以在查询中使用它来动态选择服务器:

promql
cpu_usage{instance="$server"}

这个查询将根据用户选择的服务器动态返回该服务器的 CPU 使用率数据。

在面板标题中使用变量

你也可以在面板标题中使用变量,使标题更具描述性:

CPU Usage for $server

当用户选择不同的服务器时,面板标题将自动更新为所选服务器的名称。

实际应用场景

场景 1:多服务器监控

假设你有一个监控系统,其中包含多个服务器。你可以创建一个查询变量,列出所有服务器的名称。然后,用户可以选择一个服务器,仪表板将自动显示该服务器的 CPU 使用率、内存使用率等数据。

场景 2:多环境监控

假设你有多个环境(例如开发、测试、生产),每个环境都有独立的监控数据。你可以创建一个查询变量,列出所有环境的名称。然后,用户可以选择一个环境,仪表板将自动显示该环境的监控数据。

总结

查询变量是 Grafana 中一个非常强大的功能,它允许你动态地控制仪表板中的数据展示。通过定义和使用查询变量,你可以创建灵活且交互性强的仪表板,从而更好地满足用户的需求。

附加资源

练习

  1. 在你的 Grafana 仪表板中创建一个查询变量,列出所有服务器的名称。
  2. 使用该变量在查询中动态选择服务器,并展示该服务器的 CPU 使用率数据。
  3. 尝试在面板标题中使用该变量,使标题更具描述性。