]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Tidy graphite_config function in metric exporter 1091/head
authorAndrew Lewis <nerf@judo.za.org>
Wed, 2 Nov 2016 07:36:52 +0000 (09:36 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Wed, 2 Nov 2016 08:00:56 +0000 (10:00 +0200)
 - Also fix statefile-less configuration

src/plugins/lua/metric_exporter.lua

index fac17c40ee6dd43669904bd933ad7677ef9c7f19..eb56d8c233ca1df747f5d44ff3edae7c5aacfb5c 100644 (file)
@@ -51,22 +51,12 @@ local valid_metrics = {
   'spam_count',
 }
 
-local function graphite_config(opts)
-  local defaults = {
-    host = 'localhost',
-    port = 2003,
-    metric_prefix = 'rspamd'
-  }
-  for k, v in pairs(defaults) do
-    if settings[k] == nil then
-      settings[k] = v
-    end
-  end
-  if type(settings['metrics']) ~= 'table' or #settings['metrics'] == 0 then
+local function validate_metrics(settings_metrics)
+  if type(settings_metrics) ~= 'table' or #settings_metrics == 0 then
     logger.err('No metrics specified for collection')
     return false
   end
-  for _, v in ipairs(settings['metrics']) do
+  for _, v in ipairs(settings_metrics) do
     local isvalid = false
     for _, vm in ipairs(valid_metrics) do
       if vm == v then
@@ -87,6 +77,23 @@ local function graphite_config(opts)
   return true
 end
 
+local function load_defaults(defaults)
+  for k, v in pairs(defaults) do
+    if settings[k] == nil then
+      settings[k] = v
+    end
+  end
+end
+
+local function graphite_config(opts)
+  load_defaults({
+    host = 'localhost',
+    port = 2003,
+    metric_prefix = 'rspamd'
+  })
+  return validate_metrics(settings['metrics'])
+end
+
 local function graphite_push(kwargs)
   local stamp
   if kwargs['time'] then
@@ -140,10 +147,6 @@ local function configure_metric_exporter()
     logger.err('Backend is invalid or unspecified')
     return false
   end
-  if not opts['statefile'] then
-    logger.err('No statefile specified')
-    return false
-  end
   for k, v in pairs(opts) do
     settings[k] = v
   end