summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Lewis <nerf@judo.za.org>2016-11-02 09:36:52 +0200
committerAndrew Lewis <nerf@judo.za.org>2016-11-02 10:00:56 +0200
commit8c6ffeeb879aa2cc31d8fe5c570c0215f524a1d3 (patch)
tree2d1c3fb82de87eedf7c80cf0003f2677cb27bb35
parent246de3cd6ffe6fdfb6af02899ff8d22deff0bdbd (diff)
downloadrspamd-8c6ffeeb879aa2cc31d8fe5c570c0215f524a1d3.tar.gz
rspamd-8c6ffeeb879aa2cc31d8fe5c570c0215f524a1d3.zip
[Minor] Tidy graphite_config function in metric exporter
- Also fix statefile-less configuration
-rw-r--r--src/plugins/lua/metric_exporter.lua37
1 files changed, 20 insertions, 17 deletions
diff --git a/src/plugins/lua/metric_exporter.lua b/src/plugins/lua/metric_exporter.lua
index fac17c40e..eb56d8c23 100644
--- a/src/plugins/lua/metric_exporter.lua
+++ b/src/plugins/lua/metric_exporter.lua
@@ -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