查询变量与模板
在 Grafana Alloy 查询语言中,查询变量和模板是强大的工具,可以帮助你动态生成查询,从而使仪表板更加灵活和可重用。通过使用变量和模板,你可以创建动态的仪表板,这些仪表板可以根据用户输入或上下文自动调整查询内容。
什么是查询变量?
查询变量是一种可以在查询中使用的占位符。它们允许你在运行时动态替换查询中的值。例如,你可以创建一个变量来表示时间范围、主机名或任何其他可配置的参数。这样,当你更改变量的值时,所有使用该变量的查询都会自动更新。
什么是模板?
模板是一种将变量嵌入查询中的方式。通过使用模板,你可以将变量的值插入到查询字符串中,从而生成动态查询。模板通常与查询变量一起使用,以实现更复杂的查询逻辑。
如何使用查询变量和模板
1. 定义查询变量
在 Grafana 中,你可以通过仪表板的设置来定义查询变量。以下是一个简单的例子,展示如何定义一个名为 hostname
的查询变量:
variables:
- name: hostname
label: Hostname
query: 'label_values(up, instance)'
refresh: onDashboardLoad
在这个例子中,hostname
变量将从 up
指标中提取所有 instance
标签的值,并在仪表板加载时刷新。
2. 在查询中使用模板
一旦定义了查询变量,你就可以在查询中使用它。以下是一个使用 hostname
变量的查询示例:
query: 'rate(http_requests_total{instance="$hostname"}[5m])'
在这个查询中,$hostname
将被替换为当前选中的 hostname
变量的值。这样,查询将自动针对选定的主机名进行计算。