Spring Boot Monitoring

Spring Boot Monitoring provides extended visibility into Spring Boot applications, and is bundled with the Java Agent. You do not need to install the extension separately. 
Spring Boot Monitoring discovers requests to the Spring Boot application and displays a frontend metric in the Metric Tree. You can also configure the agent profile to display Spring Boot JMX metrics.
Spring Boot Monitoring automatically discovers the application name first by trying to retrieve application name from spring.application.name property in the Spring Boot application.properties file. When the spring.application.name property is not defined, then Spring Boot Monitoring identifies the application name from the
SpringBootApplication
 startup class.
Supported Third-Party Versions
Spring Boot 1.5
Display Spring Boot JMX Metrics
We provide Spring Boot JMX metricsEndpoint and thread dump dumpEndpoint metrics.
The agent reports Spring Boot thread dump endpoint metrics per thread as 
dumpEndpoint
 metrics. These metrics appear under the 
JMX, org.springframework.boot
name=dumpEndpoint type=Endpoint 
node in the Metric Tree. 
The agent reports metricEndpoint metrics, which are various operating-system-related metrics. These metrics appear under the 
JMX, org.springframework.boot
name=metricsEndpoint
type=Endpoint
 node in the Metric Tree. 
Configure Spring Boot Monitoring to report Spring Boot JMX dumpEndpoint and metricsEndpoint metrics.
Follow these steps:
  1. Navigate to the
    <Agent_Home>\releases\<release_number>\core\config
    directory.
  2. Open the
    IntroscopeAgent.profile
    file in a text editor.
  3.  Configure Spring Boot Monitoring to report Spring Boot JMX endpoint metrics by setting these properties as shown.
    introscope.agent.jmx.enable=true
    introscope.agent.jmx.name.filter=org.springframework.boot* 
    introscope.agent.jmx.excludeStringMetrics=true
  4. Set the
    introscope.agent.jmx.springboot.threads
    property to configure Spring Boot Monitoring to report Spring Boot JMX thread dump metrics as shown in this example. 
    introscope.agent.jmx.springboot.threads=PO:main Mailman 1,PO:client_main Mailman 1
    introscope.agent.jmx.springboot.threads
    For Spring Boot Actuator dumpEndpoints, this property controls which thread the agent reports.
    The property value is a comma-separated list of thread names. When a thread name in dumpEndpoints matches a name on this list, the agent reports performance metrics about the named thread.
    The agent does not report thread performance metrics when the property value is blank.
    Default:
    empty
    Example:
     
    introscope.agent.jmx.springboot.threads=PO:main Mailman 1,PO:client_main Mailman 1
    Note:
     Restart the managed application for this property to take effect.
  5. (Optional) For more performance metrics, set 
    introscope.agent.jmx.excludeStringMetrics=false
    . This setting increases the number of string-valued metrics, but can affect Enterprise Manager and agent performance.
  6. Save the file.
More information:
JMX Properties
Spring Boot JMX dump Endpoint Metrics
Spring Boot thread dump endpoint metrics are reported per thread as 
dumpEndpoint
 metrics. These metrics appear under the 
JMX, org.springframework.boot
name=dumpEndpoint type=Endpoint 
node in the Metric Tree. For example, you have threads that are named 
PO_client_main Mailman 1
and 
PO_main Mailman 1
.
Endpoint Metrics
These metrics appear under the 
JMX, org.springframework.boot
name=dumpEndpoint type=Endpoint, Endpoint
 node in the Metric Tree. 
  • EndpointClass
    The endpoint class name
  • Sensitive
    When the value is 
    true
    , the endpoint is configured to be sensitive, meaning the endpoint is not authorized to send crucial information over HTTP. Also, the endpoint metrics cannot display in the JMX UI browser.When the value is 
    false
    , the endpoint is configured to be not sensitive, meaning the endpoint is authorized to send crucial information over HTTP. Also, the endpoint metrics can display the JMX UI browser.You can configure JMX properties in the application.properties file in the
    src/main/resources
    directory.
