improved accuracy for "per second" calculation - prevent projection of values on sub-second collections
Costa Tsaousis (ktsaou) committed
Nov 26, 2015 at 10:08 UTC
7015222275057ba0d22bf081146681a4a6776617
1 file changed
+2
-6
src/rrd.c
+2
-6
@@ -980,9 +980,7 @@ unsigned long long rrdset_done(RRDSET *st)
980
981
rd->calculated_value += (calculated_number)(rd->collected_value - rd->last_collected_value)
982
* (calculated_number)rd->multiplier
983
- / (calculated_number)rd->divisor
984
- * (calculated_number)1000000ULL
985
- / (calculated_number)st->usec_since_last_update;
983
+ / (calculated_number)rd->divisor;
984
985
if(unlikely(st->debug))
986
debug(D_RRD_STATS, "%s/%s: CALC INC "
@@ -990,15 +988,12 @@ unsigned long long rrdset_done(RRDSET *st)
988
COLLECTED_NUMBER_FORMAT " - " COLLECTED_NUMBER_FORMAT
989
" * %ld"
990
" / %ld"
993
- " * 1000000"
994
- " / %llu"
991
")"
992
, st->id, rd->name
993
, rd->calculated_value
994
, rd->collected_value, rd->last_collected_value
995
, (calculated_number)rd->multiplier
996
, (calculated_number)rd->divisor
1001
- , st->usec_since_last_update
997
);
998
break;
999
@@ -1078,6 +1073,7 @@ unsigned long long rrdset_done(RRDSET *st)
1073
);
1074
1075
rd->calculated_value -= new_value;
1076
+ new_value /= (calculated_number)st->update_every;
1077
break;
1078
1079
case RRDDIM_ABSOLUTE: