From: Andrew Lewis Date: Wed, 2 Nov 2016 07:36:52 +0000 (+0200) Subject: [Minor] Tidy graphite_config function in metric exporter X-Git-Tag: 1.4.0~142^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F1091%2Fhead;p=thirdparty%2Frspamd.git [Minor] Tidy graphite_config function in metric exporter - Also fix statefile-less configuration --- diff --git a/src/plugins/lua/metric_exporter.lua b/src/plugins/lua/metric_exporter.lua index fac17c40ee..eb56d8c233 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