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 a 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 the qry or the get parameter is not formatted
correctly then a 400 BAD REQUEST http response code will be returned.
If a resource such as an 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 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 |
|---|---|
protected org.codehaus.jackson.JsonFactory |
jsonFactory |
protected MBeanServer |
mBeanServer
MBean server.
|
| Constructor and Description |
|---|
JMXJsonServlet() |
| Modifier and Type | Method and Description |
|---|---|
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, serviceprotected transient MBeanServer mBeanServer
protected transient org.codehaus.jackson.JsonFactory jsonFactory
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)
doGet in class javax.servlet.http.HttpServletrequest - The servlet request we are processingresponse - The servlet response we are creatingCopyright © 2019 The Apache Software Foundation. All Rights Reserved.