PO_client_main Mailman 1 Metrics
These metrics appear under the 
JMX, org.springframework.boot
name=dumpEndpoint type=Endpoint, threadName=PO_client_main Mailman 1
 node in the Metric Tree.
  • Blocked Count
    Number of times that the thread associated with the
    ThreadInfo
    class was blocked to enter or reenter a monitor.
  • Blocked Time (ms)
    Approximate elapsed time, in milliseconds, that the thread that is associated with the 
    ThreadInfo
     class was blocked to enter or reenter a monitor. Timing starts when thread-contention monitoring is enabled.
  • Lock Name
    String representation of the object on which the thread is blocked. Is null if there is no string representation.
  • Lock OwnerId
    There is an object for which the thread that is associated with the 
    ThreadInfo
     class is blocked and waiting. The ID of the thread that owns the object monitor lock.
  • Lock OwnerName
    There is an object for which the thread that is associated with the 
    ThreadInfo
     class is blocked and waiting. Name of the thread that owns that object.
  • In Native
    Displays when the thread that is associated with the 
    ThreadInfo
     class is executing native code using the Java Native Interface (JNI).
  • StackTrace
    Returns the stack trace of the thread that is associated with the associated 
    ThreadInfo
     class. 
  • Suspended
    Displays when the thread that is associated with the 
    ThreadInfo
     class is suspended.
  • Thread Id
    ID of the thread that is associated with the 
    ThreadInfo
     class
  • Thread State
    State of the thread that is associated with the 
    ThreadInfo
     class
  • Waited Count
    Number of times that the thread associated with the 
    ThreadInfo
     class waited for notification
  • Waited Time (ms)
    Approximate elapsed time, in milliseconds, that the thread that is associated with the 
    ThreadInfo
     class has waited for notification. Timing starts when thread-contention monitoring is enabled.
PO_main Mailman 1 Metrics
These metrics appear under the 
JMX, org.springframework.boot
name=dumpEndpoint type=Endpoint, threadName=PO_main Mailman 1
 node in the Metric Tree. 
  • Blocked Count
    Number of times that the thread associated with the 
    ThreadInfo
     class was blocked to enter or reenter a monitor.
  • Blocked Time (ms)
    Approximate elapsed time, in milliseconds, that the thread that is associated with the 
    ThreadInfo
     class was blocked to enter or reenter a monitor. Timing starts when thread-contention monitoring is enabled.
  • In Native
    Displays when the thread that is associated with the 
    ThreadInfo
     class is executing native code using the Java Native Interface (JNI).
  • Lock OwnerId
    There is an object for which the thread that is associated with the 
    ThreadInfo
     class is blocked and waiting. ID of the thread that owns that object.
  • Lock OwnerName
    There is an object for which the thread that is associated with the 
    ThreadInfo
     class is blocked and waiting. Name of the thread that owns that object.
  • StackTrace
    Returns the stack trace of the thread that is associated with the associated 
    ThreadInfo
     class. 
  • Suspended
    Displays when the thread that is associated with the 
    ThreadInfo
     class is suspended.
  • Thread Id
    ID of the thread that is associated with the 
    ThreadInfo
     class
  • Thread State
    State of the thread that is associated with the 
    ThreadInfo
     class
  • Waited Count
    Number of times that the thread associated with the 
    ThreadInfo
     class waited for notification
  • Waited Time (ms)
    Approximate elapsed time, in milliseconds, that the thread that is associated with the 
    ThreadInfo
     class has waited for notification. Timing starts when thread-contention monitoring is enabled.
