如何配置夜莺监控新版表格?图文讲解详细版?

摘要:夜莺监控从 8.3 版本开始引入了新版的表格,力争对齐 Grafana(Grafana 积累了多年,确实太强了),本文图文并茂手把手教你配置一个 Table 仪表盘出来,用于展示机器列表,当然了,交换机、MySQL 实例等其他监控对象,也可
夜莺监控从 8.3 版本开始引入了新版的表格,力争对齐 Grafana(Grafana 积累了多年,确实太强了),本文图文并茂手把手教你配置一个 Table 仪表盘出来,用于展示机器列表,当然了,交换机、MySQL 实例等其他监控对象,也可以通过这个方式展示。 先看效果 JSON 文件:https://gist.github.com/UlricQin/c5d432b236a7a7fea3979026ab8e22c8 上图中: 有两个变量,一个是数据源变量,用于筛选数据源,另一个是机器变量,用于筛选机器,如果机器变量这里选择 All,就是查看所有机器的数据 表格里的数据用了四个指标,CPU、内存、根分区都是展示的对应指标的值,Categraf Version 字段是从某个指标里提取的标签 所有指标都有 ident 标签,通过 ident 标签 join 在一起,相同 ident 标签的数据位于同一行 下面我们来看看具体是如何配置的。 仪表盘变量 鼠标放到下面的位置,会出现变量编辑按钮: 点击之后弹窗里会展示配置了哪些变量: 这里我配置了两个变量,一个类型是 数据源(Datasource),另一个类型是查询(Query),点击变量名称,可以进入变量配置。 上例,我们先点击prom变量,进入数据源的配置: 变量名称:一般写英文 显示名称:就是仪表盘里显示的那个名称,可以为中文 变量类型:很重要,这里是为了筛选数据源的,所以变量类型就是数据源 数据源类型:因为数据源也有多种类型,Prometheus、VictoriaMetrics 等数据源都选择 Prometheus 数据源类型 数据源过滤:是通过正则来做二次过滤,只展示符合过滤条件的数据源,我这里没有配置,展示我的环境里的所有数据源 然后进入ident变量配置部分: 变量名称和显示名称就不重复解释了,其他的: 变量类型:选择查询(Query),即通过一个查询表达式查询时序库中的数据,然后从数据中提取一些内容作为这个变量下拉框的内容 数据源:选择 ${prom} 而非选择一个写死的数据源,这样就能和数据源的下拉框联动起来了 变量定义:和 Grafana 保持一致,这里用的是 label_values 函数,这个函数有两个参数,第一个参数是一个 promql,用于查询过滤数据,第二个参数是标签名,即:使用第一个 promql 查询数据,然后遍历查到的数据,从中提取 ident 标签。第一个参数即 promql 其实也可以不写,这样的话,就会查询时序库里的所有数据,然后从中提取 ident 标签的值,这个性能就很差了 变量,就是为了定义下拉框的内容,下拉框的内容是否支持多选、全选,就是由下面的字段控制的。 另外,有时我们会看到一些仪表盘里有多个 查询(Query) 类型的变量,相互之间是联动的,核心就是在变量定义那里,会引用上一个变量的值。 比如我上例中的 ident 变量,会展示机器列表,然后我还想做另一个变量展示机器上的网卡列表,而且希望二者联动,即选择某个机器的时候,网卡列表里就只展示这个机器的网卡,此时可以做一个 interface 变量,变量定义里可以这么写: label_values(net_bits_recv{ident=~"$ident"}, interface) interface 变量引用了 ident 变量,这样就可以联动了。 扯远了,下面我们回来看这个 Table 的具体配置。 原始数据 我这里用到了 4 个指标: cpu_usage_active 100 - mem_available_percent disk_used_percent categraf_info 分别来自 Categraf 采集器的四个插件: input.cpu input.mem input.disk input.self_metrics 各个 promql 都引用了 ident 变量,比如: 100 - mem_available_percent{ident=~"$ident"} promql 里必须引用变量,否则跟机器那个变量下拉框没法联动。
阅读全文