The outer join will work in Kapacitor but it does require that points 
arrive, Meaning if two points arrive and there is a gap between them then 
the outer join will fill in all the missing points. But it can't do so 
until the second point arrives since it doesn't know if the point is just 
delayed or missing. And you are also running up against this 
issue https://github.com/influxdata/influxdb/issues/6412. Typically using 
the deadman node is a workaround but without more details on your end goal 
it is hard to tell 
.https://docs.influxdata.com/kapacitor/v1.1/nodes/query_node/#deadman

On Saturday, November 19, 2016 at 7:24:34 AM UTC-7, job...@gmail.com wrote:
>
> influxdb 1.1, kapacitor 1.1 
>
> I'm trying to capture counts in another measurement.  I have this script 
>
> --------------------------------- 
> ID: task_rates 
> Error: 
> Template: 
> Type: batch 
> Status: enabled 
> Executing: true 
> Created: 19 Nov 16 06:30 CST 
> Modified: 19 Nov 16 08:15 CST 
> LastEnabled: 19 Nov 16 08:15 CST 
> Databases Retention Policies: ["metrics"."days30"] 
> TICKscript: 
> // go back in time 
> var myperiod = 60m 
>
> // group by time 
> var mytime = 60m 
>
> // sample every time 
> var myevery = 1m 
>
> // Task type 
> // measurement to put the results 
> var mymeasurement = 'taskRates' 
>
> // purposely forcing batch to return 0 records, this easily will duplicate 
> the problem 
> var success = batch 
>     |query(' SELECT count(jobRunTime) FROM "metrics"."days30"."tasks" 
> where  "status" = \'FINISHED1\' ') 
>         .period(myperiod) 
>         .every(myevery) 
>         .groupBy(time(mytime), 'id', 'serverID', 'taskType', 'component') 
>         .align() 
>         .fill(0) 
>
> // Get views total 
> var total = batch 
>     |query('SELECT count(jobRunTime) FROM "metrics"."days30"."tasks" where 
>  ("status"=\'FINISHED\' or "status"=\'ERROR\') ') 
>         .period(myperiod) 
>         .every(myevery) 
>         .groupBy(time(mytime), 'id', 'serverID', 'taskType', 'component') 
>         .align() 
>         .fill(0) 
>
> // Join success and total 
> success 
>     |join(total) 
>         .as('success', 'total') 
>         .tolerance(60s) 
>         .fill(0) 
>     |eval(lambda: "success.count", lambda: "total.count") 
>         // Give the resulting field a name 
>         .as('success', 'total') 
>     |influxDBOut() 
>         .database('metrics') 
>         .measurement(mymeasurement) 
>
> DOT: 
> digraph task_rates { 
> graph [throughput="0.00 batches/s"]; 
>
> query2 [avg_exec_time_ns="0s" batches_queried="80" points_queried="160" 
> query_errors="0" ]; 
> query2 -> join4 [processed="80"]; 
>
> query1 [avg_exec_time_ns="0s" batches_queried="0" points_queried="0" 
> query_errors="0" ]; 
> query1 -> join4 [processed="0"]; 
>
> join4 [avg_exec_time_ns="40.52µs" ]; 
> join4 -> eval5 [processed="0"]; 
>
> eval5 [avg_exec_time_ns="0s" eval_errors="0" ]; 
> eval5 -> influxdb_out6 [processed="0"]; 
>
> influxdb_out6 [avg_exec_time_ns="0s" points_written="0" write_errors="0" 
> ]; 
> } 
>
> --------------------------------- 
>
> the problem is if query1 doesn't return any rows, I don't get any records 
> in my measurement. 
>
> What did I do wrong? 
>
>
>
>
>

-- 
Remember to include the version number!
--- 
You received this message because you are subscribed to the Google Groups 
"InfluxData" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to influxdb+unsubscr...@googlegroups.com.
To post to this group, send email to influxdb@googlegroups.com.
Visit this group at https://groups.google.com/group/influxdb.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/influxdb/7d618708-0bd9-4c5d-ac49-cf580ec67c55%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to