Code

rrdcached plugin: Implement the "StepSize", "HeartBeat" and "RRARows" options.
authorFlorian Forster <octo@collectd.org>
Sat, 10 Nov 2012 08:50:22 +0000 (09:50 +0100)
committerFlorian Forster <octo@collectd.org>
Sat, 10 Nov 2012 08:54:53 +0000 (09:54 +0100)
src/collectd.conf.pod
src/rrdcached.c

index e24282c3bdb9310f31aa30c4adb9d54bfb457d43..25a6c06ec8f192129b973d93c0a43268d3ec3949 100644 (file)
@@ -4195,6 +4195,36 @@ Enables or disables the creation of RRD files. If the daemon is not running
 locally, or B<DataDir> is set to a relative path, this will not work as
 expected. Default is B<true>.
 
+=item B<StepSize> I<Seconds>
+
+B<Force> the stepsize of newly created RRD-files. Ideally (and per default)
+this setting is unset and the stepsize is set to the interval in which the data
+is collected. Do not use this option unless you absolutely have to for some
+reason. Setting this option may cause problems with the C<snmp plugin>, the
+C<exec plugin> or when the daemon is set up to receive data from other hosts.
+
+=item B<HeartBeat> I<Seconds>
+
+B<Force> the heartbeat of newly created RRD-files. This setting should be unset
+in which case the heartbeat is set to twice the B<StepSize> which should equal
+the interval in which data is collected. Do not set this option unless you have
+a very good reason to do so.
+
+=item B<RRARows> I<NumRows>
+
+The C<rrdtool plugin> calculates the number of PDPs per CDP based on the
+B<StepSize>, this setting and a timespan. This plugin creates RRD-files with
+three times five RRAs, i. e. five RRAs with the CFs B<MIN>, B<AVERAGE>, and
+B<MAX>. The five RRAs are optimized for graphs covering one hour, one day, one
+week, one month, and one year.
+
+So for each timespan, it calculates how many PDPs need to be consolidated into
+one CDP by calculating:
+  number of PDPs = timespan / (stepsize * rrarows)
+
+Bottom line is, set this no smaller than the width of you graphs in pixels. The
+default is 1200.
+
 =back
 
 =head2 Plugin C<rrdtool>
index ab8d81717534c39e05cc6912eb606969f669ee1b..a3dff3e96e0676a041dae8b953c945720a257bd1 100644 (file)
@@ -161,6 +161,21 @@ static int value_list_to_filename (char *buffer, int buffer_len,
   return (0);
 } /* int value_list_to_filename */
 
+static int rc_config_get_int_positive (oconfig_item_t const *ci, int *ret)
+{
+  int status;
+  int tmp = 0;
+
+  status = cf_util_get_int (ci, &tmp);
+  if (status != 0)
+    return (status);
+  if (tmp < 0)
+    return (EINVAL);
+
+  *ret = tmp;
+  return (0);
+} /* int rc_config_get_int_positive */
+
 static int rc_config (oconfig_item_t *ci)
 {
   int i;
@@ -194,6 +209,12 @@ static int rc_config (oconfig_item_t *ci)
       status = cf_util_get_boolean (child, &config_create_files);
     else if (strcasecmp ("CollectStatistics", key) == 0)
       status = cf_util_get_boolean (child, &config_collect_stats);
+    else if (strcasecmp ("StepSize", key) == 0)
+      status = rc_config_get_int_positive (child, &rrdcreate_config.stepsize);
+    else if (strcasecmp ("HeartBeat", key) == 0)
+      status = rc_config_get_int_positive (child, &rrdcreate_config.heartbeat);
+    else if (strcasecmp ("RRARows", key) == 0)
+      status = rc_config_get_int_positive (child, &rrdcreate_config.rrarows);
     else
     {
       WARNING ("rrdcached plugin: Ignoring invalid option %s.", key);