You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jx...@apache.org on 2013/02/02 06:59:39 UTC

svn commit: r1441703 - /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Main.java

Author: jxiang
Date: Sat Feb  2 05:59:39 2013
New Revision: 1441703

URL: http://svn.apache.org/viewvc?rev=1441703&view=rev
Log:
HBASE-7738 REST server should publish metrics that are available via HTTP - ADDENDUM

Modified:
    hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Main.java

Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Main.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Main.java?rev=1441703&r1=1441702&r2=1441703&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Main.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Main.java Sat Feb  2 05:59:39 2013
@@ -158,24 +158,31 @@ public class Main implements Constants {
     server.setSendDateHeader(false);
     server.setStopAtShutdown(true);
 
-    // set up the JMX servlet container for Jetty
-    ServletHolder jmx = new ServletHolder(JMXJsonServlet.class);
-    // set up the metrics servlet container for Jetty
-    ServletHolder metrics = new ServletHolder(MetricsServlet.class);
-
-    String metricsPath =
-      servlet.getConfiguration().get("hbase.rest.path.metrics", "/metrics");
-    String jmxPath =
-      servlet.getConfiguration().get("hbase.rest.path.jmx", "/jmx");
-
       // set up context
     Context context = new Context(server, "/", Context.SESSIONS);
-    context.addServlet(metrics, metricsPath);
-    context.addServlet(jmx, jmxPath);
     context.addServlet(sh, "/*");
     context.addFilter(GzipFilter.class, "/*", 0);
 
-    context.getServletContext().setAttribute("hadoop.conf", conf);
+    // Disable the JMX and metrics servlet by default so that
+    // not to confuse existing applications use jmx/metrics as table name
+    if (servlet.getConfiguration().getBoolean(
+        "hbase.rest.enable.jmx_metrics", false)) {
+
+      // set up the JMX servlet container for Jetty
+      ServletHolder jmx = new ServletHolder(JMXJsonServlet.class);
+      // set up the metrics servlet container for Jetty
+      ServletHolder metrics = new ServletHolder(MetricsServlet.class);
+
+      String metricsPath =
+        servlet.getConfiguration().get("hbase.rest.path.metrics", "/metrics");
+      String jmxPath =
+        servlet.getConfiguration().get("hbase.rest.path.jmx", "/jmx");
+
+      context.addServlet(metrics, metricsPath);
+      context.addServlet(jmx, jmxPath);
+
+      context.getServletContext().setAttribute("hadoop.conf", conf);
+    }
 
     // login the server principal (if using secure Hadoop)
     if (User.isSecurityEnabled() && User.isHBaseSecurityEnabled(conf)) {