【发布时间】:2015-12-30 15:29:59
【问题描述】:
我已经从进入 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-.*/ 等的所有值相加?
【问题讨论】:
-
目前正在尝试更改提交脚本以包含适当的包含“abc1”、“abc2”的标记的解决方法。