--- a/src/rrdtool.c +++ b/src/rrdtool.c @@ -60,6 +60,7 @@ typedef struct rrd_queue_s rrd_queue_t; static const char *config_keys[] = { "CacheTimeout", "CacheFlush", "CreateFilesAsync", "DataDir", "StepSize", "HeartBeat", "RRARows", "RRATimespan", + "RRASingle", "XFF", "WritesPerSecond", "RandomTimeout"}; static int config_keys_num = STATIC_ARRAY_SIZE(config_keys); @@ -77,6 +78,8 @@ static rrdcreate_config_t rrdcreate_conf /* timespans = */ NULL, /* timespans_num = */ 0, + /* rrasingle = */ 0, + /* consolidation_functions = */ NULL, /* consolidation_functions_num = */ 0, @@ -949,6 +952,12 @@ static int rrd_config(const char *key, c /* compar = */ rrd_compare_numeric); free(value_copy); + } else if (strcasecmp ("RRASingle", key) == 0) { + if (IS_TRUE (value)) + { + rrdcreate_config.rrasingle = 1; + NOTICE ("rrdtool plugin: RRASingle = true: creating only AVERAGE RRAs"); + } } else if (strcasecmp("XFF", key) == 0) { double tmp = atof(value); if ((tmp < 0.0) || (tmp >= 1.0)) { --- a/src/utils_rrdcreate.c +++ b/src/utils_rrdcreate.c @@ -180,6 +180,9 @@ static int rra_get(char ***ret, const va rts_num = rra_timespans_num; } + if (cfg->rrasingle) + rra_types_num = 1; + rra_max = rts_num * rra_types_num; assert(rra_max > 0); --- a/src/utils_rrdcreate.h +++ b/src/utils_rrdcreate.h @@ -40,6 +40,8 @@ struct rrdcreate_config_s { int *timespans; size_t timespans_num; + int rrasingle; + char **consolidation_functions; size_t consolidation_functions_num;