Skip to content

Commit

Permalink
HBASE-28315 Remove noisy WARN from trying to construct MetricsServlet (
Browse files Browse the repository at this point in the history
…#5651)

Signed-off-by: Duo Zhang <zhangduo@apache.org>
  • Loading branch information
bbeaudreault committed Jan 25, 2024
1 parent be73106 commit b6f4a20
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,9 @@ public class HttpServer implements FilterContainer {
.put("jmx",
new ServletConfig("jmx", "/jmx", "org.apache.hadoop.hbase.http.jmx.JMXJsonServlet"))
.put("metrics",
new ServletConfig("metrics", "/metrics", "org.apache.hadoop.metrics.MetricsServlet"))
// MetricsServlet is deprecated in hadoop 2.8 and removed in 3.0. We shouldn't expect it,
// so pass false so that we don't create a noisy warn during instantiation.
new ServletConfig("metrics", "/metrics", "org.apache.hadoop.metrics.MetricsServlet", false))
.put("prometheus", new ServletConfig("prometheus", "/prometheus",
"org.apache.hadoop.hbase.http.prometheus.PrometheusHadoopServlet"))
.build();
Expand Down Expand Up @@ -836,16 +838,19 @@ protected void addDefaultServlets(ContextHandlerCollection contexts, Configurati
/* register metrics servlets */
String[] enabledServlets = conf.getStrings(METRIC_SERVLETS_CONF_KEY, METRICS_SERVLETS_DEFAULT);
for (String enabledServlet : enabledServlets) {
try {
ServletConfig servletConfig = METRIC_SERVLETS.get(enabledServlet);
if (servletConfig != null) {
ServletConfig servletConfig = METRIC_SERVLETS.get(enabledServlet);
if (servletConfig != null) {
try {
Class<?> clz = Class.forName(servletConfig.getClazz());
addPrivilegedServlet(servletConfig.getName(), servletConfig.getPathSpec(),
clz.asSubclass(HttpServlet.class));
} catch (Exception e) {
if (servletConfig.isExpected()) {
// metrics are not critical to read/write, so an exception here shouldn't be fatal
// if the class was expected we should warn though
LOG.warn("Couldn't register the servlet " + enabledServlet, e);
}
}
} catch (Exception e) {
/* shouldn't be fatal, so warn the user about it */
LOG.warn("Couldn't register the servlet " + enabledServlet, e);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,20 @@

@InterfaceAudience.Private
class ServletConfig {
private String name;
private String pathSpec;
private String clazz;
private final String name;
private final String pathSpec;
private final String clazz;
private final boolean expected;

public ServletConfig(String name, String pathSpec, String clazz) {
this(name, pathSpec, clazz, true);
}

public ServletConfig(String name, String pathSpec, String clazz, boolean expected) {
this.name = name;
this.pathSpec = pathSpec;
this.clazz = clazz;
this.expected = expected;
}

public String getName() {
Expand All @@ -44,4 +50,8 @@ public String getPathSpec() {
public String getClazz() {
return clazz;
}

public boolean isExpected() {
return expected;
}
}

0 comments on commit b6f4a20

Please sign in to comment.