diff options
author | Andrew Lewis <nerf@judo.za.org> | 2016-11-02 09:36:52 +0200 |
---|---|---|
committer | Andrew Lewis <nerf@judo.za.org> | 2016-11-02 10:00:56 +0200 |
commit | 8c6ffeeb879aa2cc31d8fe5c570c0215f524a1d3 (patch) | |
tree | 2d1c3fb82de87eedf7c80cf0003f2677cb27bb35 | |
parent | 246de3cd6ffe6fdfb6af02899ff8d22deff0bdbd (diff) | |
download | rspamd-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.lua | 37 |
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 |