@InterfaceAudience.Private public class JMXJsonServlet extends javax.servlet.http.HttpServlet
 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, javax.management.QueryExp)
 method.
 
 For example http://.../jmx?qry=Hadoop:* will return
 all hadoop metrics exposed through JMX.
 
 The optional get parameter is used to query an specific
 attribute of a JMX bean.  The format of the URL is
 http://.../jmx?get=MXBeanName::AttributeName
 
 For example
 
 http://../jmx?get=Hadoop:service=NameNode,name=NameNodeInfo::ClusterId
  will return the cluster id of the namenode mxbean.
 
 If we are not sure on the exact attribute and we want to get all the attributes that match one or
 more given pattern then the format is
 http://.../jmx?get=MXBeanName::*[RegExp1],*[RegExp2]
 
 For example
  
 http://../jmx?get=Hadoop:service=HBase,name=RegionServer,sub=Tables::[a-zA-z_0-9]*memStoreSize
  
 http://../jmx?get=Hadoop:service=HBase,name=RegionServer,sub=Tables::[a-zA-z_0-9]*memStoreSize,[a-zA-z_0-9]*storeFileSize
 
 
 
qry or the get parameter is not formatted
 correctly then a 400 BAD REQUEST http response code will be returned.
 
 If a resouce such as a mbean or attribute can not be found, a 404 SC_NOT_FOUND http response code will be returned.
The return format is JSON and in the form
  {
    "beans" : [
      {
        "name":"bean-name"
        ...
      }
    ]
  }
  
  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.
  Optional paramater "callback" should be used to deliver JSONP response.
 
| Modifier and Type | Field and Description | 
|---|---|
| private static String | CALLBACK_PARAM | 
| private static String | INCLUDE_DESCRIPTIONIf query string includes 'description', then we will emit bean and attribute descriptions to
 output IFF they are not null and IFF the description is not the same as the attribute name:
 i.e. | 
| protected JSONBean | jsonBeanWriter | 
| private static org.slf4j.Logger | LOG | 
| protected MBeanServer | mBeanServerMBean server. | 
| private static long | serialVersionUID | 
| Constructor and Description | 
|---|
| JMXJsonServlet() | 
| Modifier and Type | Method and Description | 
|---|---|
| private String | checkCallbackName(String callbackName)Verifies that the callback property, if provided, is purely alphanumeric. | 
| 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. | 
doDelete, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service, serviceprivate static final org.slf4j.Logger LOG
private static final long serialVersionUID
private static final String CALLBACK_PARAM
private static final String INCLUDE_DESCRIPTION
protected transient MBeanServer mBeanServer
protected transient JSONBean jsonBeanWriter
public JMXJsonServlet()
public void init() throws javax.servlet.ServletException
init in class javax.servlet.GenericServletjavax.servlet.ServletExceptionpublic void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws IOException
doGet in class javax.servlet.http.HttpServletrequest - The servlet request we are processingresponse - The servlet response we are creatingIOExceptionprivate String checkCallbackName(String callbackName) throws IOException
callbackName - The callback name, can be null.IOException - If the name is disallowed.Copyright © 2007–2021 The Apache Software Foundation. All rights reserved.