rrdtool plugin: Changes after review
authorPavel Rochnyack <pavel2000@ngs.ru>
Wed, 19 Jul 2017 12:28:15 +0000 (19:28 +0700)
committerFlorian Forster <octo@collectd.org>
Thu, 20 Jul 2017 05:56:11 +0000 (07:56 +0200)
* Handle "CacheFlush" as a double
* Updated documentation spelling

src/collectd.conf.pod
src/rrdtool.c

index f94669a..784c405 100644 (file)
@@ -6472,13 +6472,14 @@ anymore for some reason (the computer was shut down, the network is broken,
 etc.) some values may still be in the cache. If B<CacheFlush> is set, then
 every I<Seconds> seconds the entire cache is searched for entries older than
 B<CacheTimeout> + B<RandomTimeout> seconds. The entries found are written to
-disk. Since entire cache scan is kind of expensive and does nothing under normal
-circumstances, this value should not be too small. 900 seconds might be a good
-value, though setting this to 7200 seconds doesn't normally do much harm either.
-
-Default value for this option is 10x of B<CacheTimeout>.
-If value of B<CacheFlush> less than value of B<CacheTimeout> then default value
-used too.
+disk. Since scanning the entire cache is kind of expensive and does nothing
+under normal circumstances, this value should not be too small. 900 seconds
+might be a good value, though setting this to 7200 seconds doesn't normally
+do much harm either.
+
+Defaults to 10x B<CacheTimeout>.
+B<CacheFlush> must be larger than or equal to B<CacheTimeout>, otherwise the
+above default is used.
 
 =item B<CacheTimeout> I<Seconds>
 
index dd2df0f..f12b1ce 100644 (file)
@@ -863,7 +863,7 @@ static int rrd_config(const char *key, const char *value) {
     }
     cache_timeout = DOUBLE_TO_CDTIME_T(tmp);
   } else if (strcasecmp("CacheFlush", key) == 0) {
-    int tmp = atoi(value);
+    double tmp = atof(value);
     if (tmp < 0) {
       fprintf(stderr, "rrdtool: `CacheFlush' must "
                       "be greater than 0.\n");
@@ -871,7 +871,7 @@ static int rrd_config(const char *key, const char *value) {
             "be greater than 0.\n");
       return (1);
     }
-    cache_flush_timeout = TIME_T_TO_CDTIME_T(tmp);
+    cache_flush_timeout = DOUBLE_TO_CDTIME_T(tmp);
   } else if (strcasecmp("DataDir", key) == 0) {
     char *tmp;
     size_t len;
@@ -1054,11 +1054,11 @@ static int rrd_init(void) {
     random_timeout = 0;
     cache_flush_timeout = 0;
   } else if (cache_flush_timeout < cache_timeout) {
-    INFO("rrdtool plugin: \"CacheFlush %u\" is less than \"CacheTimeout %u\". "
-         "Ajusting \"CacheFlush\" to %u seconds.",
-         (unsigned int)CDTIME_T_TO_TIME_T(cache_flush_timeout),
-         (unsigned int)CDTIME_T_TO_TIME_T(cache_timeout),
-         (unsigned int)CDTIME_T_TO_TIME_T(cache_timeout * 10));
+    INFO("rrdtool plugin: \"CacheFlush %.3f\" is less than \"CacheTimeout %.3f\". "
+         "Ajusting \"CacheFlush\" to %.3f seconds.",
+         CDTIME_T_TO_DOUBLE(cache_flush_timeout),
+         CDTIME_T_TO_DOUBLE(cache_timeout),
+         CDTIME_T_TO_DOUBLE(cache_timeout * 10));
     cache_flush_timeout = 10 * cache_timeout;
   }