我已经从进入 InfluxDB 0.8.8 的对象存储中读取和写入字节计数器(很高兴为 0.9 提供有效的答案。在升级之前等待不同的存储引擎)
数据由服务器和设备收集,因此例如数据点可能具有:
timestamp: ...
server: abc1-oss1
disk: disk_id1
read_bytes: a counter
abc\d+ 和 -oss\d+ 中有一系列 ID,例如,abc14-oss5、abc1-oss1、abc8-oss12 都是有效的主机名。
我想做的是为所有不同的 abc\d+-* 组提供一个概述。查看者会选择“abc2”并获得与 abc2-* 匹配的所有主机上的所有磁盘总和的导数(因为它是一个不断增加的计数器)。
虽然我可以将特定主机的总和放入初始数据插入中,但我不能对 abc2-oss* 中的十几个主机执行此操作
在 grafana 中,我可以使用正则表达式执行模板变量,以将可能的 abc\d+ 值提取到名为 $Area 的变量中,然后:
select sum(value) from "read_bytes" where $timeFilter and hostname =~ /$Area.*/ group by time($interval) order asc
这给了我每个区域的读取总和,但我不能调用导数(),因为导数(总和(值))在 InfluxDB 中无效:
select derivative(sum(value)) from ...
“无法评估类型 &{sum 10 [oxc21648f220] false} 的值”
我假设这意味着我需要在 InfluxDB 中进行连续查询来计算总和,然后将导数()调用放在结果测量上。我将如何对部分列值执行此操作,以便将 、 等的所有值hostname =~ /abc1-.*/
相加hostname =~ /abc2-.*/
?