我有一个系统要求监控其指标。为了做到这一点,我使用grafana + Influxdb。我目前使用的Influxdb版本是0.9.x。
我希望能够计算一些统计数据。我的用例非常简单:
我的查询如下:
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 工具将聚合函数应用于每个组。 ?
答案 0 :(得分:4)
从多个时间序列源中选择数据,合并它们,按一些条件分组并使用Influxdb 0.9.x工具将聚合函数应用于每个组的方法是什么?
我需要正确构建您的架构,因为我在mailing list上做出了回应。
在InfluxDB 0.9中,默认情况下合并给定测量下的所有系列,并使用clients
子句中的过滤使用标记。
不同测量下的系列无法合并为单个结果。
您有多个测量值,每个测量值都有一个系列。您应该进行少量测量,每个系列都有很多系列请参阅0.8 vs 0.9 docs。