为了增加grafana dashboard的灵活性和交互性,在配置dashboard中,可以通过variables来动态地改变数据展示的角度,其中Query类型的变量是一种常用的变量类型,允许用户通过定义查询表达式来动态生成变量的可选值。以下将介绍Query类型变量的具体使用方法及效果。
一、定义Query类型变量
进入Dashboard设置页面:
-
- 在Grafana的Dashboard界面中,点击页面右上角的小齿轮(设置)图标,选择“Dashboard settings”或类似的选项进入Dashboard设置页面。
添加变量:
-
- 在Dashboard设置页面中,找到“Variables”部分,点击“New”按钮来添加一个新的变量。
配置变量:
-
- Name:为变量指定一个名称,这个名称将在Dashboard的PromQL表达式或Panel标题中通过
$变量名
的形式引用。 - Type:选择“Query”作为变量类型。
- Datasource:指定数据源,通常与你的监控数据(如Prometheus)相关联。
- Query:编写PromQL查询表达式,用于从数据源中检索数据并生成变量的可选值。你可以使用PromQL的标签匹配和过滤功能来精确控制查询结果。
- Regex(可选):如果你希望从查询结果中提取特定的部分作为变量的可选值,可以使用正则表达式进行匹配。
- Selection Options:配置变量下拉框的选项,如是否支持多选、是否包含“All”选项等。
- Name:为变量指定一个名称,这个名称将在Dashboard的PromQL表达式或Panel标题中通过
例如,想增加一个变量,其取值范围是从上传指标storage_iops中所有“name”这个标签的取值,可以在Query中编写:
label_values(storage_iops, name)
假设想设置取值范围为从上传指标storage_iops中,当ip为指定(另一个变量node)值时,所有“name”这个标签的取值,可以在Query中编写:
label_values(storage_iops{ip="$node"}, name)
二、使用Query类型变量
-
- 在Dashboard的Panel中,你可以在PromQL表达式中通过
$变量名
的形式引用Query类型变量。Grafana会自动将用户选择的变量值替换到表达式中。 - 例如,如果你有一个名为
node
的Query类型变量,用于选择特定的主机节点,还有一个名为diskName
的Query类型变量,用于选择特定的磁盘。你可以在PromQL表达式中这样使用它:storage_latency{ip="$node",name="$diskName"}
- 在Dashboard的Panel中,你可以在PromQL表达式中通过
三、注意事项
- 变量刷新:Query类型变量的值是根据用户的选择动态生成的,但你也可以配置变量的刷新方式(如面板加载时刷新、时间范围改变时刷新等)。
- 正则表达式:使用正则表达式时,请确保它们能够正确匹配你期望的数据,并避免不必要的匹配或遗漏。