grafana查询中的变量templating

有时我们在管理成百上千台机器的时候,配置grafana无疑是明智的,因为你不需要一个一个的把每个机器的图形都配置一遍,利用templating就可以瞬间实现n台机器的状态显示了。

templating的变量其实就是事先帮我们查询好变量的值,然后在查询输入的时候事先帮我们把查询中的变量替换掉,从而实现一次配置,多台显示的目的。

grafana有很多灵活的实现,甚至是不同的数据源也可以将查询融合到一起。

首先我们打开templating


可以自己新加变量,但是这里我已经配置好了一个变量,host,我们来看它的具体内容



我们来依次解释下它的内容:

name就是变量名啦,这里配置的是host,就是主机

type这里使用query,就是查询方式的变量

datasource我们这里还是用的telegraf

refresh选择在加载dashboard的时候,就是选择完主机就开始加载

query这里是一个语句,选择influxdb中的host tag的值,然后我们就能看到在最下边红框圈起来的查询到的变量有哪些值

show options这里是显示设置,就是在选择变量值的时候可以有复选框,可以点击all显示所有等

custom all value就是可以使用正则对值再一次就行筛选,比如我只想要开头是gc的机器那就是正则^gc.*$

配置完变量之后就在dashboard的左上方出现了变量的选择下拉菜单


下面我们就来添加图表,增加查询了


如上图所示,我们使用在之前配置的两个变量,一个是主机,一个是网口,添加之后我们就选择对应得主机名和网卡就可以查询到数据了。

这里有一点需要注意,如果主机上没有对应其他的变量的值,那数据是没有的,所以图表也就没有显示。