Mercurial > prosody-modules
diff mod_http_health/mod_http_health.lua @ 5667:9bcd257dea4e
mod_http_health: Provide a health check HTTP endpoint
Someone in the chat asked about a health check endpoint, which reminded
me of mod_http_status, which was simplified to produce this module.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 06 Oct 2023 16:49:57 +0200 |
parents | mod_http_status/mod_http_status.lua@6af2d74daa15 |
children | 09233b625cb9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_http_health/mod_http_health.lua Fri Oct 06 16:49:57 2023 +0200 @@ -0,0 +1,21 @@ +module:set_global(); + + +local modulemanager = require "core.modulemanager"; + +module:provides("http", { + route = { + GET = function() + for host in pairs(prosody.hosts) do + local mods = modulemanager.get_modules(host); + for _, mod in pairs(mods) do + if mod.module.status_type == "error" then + return { status_code = 500; headers = { content_type = "text/plain" }; body = "HAS ERRORS\n" }; + end + end + end + + return { status_code = 200; headers = { content_type = "text/plain" }; body = "OK\n" }; + end; + }; +});