Add monitor lua module
This commit is contained in:
parent
764bcd5a1b
commit
966e9f5e25
6 changed files with 266 additions and 0 deletions
46
rootfs/etc/nginx/lua/monitor.lua
Normal file
46
rootfs/etc/nginx/lua/monitor.lua
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
local socket = ngx.socket.udp
|
||||
local cjson = require('cjson')
|
||||
local defer = require('defer')
|
||||
local assert = assert
|
||||
|
||||
local _M = {}
|
||||
|
||||
local function send_data(jsonData)
|
||||
local s = assert(socket())
|
||||
assert(s:setpeername("127.0.0.1", 8000))
|
||||
assert(s:send(jsonData))
|
||||
assert(s:close())
|
||||
end
|
||||
|
||||
function _M.encode_nginx_stats()
|
||||
return cjson.encode({
|
||||
host = ngx.var.host or "-",
|
||||
status = ngx.var.status or "-",
|
||||
remoteAddr = ngx.var.remote_addr or "-",
|
||||
realIpAddr = ngx.var.realip_remote_addr or "-",
|
||||
remoteUser = ngx.var.remote_user or "-",
|
||||
bytesSent = tonumber(ngx.var.bytes_sent) or -1,
|
||||
protocol = ngx.var.server_protocol or "-",
|
||||
method = ngx.var.request_method or "-",
|
||||
uri = ngx.var.uri or "-",
|
||||
requestLength = tonumber(ngx.var.request_length) or -1,
|
||||
requestTime = tonumber(ngx.var.request_time) or -1,
|
||||
upstreamName = ngx.var.proxy_upstream_name or "-",
|
||||
upstreamIP = ngx.var.upstream_addr or "-",
|
||||
upstreamResponseTime = tonumber(ngx.var.upstream_response_time) or -1,
|
||||
upstreamStatus = ngx.var.upstream_status or "-",
|
||||
namespace = ngx.var.namespace or "-",
|
||||
ingress = ngx.var.ingress_name or "-",
|
||||
service = ngx.var.service_name or "-",
|
||||
})
|
||||
end
|
||||
|
||||
function _M.call()
|
||||
local ok, err = defer.to_timer_phase(send_data, _M.encode_nginx_stats())
|
||||
if not ok then
|
||||
ngx.log(ngx.ERR, "failed to defer send_data to timer phase: ", err)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
return _M
|
||||
Loading…
Add table
Add a link
Reference in a new issue