Skip to main content
Version: NG-3.1

SpringBoot

Introduction

The Spring Boot Monitoring O11ySource enables comprehensive observability for Spring Boot applications by collecting application, JVM, Tomcat, JDBC, executor, and Actuator-based metrics. It leverages Spring Boot Actuator endpoints and JMX integrations to provide real-time visibility into application health, performance, resource utilization, thread activity, request handling, and operational insights for proactive monitoring and faster troubleshooting.

Getting Started

Compatibility

vuSmartMaps support Spring Boot monitoring for applications with the following requirements:

  • Java Version: 8 or above
  • Spring Boot Version: 2.x or above
  • Build Tool: Maven version 3.8.4 or above

Data Collection Method

vuSmartMaps collects metrics for Spring Boot application using VuNet's Internal Data Collector.

Prerequisites

Inputs for Configuring Data Source

  • Host: The IP address or FQDN of the Spring Boot application. This field uniquely identifies each application added in this source configuration.
  • Port Number: The port in which the application is running
  • Application Name: Unique name of the Spring Boot Application.
  • Environment: Environment in which the application is running
  • Period (in seconds): How frequently data is gathered. The period should be between 60 seconds and 300 seconds.
Applications
nan

Firewall Requirement

To collect data from this O11ySource, ensure the following ports are opened:

Source IPDestination IPDestination PortProtocolDirection
IP address of the server where vuSmartMaps is runningIP Address of the Spring Boot applicationPort of the application / Port of the actuator endpointTCPOutbound

*Before providing the firewall requirements, please update the port based on the customer environment.

Configuring the Target

The Spring Boot application must be configured to expose its health and performance metrics:

Dependencies: Add the following to your pom.xml: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <scope>runtime</scope> </dependency> Endpoint Exposure: In src/main/resources/application.properties, enable the required endpoints: management.endpoints.web.exposure.include=* management.endpoints.web.base-path=/actuator management.endpoint.health.show-details=always management.endpoint.health.show-components=always Endpoints Required:

    • /actuator/prometheus (Performance & JVM metrics)
    • /actuator/threaddump (Thread activity)

Configuration Steps

Metrics Collected

