Platform MBean visibility via the AS7 management API

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Platform MBean visibility via the AS7 management API

Brian Stansberry
Jason has pushed my patch that provides $subject. [1]

Platform mbeans are available on a standalone server under resource:


For a Host Controller JVM, they can be found at:

/host=<host name>/core-service=platform-mbean

For a Server in a managed domain, they can be found at:

/host=<host name>/server=<server name>/core-service=platform-mbean

The resource at the addresses above is really just a placeholder; the
actual mbeans are exposed via child resources. The names of the child
resources follow a pattern based on the ObjectName of the underlying mbean:

/core-service=platform-mbean/type=memory-pool/name=<escaped pool name>

The "type" and "name" child types match the keys in the standard
platform mbean ObjectName properties. The values for the 'type'
attribute are the same as the ObjectName values, but converted to match
standard domain management API resource name standards:

1) All lower case
2) A '-' used to separate words where the ObjectName preoperty value
would use CamelCase.

ClassLoading -> class-loading
MemoryPool -> memory-pool

The value of the "name" property in a platform mbean depends on the
runtime platform; it is not known in advance. I did not attempt to
convert this portion of the platform mbean names to lower-case with '-'
separator convention. The <escaped pool name> above refers to the fact
that the ObjectName for some mbeans may includes spaces in the value of
the "name" key. Spaces are not valid in resource addresses, so any
spaces have been replaced with the '_' character in the address.

See [2] for the full list of resource names.

Note that the attributes and metrics exposed by these resources are
"runtime" attributes; i.e. they are not directly stored in any
persistent configuration. The handlers for the standard "read-resource"
and "read-children-resources" operations will not include "runtime"
attributes in a result unless parameter "include-runtime" is provided
with value 'true'. So be sure to include that parameter when trying to
read these resources, or you will be a successful but receive an empty

The MBean attributes of the platform mbeans are exposed as resource
attributes. The operations are exposed as operations with the same
parameters. The attribute, operation and parameter names are the same as
what is found in the JDK javadoc for the relevant mbean, except the
CamelCase to lower-case with '-' separator conversion is followed

The only place where an attribute, operation or parameter name should
vary from the JDK name is with the ThreadMXBean's getThreadInfo method.
Some overloaded variants of that method return an array, some a single
value. The domain management API does not support multiple return value
types from an operation with the same name. So, the operation for the
overloaded variants that return a single value is 'get-thread-info'
while for the variants the return multiple values the operation is


[2] The platform mbean names on a standalone server are listed below.
Names are the same for managed domain processes, except they are
prefixed as described above.

/core-service=platform-mbean (placeholder resource)
++ type=buffer-pool (JDK 7 only; placeholder resource)
++++ name=<dynamic> (JDK 7 only)
++ type=class-loading
++ type=compilation
++ type=garbage-collector (placeholder resource)
++++ name=<dynamic>
++ type=logging (JDK 7 only)
++ type=memory
++ type=memory-manager (placeholder resource)
++++ name=<dynamic>
++ type=memory-pool (placeholder resource)
++++ name=<dynamic>
++ type=operating-system
++ type=runtime
++ type=threading

The "placeholder resources" above do not expose any attributes or
operations other than the global operations. They are placeholder nodes
in the resource tree.

Brian Stansberry
Principal Software Engineer
JBoss by Red Hat
jboss-as7-dev mailing list
[hidden email]