0

我正在尝试每小时汇总前一周的数据,并计算汇总统计数据,例如中位数、平均值等。

我正在使用这样的东西:

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、我记录数据的方式还是我重放它的方式的问题?

4

1 回答 1

0

我明白了,我需要在 Kapacitor 中进行聚合,而不是 Influx。这似乎是一个已知问题,但查找有关它的文档很棘手。https://github.com/influxdata/kapacitor/issues/1257https://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')
于 2017-10-14T06:11:40.693 回答