From 1e0166fc9b2977e067d310dcbc0e6491eb452fba Mon Sep 17 00:00:00 2001 From: Justin Bertram Date: Thu, 15 Feb 2024 14:51:02 -0600 Subject: [PATCH] [#25] always look for registry when servicing requests --- ...ArtemisPrometheusMetricsPluginServlet.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/artemis-prometheus-metrics-plugin-servlet/src/main/java/com/redhat/amq/broker/core/server/metrics/plugins/ArtemisPrometheusMetricsPluginServlet.java b/artemis-prometheus-metrics-plugin-servlet/src/main/java/com/redhat/amq/broker/core/server/metrics/plugins/ArtemisPrometheusMetricsPluginServlet.java index 63ee182..43cfeb4 100644 --- a/artemis-prometheus-metrics-plugin-servlet/src/main/java/com/redhat/amq/broker/core/server/metrics/plugins/ArtemisPrometheusMetricsPluginServlet.java +++ b/artemis-prometheus-metrics-plugin-servlet/src/main/java/com/redhat/amq/broker/core/server/metrics/plugins/ArtemisPrometheusMetricsPluginServlet.java @@ -35,22 +35,29 @@ public class ArtemisPrometheusMetricsPluginServlet extends HttpServlet { private PrometheusMeterRegistry registry; public ArtemisPrometheusMetricsPluginServlet() { - final Set registries = Metrics.globalRegistry.getRegistries(); - if (registries != null && !registries.isEmpty()) { - for (final MeterRegistry meterRegistry : registries) { - if (meterRegistry instanceof PrometheusMeterRegistry) { - registry = (PrometheusMeterRegistry) meterRegistry; - break; + locateRegistry(); + } + + private PrometheusMeterRegistry locateRegistry() { + if (registry == null) { + final Set registries = Metrics.globalRegistry.getRegistries(); + if (registries != null && !registries.isEmpty()) { + for (final MeterRegistry meterRegistry : registries) { + if (meterRegistry instanceof PrometheusMeterRegistry) { + registry = (PrometheusMeterRegistry) meterRegistry; + break; + } } } } + return registry; } @Override protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { resp.setStatus(HttpServletResponse.SC_OK); - if (registry == null) { + if (locateRegistry() == null) { resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Prometheus meter registry is null. Has the Prometheus Metrics Plugin been configured?"); } else { try (Writer writer = resp.getWriter()) {