Последний период не выводится в записанных/воспроизведенных данных Kapacitor

Я пытаюсь агрегировать данные за предыдущую неделю по часам и вычислять сводные статистические данные, такие как медиана, среднее значение и т. д.

Я использую что-то вроде этого:

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 день, все данные воспроизводятся, кроме стоимости последнего дня.

Это проблема с моим тикскриптом, способом записи данных или способом их воспроизведения?


person Marc    schedule 13.10.2017    source источник


Ответы (1)


Понятно, агрегацию надо делать в Kapacitor, а не в Influx. Кажется, это известная проблема, но найти документацию по ней было сложно. https://github.com/influxdata/kapacitor/issues/1257 и 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')
person Marc    schedule 14.10.2017