我有一个系统需要监控其指标。为了做到这一点,我使用grafana + influxdb。我目前使用的influxdb版本是0.9.x.influxdb中合并时间系列0.9.x
我想能够计算一些统计数据。我的用例很简单:
- 我想从几个时间序列源中进行选择查询。
- 我想在选择查询中使用group by语句来获取我的数据分组。
- 最后,我想找到每个组内的平均值。
我的查询如下:
SELECT mean(value) FROM /namespaces_.*.amount/ where time < "2015-10-21T14:16:18Z" group by time(1m);
它接缝微不足道的,但它是一个有点棘手。我得到的是这样的:
name: namespaces_1.amount
------------------------------------------------------------
time mean
1970-01-01T00:00:00Z 0.8877630461283463
name: namespaces_2.amount
------------------------------------------------------------
time mean
1970-01-01T00:00:00Z 0.6982870635693408
根据influxdb文档你能够抓住从多个来源的数据,换句话说,你可以写后多个数据序列FROM关键字。而我想合并他们和我的合并系列处理。在influxdb 0.8.x中有merge
函数,它使您能够混合数据源。 但是,在influxdb 0.9.x中,既没有合并也没有连接操作。
编号:https://influxdb.com/docs/v0.9/concepts/08_vs_09.html
在InfluxDB 0.9既不是MERGE也不JOIN操作支持。 MERGE操作不再需要。在查询时, 度量内的所有系列都会自动合并,除非WHERE子句中的标签排除了 。
所以,当你写
SELECT mean(value) FROM merge(/namespaces_.*.amount/) where time < "2015-10-21T14:16:18Z" group by time(1m);
你得到空的结果......
因此,我的问题是:什么是选择从多个时间序列数据源的数据的方式,合并他们按照一些标准进行分组,并使用influxdb 0.9.x的工具对每个组应用聚合函数?
正在编写JOIN在0.12版本中仍然不可能的测量? – marbel