Mercurial > prosody-modules
diff mod_pubsub_alertmanager/mod_pubsub_alertmanager.lua @ 5485:67190744b1eb
mod_pubsub_alertmanager: Support for per-path config overrides
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 23 May 2023 19:40:38 +0100 |
parents | adda872fa9e1 |
children |
line wrap: on
line diff
--- a/mod_pubsub_alertmanager/mod_pubsub_alertmanager.lua Thu May 18 21:11:13 2023 +0200 +++ b/mod_pubsub_alertmanager/mod_pubsub_alertmanager.lua Tue May 23 19:40:38 2023 +0100 @@ -29,11 +29,16 @@ return 202; end -local node_template = module:get_option_string("alertmanager_node_template", "{path?alerts}"); +local global_node_template = module:get_option_string("alertmanager_node_template", "{path?alerts}"); +local path_configs = module:get_option("alertmanager_path_configs", {}); function handle_POST(event, path) local request = event.request; + local config = path_configs[path] or {}; + local node_template = config.node_template or global_node_template; + local publisher = config.publisher or request.ip; + local payload = json.decode(event.request.body); if type(payload) ~= "table" then return 400; end if payload.version ~= "4" then return 501; end @@ -55,7 +60,7 @@ end local node = render(node_template, {alert = alert, path = path, payload = payload, request = request}); - local ret = publish_payload(node, request.ip, uuid_generate(), item); + local ret = publish_payload(node, publisher, uuid_generate(), item); if ret ~= 202 then return ret end