Files
2026-07-13 12:32:21 +08:00

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