前面介绍了 Prometheus 监控常见服务、配置 Grafana 展示与报警、高可用集群方案、高可用架构 Thanos、Grafana 入门与部署、仪表盘 DashBoard 相关的知识点,今天我将详细的为大家介绍Grafana Dashboard 变量相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发朋友圈支持一波!!!
变量(Variables)一般包含一个或多个可选择的值。
使用变量我们可以创建出交互式的动态仪表盘!原本查看某些主机时,需要每次手动修改Panel中的PromQL表达式,或者给这些主机创建单独的Panel。这样的硬编码方式会导致Dashboard配置频繁修改,使用变量后,同一个仪表盘可以显示不同变量值(主机和实例)的数据。有变量的仪表盘就是一个模板,变量给模板注入了灵魂。
例如:当用户只想关注其中某些主机时,基于当前我们已经学习到的知识只有两种方式,要么每次手动修改Panel中的PromQL表达式,要么直接为这些主机创建单独的Panel。主机有很多时,需要新建无数的仪表盘来展示不同的主机状态,好在grafana中有Variables,可以动态修改仪表盘中的参数,这样仪表盘的内容也会随参数的值改变而改变。
更多关于企业级监控平台系列的学习文章,请参阅:构建企业级监控平台,本系列持续更新中。
通过Dashboard页面的Settings选项,可以进入Dashboard的配置页面并且选择Variables子菜单:
说明:Grafana变量分四个部分。
参考如下视图:
分析这四部分的使用
需要指定变量的名称,然后就可以通过$variable_name的形式引用该变量。Grafana目前支持6种不同的Type变量类型,而能和Prometheus一起工作的主要包含以下5种类型:
Type(变量的类型)又包括如下几种选项:
更多关于企业级监控平台系列的学习文章,请参阅:构建企业级监控平台,本系列持续更新中。
Grafana还处在验证性的特征。
通过Dashboard页面的Settings选项,可以进入Dashboard的配置页面并且选择Variables子菜单。
用户需要指定变量的名称,后续用户就可以通过$variable_name的形式引用该变量。
当Prometheus同时采集了多个主机节点的监控样本数据时,用户希望能够手动选择并查看其中特定主机的监控数据。这时我们需要使用Query类型的变量。
这里我们为Dashboard创建了一个名为node的变量,并且指定其类型为Query。Query类型的变量,允许用户指定数据源以及查询表达式,并通过正则匹配(Regex)的方式对查询结果进行处理,从而动态生成变量的可选值。在这里指定了数据源为Prometheus。
通过使用node_load1我们得到了两条时间序列:
node_load1{instance="localhost:9100",job="prometheus"}
node_load1{instance="xxx.xxx.xxx.xxx:9100",job="xxx.xxx.xxx.xxx"}
通过指定正则匹配表达式为/._instance="([^"]_).*/
从而匹配出标签instance的值作为node变量的所有可选项,即:
foo:9100
localhost:9100
Selection Options选项中可以指定该变量的下拉框是否支持多选,以及是否包含全选(All)选项。
保存变量后,可以在Panel的General或者Metrics中通过$node的方式使用该变量。
这里需要注意的是,如果允许用户多选在PromQL表达式中应该使用标签的正则匹配模式,因为Grafana会自动将多个选项格式化为如“foo:9100|localhost:9100”的形式。
使用Query类型的变量能够根据允许用户能够根据时间序列的特征维度对数据进行过滤。在定义Query类型变量时,除了使用PromQL查询时间序列以过滤标签的方式以外,Grafana还提供了几个有用的函数:
更多关于企业级监控平台系列的学习文章,请参阅:构建企业级监控平台,本系列持续更新中。
参考链接:https://blog.csdn.net/ZhanBiaoChina/article /details/107048324