上一期未在 Kapacitor recorded/replayed 数据中输出
Last period not output in Kapacitor recorded/replayed data
我正在尝试每小时汇总前一周的数据,并计算汇总统计数据,例如中位数、均值等。
我正在使用这样的东西:
var weekly_median = batch
|query('''SELECT median("duration") as week_median
FROM "db"."default"."profiling_metrics"''')
.period(1w)
.every(1h)
.groupBy(*)
.align()
|influxDBOut()
.database('default')
.measurement('summary_metrics')
查询按预期工作,除了在记录和重放数据以进行测试时
kapacitor record batch -task medians -past 30d
kapacitor replay -task medians -recording $rid -rec-time
缺少上一时期的数据(在本例中为 1 周)。如果我将周期更改为 1 天,则会重播除最后一天之外的所有数据。
这是我的 tickscript、我记录数据的方式或我回放数据的方式的问题吗?
我明白了,我需要在 Kapacitor 中进行聚合,而不是 Influx。这似乎是一个已知问题,但很难找到有关它的文档。 https://github.com/influxdata/kapacitor/issues/1257 and https://github.com/influxdata/kapacitor/issues/1258 很有帮助。解决方案是改为执行以下操作:
var weekly_median = batch
|query('''SELECT "duration"
FROM "db"."default"."profiling_metrics"
WHERE "result" =~ /passed/''')
.period(1w)
.every(1h)
.groupBy(*)
.align()
|median('duration')
.as('week_median')
|influxDBOut()
.database('default')
.measurement('summary_metrics')
我正在尝试每小时汇总前一周的数据,并计算汇总统计数据,例如中位数、均值等。
我正在使用这样的东西:
var weekly_median = batch
|query('''SELECT median("duration") as week_median
FROM "db"."default"."profiling_metrics"''')
.period(1w)
.every(1h)
.groupBy(*)
.align()
|influxDBOut()
.database('default')
.measurement('summary_metrics')
查询按预期工作,除了在记录和重放数据以进行测试时
kapacitor record batch -task medians -past 30d
kapacitor replay -task medians -recording $rid -rec-time
缺少上一时期的数据(在本例中为 1 周)。如果我将周期更改为 1 天,则会重播除最后一天之外的所有数据。
这是我的 tickscript、我记录数据的方式或我回放数据的方式的问题吗?
我明白了,我需要在 Kapacitor 中进行聚合,而不是 Influx。这似乎是一个已知问题,但很难找到有关它的文档。 https://github.com/influxdata/kapacitor/issues/1257 and https://github.com/influxdata/kapacitor/issues/1258 很有帮助。解决方案是改为执行以下操作:
var weekly_median = batch
|query('''SELECT "duration"
FROM "db"."default"."profiling_metrics"
WHERE "result" =~ /passed/''')
.period(1w)
.every(1h)
.groupBy(*)
.align()
|median('duration')
.as('week_median')
|influxDBOut()
.database('default')
.measurement('summary_metrics')