12
12
#include "sum/sum.h"
13
13
#include "stddev/stddev.h"
14
14
#include "ses/ses.h"
15
+ #include "des/des.h"
15
16
16
17
// ----------------------------------------------------------------------------
17
18
@@ -31,9 +32,23 @@ static struct {
31
32
, { "median" , 0 , RRDR_GROUPING_MEDIAN , grouping_init_median , grouping_reset_median , grouping_free_median , grouping_add_median , grouping_flush_median }
32
33
, { "min" , 0 , RRDR_GROUPING_MIN , grouping_init_min , grouping_reset_min , grouping_free_min , grouping_add_min , grouping_flush_min }
33
34
, { "max" , 0 , RRDR_GROUPING_MAX , grouping_init_max , grouping_reset_max , grouping_free_max , grouping_add_max , grouping_flush_max }
34
- , { "ses" , 0 , RRDR_GROUPING_SES , grouping_init_ses , grouping_reset_ses , grouping_free_ses , grouping_add_ses , grouping_flush_ses }
35
- , { "stddev" , 0 , RRDR_GROUPING_STDDEV , grouping_init_stddev , grouping_reset_stddev , grouping_free_stddev , grouping_add_stddev , grouping_flush_stddev }
36
35
, { "sum" , 0 , RRDR_GROUPING_SUM , grouping_init_sum , grouping_reset_sum , grouping_free_sum , grouping_add_sum , grouping_flush_sum }
36
+
37
+ // stddev module provides mean, variance and coefficient of variation
38
+ , { "stddev" , 0 , RRDR_GROUPING_STDDEV , grouping_init_stddev , grouping_reset_stddev , grouping_free_stddev , grouping_add_stddev , grouping_flush_stddev }
39
+ , { "cv" , 0 , RRDR_GROUPING_CV , grouping_init_stddev , grouping_reset_stddev , grouping_free_stddev , grouping_add_stddev , grouping_flush_coefficient_of_variation }
40
+ //, { "mean" , 0, RRDR_GROUPING_MEAN , grouping_init_stddev , grouping_reset_stddev , grouping_free_stddev , grouping_add_stddev , grouping_flush_mean }
41
+ //, { "variance" , 0, RRDR_GROUPING_VARIANCE , grouping_init_stddev , grouping_reset_stddev , grouping_free_stddev , grouping_add_stddev , grouping_flush_variance }
42
+
43
+ // single exponential smoothing or exponential weighted moving average
44
+ , { "ses" , 0 , RRDR_GROUPING_SES , grouping_init_ses , grouping_reset_ses , grouping_free_ses , grouping_add_ses , grouping_flush_ses }
45
+ , { "ema" , 0 , RRDR_GROUPING_SES , grouping_init_ses , grouping_reset_ses , grouping_free_ses , grouping_add_ses , grouping_flush_ses }
46
+ , { "ewma" , 0 , RRDR_GROUPING_SES , grouping_init_ses , grouping_reset_ses , grouping_free_ses , grouping_add_ses , grouping_flush_ses }
47
+
48
+ // double exponential smoothing
49
+ , { "des" , 0 , RRDR_GROUPING_DES , grouping_init_des , grouping_reset_des , grouping_free_des , grouping_add_des , grouping_flush_des }
50
+
51
+ // terminator
37
52
, { NULL , 0 , RRDR_GROUPING_UNDEFINED , grouping_init_average , grouping_reset_average , grouping_free_average , grouping_add_average , grouping_flush_average }
38
53
};
39
54
@@ -431,7 +446,7 @@ RRDR *rrd2rrdr(
431
446
info ("INTERNAL CHECK: %s: requested gtime %ld secs, is greater than the desired duration %ld secs" , st -> id , group_time_requested , duration );
432
447
#endif
433
448
434
- group = points_requested ; // use all the points
449
+ group = available_points ; // use all the points
435
450
}
436
451
else {
437
452
// the points we should group to satisfy gtime
0 commit comments