Spring Boot JMX metricsEndpoint Metrics
The metricEndpoint metrics provide various operating-system-related metrics, which appear under the 
JMX, org.springframework.boot
name=metricsEndpoint
type=Endpoint
 node in the Metric Tree.
  • EndpointClass
    Endpoint class name
  • Free Memory (bytes)
    Amount of JVM free memory.
  • httpsessions.max
    Maximum number of active Tomcat sessions allowed
  • httpsessions.active
    Current number of active Tomcat sessions
  • Instance Uptime (ms)
    SystemPublicMetrics
    class uptime
  • Memory (bytes)
    Amount of JVM total memory
  • Number of Processors
    Number of processors available for the JVM
  • Sensitive
    When the value is 
    true
    , the endpoint is configured to be sensitive, meaning the endpoint is not authorized to send crucial information over HTTP. Also, the endpoint metrics cannot display in the JMX UI browser.When the value is 
    false
    , the endpoint is configured to be not sensitive, meaning the endpoint is authorized to send crucial information over HTTP. Also, the endpoint metrics can display the JMX UI browser.You can configure JMX properties in the application.properties file in the 
    src/main/resources
     directory.
  • System Load Average
    Average operating system load for the last minute.
  • Uptime (ms)
    Java uptime in milliseconds
Classes Metrics
Classes metrics provide data about the JVM class loading system.
These metrics appear under the 
JMX, org.springframework.boot
name=metricsEndpoint
type=Endpoint, MetricEndpoint
Classes
 node in the Metric Tree.
  • Count
    Number of classes that are currently loaded in the JVM
  • Loaded
    Number of classes that are loaded since the JVM started executing
  • Unloaded
    Number of classes that are unloaded since the JVM started executing
GC Metrics
GC metrics provide data about JVM garbage-collection use. These metrics appear under the 
JMX, org.springframework.boot
name=metricsEndpoint
type=Endpoint, MetricEndpoint, GC
 node in the Metric Tree.
  • PS Marksweep Count
    Number of parallel scavenge mark-sweep collector (PS MarkSweep collector) collections
  • PS Marksweep Time (ms)
    Approximate accumulated PS MarkSweep collector elapsed time in milliseconds
  • PS Scavenge Count
    Number parallel-scavenge collector (PS Scavenge collector) collections
  • PS Scavenge Time (ms)
    Approximate accumulated PS Scavenge collector elapsed time in milliseconds
Heap Metrics
Heap metrics provide data about the current heap memory use for object allocation. These metrics appear under the 
JMX, org.springframework.boot
name=metricsEndpoint
type=Endpoint, MetricEndpoint, Heap
 node in the Metric Tree.
  • Committed (bytes)
    Amount of memory, in bytes, committed for JVM use
  • Heap (bytes)
    Maximum amount of heap memory, in bytes, allotted for memory management
  • Initial (bytes)
    Amount of memory, in bytes, that the JVM initially requests from the OS for memory management
  • Used (bytes)
    Amount of memory that is used, in bytes
Non Heap Metrics
Non Heap metrics provide data about the JVM use of non-heap memory, for example, for the method internal processing. These metrics appear under the 
JMX, org.springframework.boot
name=metricsEndpoint
type=Endpoint, MetricEndpoint, Non Heap
 node in the Metric Tree.
  • Committed (bytes)
    Amount of memory, in bytes, committed for JVM use
  • Heap (bytes)
    Maximum amount of heap memory, in bytes, allotted for memory management
  • Initial (bytes)
    Amount of memory, in bytes, that the JVM initially requests from the OS for memory management
  • Used (bytes)
    Amount of memory that is used, in bytes
Threads Metrics
Threads metrics provide data about JVM thread system use. These metrics appear under the 
JMX, org.springframework.boot
name=metricsEndpoint
type=Endpoint, MetricEndpoint, Thread
 node in the Metric Tree.
  • Count
    Current number of live threads, including daemon and non-daemon threads
  • Daemon
    Current number of live daemon threads
  • Peak
    Number of peak live threads because the JVM started or the peak was reset
  • Total Started
    Number of threads that are created and started since the JVM started.