首页 文章

合并时间序列在Influxdb 0.9.x中

提问于
浏览
3

我有一个系统要求监控其指标 . 为了做到这一点,我使用grafana Influxdb . 我目前使用的Influxdb版本是0.9.x.

我希望能够计算一些统计数据 . 我的用例很简单:

  • 我想从几个时间序列源中进行选择查询 .

  • 我想在select查询中创建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关键字后编写多个数据系列 . 虽然我想 merge 他们并在合并系列上进行处理 . 在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);

你得到一个空的结果......

因此,我的问题是: what is the way to select data from multiple time series sources, merge them, group by some criteria and apply aggregation function to each group using tools of influxdb 0.9.x

1 回答

  • 4

    从多个时间序列源中选择数据,合并它们,按一些标准分组并使用Influxdb 0.9.x的工具将聚合函数应用于每个组的方法是什么?

    您需要正确构建架构,因为我在mailing list上做出了回应 .

    在InfluxDB 0.9中,默认情况下合并给定测量下的所有系列,并使用 WHERE 子句中的过滤使用标记 .

    不同测量下的系列不能合并为单个结果 .

    您有多个测量,每个测量一个系列 . 您应该进行少量测量,每个系列都有很多系列见0.8 vs 0.9 docs .

相关问题