mirror of
https://github.com/bunkerity/bunkerweb
synced 2026-05-24 09:28:37 +00:00
bw - add /redis/stats api endpoint
This commit is contained in:
parent
9fc7c8de94
commit
9a5208d678
1 changed files with 37 additions and 17 deletions
|
|
@ -38,25 +38,45 @@ function redis:init_worker()
|
|||
end
|
||||
|
||||
function redis:api()
|
||||
-- Match request
|
||||
if not match(self.ctx.bw.uri, "^/redis/ping$") or self.ctx.bw.request_method ~= "POST" then
|
||||
return self:ret(false, "success")
|
||||
if self.ctx.bw.uri == "/redis/ping" and self.ctx.bw.request_method == "POST" then
|
||||
-- Check redis connection
|
||||
local ok, err = self.clusterstore:connect(true)
|
||||
if not ok then
|
||||
return self:ret(true, "redis connect error : " .. err, HTTP_INTERNAL_SERVER_ERROR)
|
||||
end
|
||||
-- Send ping
|
||||
local ok, err = self.clusterstore:call("ping")
|
||||
self.clusterstore:close()
|
||||
if err then
|
||||
return self:ret(true, "error while sending ping command to redis server : " .. err, HTTP_INTERNAL_SERVER_ERROR)
|
||||
end
|
||||
if not ok then
|
||||
return self:ret(true, "redis ping command failed", HTTP_INTERNAL_SERVER_ERROR)
|
||||
end
|
||||
return self:ret(true, "success", HTTP_OK)
|
||||
end
|
||||
-- Check redis connection
|
||||
local ok, err = self.clusterstore:connect(true)
|
||||
if not ok then
|
||||
return self:ret(true, "redis connect error : " .. err, HTTP_INTERNAL_SERVER_ERROR)
|
||||
if self.ctx.bw.uri == "/redis/stats" and self.ctx.bw.request_method == "GET" then
|
||||
-- Connect to redis
|
||||
local ok, err = self.clusterstore:connect(true)
|
||||
if not ok then
|
||||
return self:ret(true, "redis connect error : " .. err, HTTP_INTERNAL_SERVER_ERROR)
|
||||
end
|
||||
-- Get number of keys
|
||||
local nb_keys, err = self.clusterstore:call("dbsize")
|
||||
self.clusterstore:close()
|
||||
if err then
|
||||
return self:ret(true, "error while sending dbsize command to redis server : " .. err, HTTP_INTERNAL_SERVER_ERROR)
|
||||
end
|
||||
if not ok then
|
||||
return self:ret(true, "redis dbsize command failed", HTTP_INTERNAL_SERVER_ERROR)
|
||||
end
|
||||
-- Return data
|
||||
local data = {
|
||||
redis_nb_keys = nb_keys
|
||||
}
|
||||
return self:ret(true, data, HTTP_OK)
|
||||
end
|
||||
-- Send ping
|
||||
local ok, err = self.clusterstore:call("ping")
|
||||
self.clusterstore:close()
|
||||
if err then
|
||||
return self:ret(true, "error while sending ping command to redis server : " .. err, HTTP_INTERNAL_SERVER_ERROR)
|
||||
end
|
||||
if not ok then
|
||||
return self:ret(true, "redis ping command failed", HTTP_INTERNAL_SERVER_ERROR)
|
||||
end
|
||||
return self:ret(true, "success", HTTP_OK)
|
||||
return self:ret(false, "success")
|
||||
end
|
||||
|
||||
return redis
|
||||
|
|
|
|||
Loading…
Reference in a new issue