NameDescriptionData Type
ApplicationName of the applicationString
Application Ready TimeTime taken for the application to be ready to service requestsUInt64
Application Started TimeTime taken to start the applicationUInt64
Blocked CountThe accumulated time (in milliseconds) the thread has spent in the BLOCKED state (or -1 if unavailable).UInt64
Blocked TimeThe total number of times the thread has entered the BLOCKED state.Int64
BU IDBU IdString
Disk FreeUsable space for pathUInt64
Disk TotalTotal space for pathUInt64
EnvironmentThe environment in which the application is deployedString
Executor Active ThreadsThe approximate number of threads that are actively executing tasksUInt32
Executor Pool Max ThreadsThe maximum allowed number of threads in the poolUInt32
Executor Pool Size ThreadsThe current number of threads in the poolUInt32
Executor Queue Remaining TasksThe number of additional elements that this queue can ideally accept without blockingUInt32
Executor Queued TasksThe approximate number of tasks that are queued for executionUInt32
Hikaricp ConnectionsTotal number of connections in the HikariCP connection poolUInt32
Hikaricp Connections Acquire Seconds CountTime taken to acquire a connection from the poolFloat64
Hikaricp Connections Acquire Seconds MaxTime taken to acquire a connection from the poolFloat64
Hikaricp Connections Acquire Seconds SumTime taken to acquire a connection from the poolFloat64
Hikaricp Connections ActiveNumber of currently active (in-use) connections in the poolUInt32
Hikaricp Connections Creation Seconds CountTime taken to create a new connection in the poolFloat64
Hikaricp Connections Creation Seconds MaxTime taken to create a new connection in the poolFloat64
Hikaricp Connections Creation Seconds SumTime taken to create a new connection in the poolFloat64
Hikaricp Connections IdleNumber of idle (available) connections in the poolUInt32
Hikaricp Connections MaxMaximum number of connections allowed in the poolUInt32
Hikaricp Connections MinMinimum number of connections maintained in the poolUInt32
Hikaricp Connections PendingNumber of threads currently waiting for a connectionUInt32
Hikaricp Connections Timeout TotalTotal number of connection requests that timed outUInt32
Hikaricp Connections Usage Seconds CountUsage time of the connections by the applicationFloat64
Hikaricp Connections Usage Seconds MaxUsage time of the connections by the applicationFloat64
Hikaricp Connections Usage Seconds SumUsage time of the connections by the applicationFloat64
HostName of the hostString
HTTP Server Requests Active Seconds CountTotal HTTP requests, with count, total time, and max duration.Float64
HTTP Server Requests Active Seconds MaxTotal HTTP requests, with count, total time, and max duration.Float64
HTTP Server Requests Active Seconds SumTotal HTTP requests, with count, total time, and max duration.Float64
HTTP Server Requests Seconds CountTracks the total number of HTTP requests processed by the Spring Boot application over time.Float64
HTTP Server Requests Seconds MaxShows the maximum response time observed for HTTP requests in the Spring Boot application.Float64
HTTP Server Requests Seconds SumRepresents the cumulative total time spent processing HTTP requests in the Spring Boot application.Float64
JDBC Connections ActiveCurrent number of active connections that have been allocated from the data sourceUInt32
JDBC Connections IdleNumber of established but idle connectionsUInt32
JDBC Connections MaxMaximum number of active connections that can be allocated at the same timeUInt32
JDBC Connections MinMinimum number of idle connections in the poolUInt32
JVM Buffer Count BuffersAn estimate of the number of buffers in the poolUInt32
JVM Buffer Memory UsedAn estimate of the memory that the Java virtual machine is using for this buffer poolUInt64
JVM Buffer Total CapacityAn estimate of the total capacity of the buffers in this poolUInt64
JVM Classes Loaded ClassesThe number of classes that are currently loaded in the Java virtual machineUInt32
JVM Classes Unloaded Classes TotalThe number of classes unloaded in the Java virtual machineUInt32
JVM Compilation Time Ms TotalThe approximate accumulated elapsed time spent in compilationUInt64
JVM GC Live Data SizeSize of long-lived heap memory pool after reclamationUInt64
JVM GC Max Data SizeMax size of long-lived heap memory poolUInt64
JVM GC Memory Allocated Bytes TotalIncremented for an increase in the size of the (young) heap memory pool after one GC to before the nextUInt64
JVM GC Memory Promoted Bytes TotalCount of positive increases in the size of the old generation memory pool before GC to after GCUInt64
JVM GC OverheadAn approximation of the percent of CPU time used by GC activitiesFloat64
JVM GC Pause Seconds CountTracks the total number of JVM Garbage Collection pause events occurring in the Spring Boot application.Float64
JVM GC Pause Seconds MaxDisplays the maximum JVM Garbage Collection pause duration observed in the Spring Boot application.Float64
JVM GC Pause Seconds SumRepresents the cumulative total time spent in JVM Garbage Collection pauses for the Spring Boot applicationFloat64
JVM InfoJVM version infoUInt32
JVM Memory CommittedThe amount of memory in bytes that is committed for the JVM to useUInt64
JVM Memory MaxThe maximum amount of memory in bytes that can be used for memory managementUInt64
JVM Memory Usage After GCThe percentage of long-lived heap pool used after the last GC eventFloat64
JVM Memory UsedThe amount of used memoryUInt64
JVM Threads Daemon ThreadsThe current number of live daemon threadsUInt32
JVM Threads Live ThreadsThe current number of live threads including both daemon and non-daemon threadsUInt32
JVM Threads Peak ThreadsThe peak live thread count since JVM startedUInt32
JVM Threads Started Threads TotalThe total number of application threads started in the JVMUInt32
JVM Threads States ThreadsThe current number of threadsUInt32
Lock Owner IDThe ID of the thread that owns the lock the current thread is waiting for (or -1 if no owner).Int64
Logback Events TotalNumber of log events that were enabled by the effective log levelUInt32
PortThe port number of the serverUInt32
PriorityThe thread's assigned priority level.UInt8
Process CPU Time Ns TotalThe "cpu time" used by the JVM processUInt64
Process CPU UsageThe "recent cpu usage" for the JVM processFloat64
Process Files Max FilesThe maximum file descriptor countUInt32
Process Files Open FilesThe open file descriptor countUInt32
Process Start TimeStart time of the process since unix epochFloat64
Process UptimeThe uptime of the JVMFloat64
Spring Data Repository Invocations Seconds CountDuration of repository invocationsFloat64
Spring Data Repository Invocations Seconds MaxDuration of repository invocationsFloat64
Spring Data Repository Invocations Seconds SumDuration of repository invocationsFloat64
System CPU CountThe number of processors available to the JVMUInt32
System CPU UsageThe "recent cpu usage" of the systemFloat64
System Load Average 1 MAverage system load over 1 minuteFloat64
TagsJSON of all the tags associated with the given eventMap(LowCardinality(String), String)
TargetTarget serverString
Tenant IDTenant IDString
Thread IDThe unique ID of the thread.UInt64
TimestampTimestamp of the eventDateTime64
Tomcat Sessions Active Current SessionsCurrent active sessionsUInt32
Tomcat Sessions Active Max SessionsPeak concurrent sessionsUInt32
Tomcat Sessions Alive Max SessionsMax session lifetime (sec)Float64
Tomcat Sessions Created Sessions TotalTotal sessions createdUInt32
Tomcat Sessions Expired Sessions TotalTotal sessions expiredUInt32
Tomcat Sessions Rejected Sessions TotalTotal sessions rejectedUInt32
URLURL of the endpoint from which data is being collectedString
Waited CountThe total number of times the thread has entered the WAITING or TIMED_WAITING state.UInt64
Waited TimeThe accumulated time (in milliseconds) the thread has spent in the WAITING or TIMED_WAITING state (or -1 if unavailable).Int64
Tomcat Sessions Alive MaxRepresents the maximum time (in seconds) that any active session has been alive in the Tomcat server during the observation period.Float64