Class JMXJsonServlet

  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by org.apache.hadoop.jmx.JMXJsonServlet
All Implemented Interfaces:
Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

public class JMXJsonServlet
extends javax.servlet.http.HttpServlet

Provides Read only web access to JMX.

This servlet generally will be placed under the /jmx URL for each HttpServer. It provides read only access to JMX metrics. The optional qry parameter may be used to query only a subset of the JMX Beans. This query functionality is provided through the MBeanServer.queryNames(ObjectName, method.

For example http://.../jmx?qry=Hadoop:* will return all hadoop metrics exposed through JMX.

If the qry parameter is not formatted correctly then a 400 BAD REQUEST http response code will be returned.

The return format is JSON and in the form

    "beans" : [

The servlet attempts to convert the the JMXBeans into JSON. Each bean's attributes will be converted to a JSON object member. If the attribute is a boolean, a number, a string, or an array it will be converted to the JSON equivalent. If the value is a CompositeData then it will be converted to a JSON object with the keys as the name of the JSON member and the value is converted following these same rules. If the value is a TabularData then it will be converted to an array of the CompositeData elements that it contains. All other objects will be converted to a string and output as such. The bean's name and modelerType will be returned for all beans.

See Also:
Serialized Form

Field Summary
protected  MBeanServer mBeanServer
          MBean server.
Constructor Summary
Method Summary
 void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Process a GET request for the specified resource.
 void init()
          Initialize this servlet.
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service, service
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


protected transient MBeanServer mBeanServer
MBean server.

Constructor Detail


public JMXJsonServlet()
Method Detail


public void init()
          throws javax.servlet.ServletException
Initialize this servlet.

init in class javax.servlet.GenericServlet


public void doGet(javax.servlet.http.HttpServletRequest request,
                  javax.servlet.http.HttpServletResponse response)
Process a GET request for the specified resource.

doGet in class javax.servlet.http.HttpServlet
request - The servlet request we are processing
response - The servlet response we are creating

Copyright © 2009 The Apache Software Foundation