37 lines
876 B
Lua
37 lines
876 B
Lua
local _M = {}
|
|
local timing
|
|
|
|
local function before_toip(qname, _port, _dnsCacheOnly, _try_list)
|
|
timing.enter_context("dns")
|
|
timing.enter_context(qname)
|
|
timing.enter_context("resolve")
|
|
end
|
|
|
|
|
|
local function after_toip()
|
|
timing.leave_context() -- leave resolve
|
|
timing.leave_context() -- leave qname
|
|
timing.leave_context() -- leave dns
|
|
end
|
|
|
|
|
|
function _M.register_hooks(timing_module)
|
|
local req_dyn_hook = require("kong.dynamic_hook")
|
|
|
|
--[[
|
|
The `toip()` function can receive <= 4 arguments (including `self`).
|
|
Here is the signature of the `toip()` function:
|
|
function toip(self, qname, port, dnsCacheOnly, try_list)
|
|
--]]
|
|
local client = assert(package.loaded["kong.resty.dns.client"])
|
|
req_dyn_hook.hook_function("timing", client, "toip", 4, {
|
|
befores = { before_toip },
|
|
afters = { after_toip },
|
|
})
|
|
|
|
timing = timing_module
|
|
end
|
|
|
|
|
|
return _M
|