SkyeYoung commented on code in PR #12383: URL: https://github.com/apache/apisix/pull/12383#discussion_r2222637943
########## apisix/plugin.lua: ########## @@ -356,15 +354,6 @@ function _M.load(config) if not ok then core.log.error("failed to load plugins: ", err) end - - local enabled = core.table.array_find(http_plugin_names, "prometheus") ~= nil - local active = exporter.get_prometheus() ~= nil - if not enabled then - exporter.destroy() - end - if enabled and not active then - exporter.http_init() - end Review Comment: [The original code](https://github.com/apache/apisix/pull/11117) skipped [plugin.init()](https://github.com/SkyeYoung/apisix/blob/72c6f229e681b36efa226b51713ebdb23075a575/apisix/plugin.lua#L191-L192) and [old_plugin.destroy()](https://github.com/SkyeYoung/apisix/blob/72c6f229e681b36efa226b51713ebdb23075a575/apisix/plugin.lua#L121-L122) used in https://github.com/apache/apisix/blob/6fb9bf94281525c1fca397f681b4890b69440369/apisix/plugin.lua, and implemented the overload of the prometheus plugin for some reason that I have not yet understood (perhaps because `prometheus.lua` originally did not contain two functions init and destroy). --- The initial reason was that even after separating the `init_prometheus` part and placing it at the end of `init_worker`, directly calling `exporter_timer()` would still cause an error. After debugging, another initialization logic was found here. This is obviously redundant. Currently, we provide `init` and `destroy` functions in `prometheus.lua`, allowing the initialization and reloading of the prometheus plugin to be handled within the plugin's own files, reducing coupling. This also allows the prometheus plugin to revert to the mechanism provided by `plugin.lua`, reducing special cases, lowering the cost of understanding, and making the code easier to maintain. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@apisix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org