From 32b6e3fb6ad8d549096526a42040fc164eeb3c9c Mon Sep 17 00:00:00 2001 From: Michael Schechter <61873300+mschechter-bellese@users.noreply.github.com> Date: Fri, 30 Apr 2021 09:57:54 -0400 Subject: [PATCH] Add per-path configurability (#1891) Allows URIs served by the `AdminServlet` to be individually enabled/disabled. --- .../metrics/servlets/AdminServlet.java | 116 ++++++++++++++---- .../servlets/AdminServletExclusionTest.java | 60 +++++++++ .../metrics/servlets/AdminServletUriTest.java | 66 ++++++++++ 3 files changed, 216 insertions(+), 26 deletions(-) create mode 100755 metrics-servlets/src/test/java/com/codahale/metrics/servlets/AdminServletExclusionTest.java create mode 100755 metrics-servlets/src/test/java/com/codahale/metrics/servlets/AdminServletUriTest.java diff --git a/metrics-servlets/src/main/java/com/codahale/metrics/servlets/AdminServlet.java b/metrics-servlets/src/main/java/com/codahale/metrics/servlets/AdminServlet.java index 3fe3e89621..342c72c788 100755 --- a/metrics-servlets/src/main/java/com/codahale/metrics/servlets/AdminServlet.java +++ b/metrics-servlets/src/main/java/com/codahale/metrics/servlets/AdminServlet.java @@ -1,6 +1,7 @@ package com.codahale.metrics.servlets; import javax.servlet.ServletConfig; +import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -16,14 +17,19 @@ public class AdminServlet extends HttpServlet { public static final String DEFAULT_THREADS_URI = "/threads"; public static final String DEFAULT_CPU_PROFILE_URI = "/pprof"; + public static final String METRICS_ENABLED_PARAM_KEY = "metrics-enabled"; public static final String METRICS_URI_PARAM_KEY = "metrics-uri"; + public static final String PING_ENABLED_PARAM_KEY = "ping-enabled"; public static final String PING_URI_PARAM_KEY = "ping-uri"; + public static final String THREADS_ENABLED_PARAM_KEY = "threads-enabled"; public static final String THREADS_URI_PARAM_KEY = "threads-uri"; + public static final String HEALTHCHECK_ENABLED_PARAM_KEY = "healthcheck-enabled"; public static final String HEALTHCHECK_URI_PARAM_KEY = "healthcheck-uri"; public static final String SERVICE_NAME_PARAM_KEY = "service-name"; + public static final String CPU_PROFILE_ENABLED_PARAM_KEY = "cpu-profile-enabled"; public static final String CPU_PROFILE_URI_PARAM_KEY = "cpu-profile-uri"; - private static final String TEMPLATE = String.format( + private static final String BASE_TEMPLATE = "%n" + "%n" + @@ -33,16 +39,18 @@ public class AdminServlet extends HttpServlet { "
%n" + "