Java Management Extensions (JMX) provide a standard mechanism to monitor and manage
applications. By default Spring Boot will expose management endpoints as JMX MBeans
under the org.springframework.boot
domain.
The name of the MBean is usually generated from the id
of the endpoint. For example
the health
endpoint is exposed as org.springframework.boot:type=Endpoint,name=Health
.
If your application contains more than one Spring ApplicationContext
you may find that
names clash. To solve this problem you can set the management.endpoints.jmx.unique-names
property to true
so that MBean names are always unique.
You can also customize the JMX domain under which endpoints are exposed. Here is an
example application.properties
:
management.endpoints.jmx.domain=com.example.myapp management.endpoints.jmx.unique-names=true
If you don’t want to expose endpoints over JMX you can set the endpoints.default.jmx.enabled
property to false
:
endpoints.default.jmx.enabled=false
Jolokia is a JMX-HTTP bridge giving an alternative method of accessing JMX beans. To
use Jolokia, simply include a dependency to org.jolokia:jolokia-core
. For example,
using Maven you would add the following:
<dependency> <groupId>org.jolokia</groupId> <artifactId>jolokia-core</artifactId> </dependency>
Jolokia can then be accessed using /application/jolokia
on your management HTTP server.
Jolokia has a number of settings that you would traditionally configure using servlet
parameters. With Spring Boot you can use your application.properties
, simply prefix the
parameter with management.jolokia.config.
:
management.jolokia.config.debug=true