@cryptotaxi247 / netdata-1 / commits / fd0ff00b3

fix for consistent panning of charts

Costa Tsaousis (ktsaou) committed Oct 25, 2015 at 17:50 UTC fd0ff00b37c8d5260df9ee997d13109b1351acb9
1 file changed +12 -14
src/rrd2json.c
+12 -14
@@ -573,7 +573,7 @@ RRDR *rrd2rrdr(RRDSET *st, long points, time_t after, time_t before, int group_m
573 return NULL;
574 }
575
576 -unsigned long rrd_stats_json(int type, RRDSET *st, struct web_buffer *wb, int entries_to_show, int group, int group_method, time_t after, time_t before, int only_non_zero)
576 +unsigned long rrd_stats_json(int type, RRDSET *st, struct web_buffer *wb, int points, int group, int group_method, time_t after, time_t before, int only_non_zero)
577 {
578 int c;
579 pthread_rwlock_rdlock(&st->rwlock);
@@ -600,16 +600,11 @@ unsigned long rrd_stats_json(int type, RRDSET *st, struct web_buffer *wb, int en
600 // -------------------------------------------------------------------------
601 // validate the parameters
602
603 - if(entries_to_show < 1) entries_to_show = 1;
603 + if(points < 1) points = 1;
604 if(group < 1) group = 1;
605
606 - time_t time_init = rrdset_last_entry_t(st);
607 -
608 - if(before == 0 || before > time_init) before = time_init;
609 - if(after == 0) after = rrdset_first_entry_t(st);
610 -
611 - before -= before % group;
612 - after -= after % group;
606 + if(before == 0 || before > rrdset_last_entry_t(st)) before = rrdset_last_entry_t(st);
607 + if(after == 0 || after < rrdset_first_entry_t(st)) after = rrdset_first_entry_t(st);
608
609 // ---
610
@@ -643,7 +638,7 @@ unsigned long rrd_stats_json(int type, RRDSET *st, struct web_buffer *wb, int en
638
639
640 // -------------------------------------------------------------------------
646 - // checks for debuging
641 + // checks for debugging
642
643 if(st->debug) {
644 debug(D_RRD_STATS, "%s first_entry_t = %lu, last_entry_t = %lu, duration = %lu, after = %lu, before = %lu, duration = %lu, entries_to_show = %lu, group = %lu"
@@ -654,7 +649,7 @@ unsigned long rrd_stats_json(int type, RRDSET *st, struct web_buffer *wb, int en
649 , after
650 , before
651 , before - after
657 - , entries_to_show
652 + , points
653 , group
654 );
655
@@ -733,7 +728,10 @@ unsigned long rrd_stats_json(int type, RRDSET *st, struct web_buffer *wb, int en
728 stop_at_t = rrdset_time2slot(st, after),
729 stop_now = 0;
730
736 - time_t now = rrdset_slot2time(st, t), dt = st->update_every;
731 + t -= t % group;
732 +
733 + time_t now = rrdset_slot2time(st, t),
734 + dt = st->update_every;
735
736 long count = 0, printed = 0, group_count = 0;
737 last_timestamp = 0;
@@ -742,7 +740,7 @@ unsigned long rrd_stats_json(int type, RRDSET *st, struct web_buffer *wb, int en
740 , st->id
741 , after
742 , before
745 - , entries_to_show
743 + , points
744 , group
745 , st->current_entry
746 , rrdset_first_entry_t(st)
@@ -781,7 +779,7 @@ unsigned long rrd_stats_json(int type, RRDSET *st, struct web_buffer *wb, int en
779
780 // check if we have to print this now
781 if(group_count == group) {
784 - if(printed >= entries_to_show) {
782 + if(printed >= points) {
783 // debug(D_RRD_STATS, "Already printed all rows. Stopping.");
784 break;
785 }