--- 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,
|
|
|
|
@@ -950,6 +953,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;
|
|
|