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 the 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 |
---|---|
protected JSONBean |
jsonBeanWriter |
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 JSONBean jsonBeanWriter
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) throws IOException
doGet
in class javax.servlet.http.HttpServlet
request
- The servlet request we are processingresponse
- The servlet response we are creatingIOException
Copyright © 2007–2019 The Apache Software Foundation. All rights reserved.