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, service
protected transient MBeanServer mBeanServer
protected transient org.codehaus.jackson.JsonFactory jsonFactory
public void init() throws javax.servlet.ServletException
init
in class javax.servlet.GenericServlet
javax.servlet.ServletException
public void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
doGet
in class javax.servlet.http.HttpServlet
request
- The servlet request we are processingresponse
- The servlet response we are creatingCopyright © 2022 The Apache Software Foundation. All rights reserved.