From 9d62b9ac08db9893654e4d89018b1961793c40b6 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Mon, 30 Sep 2024 14:19:53 -0400 Subject: [PATCH] [WIP] fix(prometheus): delayed require of WasmX module --- kong/plugins/prometheus/wasmx.lua | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/kong/plugins/prometheus/wasmx.lua b/kong/plugins/prometheus/wasmx.lua index 0b8ef45c1caf..450c5c9d02aa 100644 --- a/kong/plugins/prometheus/wasmx.lua +++ b/kong/plugins/prometheus/wasmx.lua @@ -1,6 +1,6 @@ local buffer = require "string.buffer" local wasm = require "kong.runloop.wasm" -local wasmx_shm = require "resty.wasmx.shm" +local wasmx_shm local fmt = string.format @@ -154,6 +154,19 @@ _M.metric_data = function() local parsed = {} local buf = buf_new() + -- delayed require of the WasmX module, to ensure it is loaded + -- after ngx_wasm_module.so is loaded. + if not wasmx_shm then + local ok, _wasmx_shm = pcall(require, "resty.wasmx.shm") + if ok then + wasmx_shm = _wasmx_shm + end + end + + if not wasmx_shm then + return + end + wasmx_shm.metrics:lock() for key in wasmx_shm.metrics:iterate_keys() do