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 01:31:40 UTC
svn commit: r1441667 -
/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Main.java
Author: jxiang
Date: Sat Feb 2 00:31:40 2013
New Revision: 1441667
URL: http://svn.apache.org/viewvc?rev=1441667&view=rev
Log:
HBASE-7738 REST server should publish metrics that are available via HTTP
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=1441667&r1=1441666&r2=1441667&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 00:31:40 2013
@@ -34,6 +34,8 @@ import org.apache.hadoop.hbase.rest.filt
import org.apache.hadoop.hbase.security.User;
import org.apache.hadoop.hbase.util.Strings;
import org.apache.hadoop.hbase.util.VersionInfo;
+import org.apache.hadoop.jmx.JMXJsonServlet;
+import org.apache.hadoop.metrics.MetricsServlet;
import org.apache.hadoop.net.DNS;
import java.util.List;
@@ -57,6 +59,7 @@ import com.sun.jersey.spi.container.serv
* <li>-ro --readonly : server mode</li>
* </ul>
*/
+@SuppressWarnings("deprecation")
public class Main implements Constants {
private static void printUsageAndExit(Options options, int exitCode) {
@@ -154,12 +157,27 @@ public class Main implements Constants {
server.setSendServerVersion(false);
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);
- // login the server principal (if using secure Hadoop)
+ context.getServletContext().setAttribute("hadoop.conf", conf);
+
+ // login the server principal (if using secure Hadoop)
if (User.isSecurityEnabled() && User.isHBaseSecurityEnabled(conf)) {
String machineName = Strings.domainNamePointerToHostName(
DNS.getDefaultHost(conf.get("hbase.rest.dns.interface", "default"),