2017-10-13 18 views
0

Je suis en train de rassembler les données au cours de la semaine précédente, toutes les heures et les statistiques sommaires de calcul comme médiane, moyenne, etc.Dernière période non sortie dans Kapacitor enregistré/rejoué les données

J'utilise quelque chose comme ceci:

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') 

la requête fonctionne comme prévu, sauf que lors de l'enregistrement des données et rejouant pour tester avec

kapacitor record batch -task medians -past 30d 
kapacitor replay -task medians -recording $rid -rec-time 

les données sont manquantes pour la dernière période (1 semaine dans ce cas). Si je change la période à 1 jour, toutes les données sont rejouées sauf la valeur du dernier jour.

Est-ce un problème avec mon tickscript, la façon dont je suis en train d'enregistrer des données ou la façon dont je le rejoue?

Répondre

0

Je vois, je dois faire l'agrégation dans Kapacitor, pas Influx. Cela semble être un problème connu, mais trouver de la documentation était difficile. https://github.com/influxdata/kapacitor/issues/1257 et https://github.com/influxdata/kapacitor/issues/1258 étaient utiles. La solution consiste à faire quelque chose comme:

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')