我使用InfluxData堆栈进行时间序列数据异常检测,使用InfluxDB和Kapacitor。Kapacitor采取错误的时间格式
我收集了一些开源samples,并设置用于检测异常以下蜱脚本:
batch
.query('select mean(value) from "nycTaxi"."default"."nycTaxi"')
.period(1h)
.every(2h)
.groupBy(time(1h))
.mapReduce(influxql.percentile('mean', 90.0))
.eval(lambda: sigma("percentile"))
.as('sigma')
.keep('percentile', 'sigma')
.alert()
.warn(lambda: "sigma" > 2.0)
.log('/path/alerts.log')
.crit(lambda: "sigma" > 3.0)
.log('/path/alerts.log')
获取警报类似如下:
{"id":"nycTaxi:nil",
"message":"nycTaxi:nil is WARNING",
"time":"2016-09-13T14:43:21.892057062Z",
"level":"WARNING",
"data":{
"series":[
{
"name":"nycTaxi",
"columns":[
"time",
"percentile",
"sigma"
],
"values":[
[
"2016-09-13T14:43:21.892057062Z",
1279,
2.002345963142575
]]}]}}
要记录我用这个线路上的数据kapacitor record batch -start 2014-07-01T00:00:00Z -stop 2015-02-31T00:00:00Z -name nyc
由于某种原因,Kapacitor将时间解释为2016年的日期,在DB中最早的日期是2015年-01-31。为什么会发生?
但是看到日期说的是'2016-09-13',我们不在那个日期(并且因为未来而不可能在那个日期)。 –
@MartinAparicioPons - 确实,这部分可能是一个错误。你可能想问influxdata github页面。你有什么最新的日期涌入?你使用哪种版本的influxdb和kapacitor?我知道他们改变了我认为influxdb v0.9.6发布时的时间戳格式。直到那时,时间戳才是unix样式的时间戳,之后它们变得很好,人们可读的ISO标准时间戳。所以也许这里有一个错误。 – pootzko
你说得对,我正在回购一个问题。我正在使用InfluxData网页上提供的Influx和Kapacitor(0.10)的最新版本。 –