Spring Boot Monitoring
Overview
Spring Boot is a Spring framework module which provides RAD (Rapid Application Development) feature to the Spring framework. It is highly dependent on the starter templates feature, which is very powerful and works flawlessly.
Spring Boot aims to make it easy to create Spring-powered, production-grade applications and services with minimum fuss. It takes an opinionated view of the Spring platform so that new and existing users can quickly get to the bits they need.
Spring Boot includes a number of additional features to help you monitor and manage your application when you push it to production. You can choose to manage and monitor your application by using HTTP endpoints or with JMX. Auditing, health, and metrics gathering can also be automatically applied to your application.
An actuator is used monitoring our app, gathering metrics, understanding traffic or the state of our database becomes trivial with this dependency. The main benefit of this library is that we can get production grade tools without having to actually implement these features ourselves. Actuator is mainly used to expose operational information about the running application – health, metrics, info, dump, env, etc. It uses HTTP endpoints or JMX beans to enable us to interact with it.
The major business driver for this requirement is as follows:
- Monitoring Spring boot services metrics through REST API.
- Monitoring Spring boot actuator metrics through REST API.
- Monitoring Spring boot spectator metrics through REST API.
Graph Description
Spring Boot Service Stats
Metric | Type | Description |
---|---|---|
Average Response Time (Sec) | Rate | Average Response time obtained from this server in seconds. |
Responses 1xx/Sec | Rate | Number of responses per second obtained from this server with HTTP status code of 1xx series. |
Responses 2xx/Sec | Rate | Number of responses per second obtained from this server with HTTP status code of 2xx series. |
Responses 3xx/Sec | Rate | Number of responses per second obtained from this server with HTTP status code of 3xx series. |
Responses 4xx/Sec | Rate | Number of responses per second obtained from this server with HTTP status code of 4xx series. |
Responses 5xx/Sec | Rate | Number of responses per second obtained from this server with HTTP status code of 5xx series. |
Spring Boot Actuator Stats
Metric | Type | Description |
---|---|---|
Number of Young GC/Min | Rate | Number of young gc cycles occurred within a minute while scenario is running. |
Number of Tenured GC/Min | Rate | Number of tenured gc cycles occurred within a minute while scenario is running. |
Total number of GC/Min | Rate | Number of gc cycles (sum of young and tenured gc) occurred within a minute while scenario is running. |
Cumulative number of Young GC | cumulative | Cummulative number of young gc cycles occurred in whole test duration. |
Cumulative number of Tenured GC | cumulative | Cummulative number of tenured gc cycles occurred in whole test duration. |
Cumulative number of GC | cumulative | Cummulative number of all gc cycles occurred in whole test duration. |
Time taken by Young GC (Sec)/Min | sample | Rate of young gc cycles time that is taken in a minute. |
Time taken by Tenured GC (Sec)/Min | sample | Rate of tenured gc cycles time that is taken in a minute. |
Total time taken by GC (Sec)/Min | sample | Rate of all gc cycles time that is taken in a minute. |
Cumulative time taken by Young GC (Sec) | cumulative | Cummulative time taken by all young gc cycles in seconds. |
Cumulative time taken by Tenured GC (Sec) | cumulative | Cummulative time taken by all tenured gc cycles in seconds. |
Cumulative time taken by GC (Sec) | cumulative | Cummulative time taken by all gc cycles in seconds. |
Time per Young GC (Sec) | Times | Average time of young gc in seconds. |
Time per Tenured GC (Sec) | Times | Average time of tenured gc in seconds. |
Time per GC (Sec) | Times | Average time of all gc in seconds. |
Time used in GC (Pct) | sample | Average time used in gc in percentage. |
Cumulative time used in GC (Pct) | cumulative | Cummulative time used in gc in percentage. |
JVM Heap allocated memory (MB) | sample | The overall allocated memory of java virtual machine in mega bytes. |
JVM Heap used memory (MB) | sample | The overall used memory of java virtual machine in mega bytes. |
JVM Heap used memory (Pct) | sample | The overall used memory of java virtual machine in percentage. |
JVM Non Heap allocated memory (MB) | sample | The overall allocated memory of Non java virtual machine in mega bytes. |
JVM Non Heap used memory (MB) | sample | The overall used memory of Non java virtual machine in mega bytes. |
JVM Non Heap used memory (Pct) | sample | The overall used memory of Non java virtual machine in percentage. |
Total allocated memory (MB) | sample | The overall allocated memory in mega bytes. |
Total used memory (MB) | sample | The overall used memory in mega bytes. |
Total used memory (Pct) | sample | The overall used memory in percentage. |
Processors Count | sample | Number of processors. |
Instance Uptime (Sec) | sample | Application context uptime in Seconds. |
Uptime (Sec) | sample | System uptime in Seconds. |
System load Average | sample | Average system load. |
Peak Threads | sample | Number of Peak Threads. |
Daemon Threads | sample | Number of Daemon Threads. |
Total Started Threads | sample | Total number of Threads started. |
Total Threads | sample | Number of total Threads. |
Total Classes | sample | Number of Classes. |
Loaded Classes | sample | Number of Loaded classes. |
Unloaded Classes | sample | Number of Unloaded classes. |
Active Http Sessions | sample | Number of Active Http Sessions. |
Spring Boot Service Extended Stats
Metric | Type | Description |
---|---|---|
Average Response Time (Sec) | Rate | Average Response time obtained from this server in seconds. |
Responses 1xx/Sec | Rate | Number of responses per second obtained from this server with HTTP status code of 1xx series. |
Responses 2xx/Sec | Rate | Number of responses per second obtained from this server with HTTP status code of 2xx series. |
Responses 3xx/Sec | Rate | Number of responses per second obtained from this server with HTTP status code of 3xx series. |
Responses 4xx/Sec | Rate | Number of responses per second obtained from this server with HTTP status code of 4xx series. |
Responses 5xx/Sec | Rate | Number of responses per second obtained from this server with HTTP status code of 5xx series. |
Responses 1xx (Pct) | sample | Percentage of 1xx response. |
Responses 2xx (Pct) | sample | Percentage of 2xx response. |
Responses 3xx (Pct) | sample | Percentage of 3xx response. |
Responses 4xx (Pct) | sample | Percentage of 4xx response. |
Responses 5xx (Pct) | sample | Percentage of 5xx response. |
Spring Boot Extended Actuator Stats
Metric | Type | Description |
---|---|---|
Actuator System Load Average | sample | Average system load over a period of time in one minute. |
Actuator System CPU Time (Sec) | sample | Time spent (in seconds) by tasks of the Spring boot in kernel mode. |
Actuator User CPU Time (Sec) | sample | Time spent (in seconds) by tasks of the Spring boot in user mode. |
Actuator JVM Memory Committed (MB) | sample | Amount of memory in Megabytes that is committed for the JVM to use. |
Actuator JVM GC Memory Allocated (MB) | sample | Amount of memory in Megabytes allocated for the JVM. |
Actuator JVM Maximum Memory (MB) | sample | Maximum amount of memory in Megabytes that can be used for memory management. |
Actuator JVM Memory Used (MB) | sample | Amount of used memory in Megabytes. |
Actuator JVM GC Promoted Memory (MB) | sample | Amount of memory (live objects) moved from young space to survivor in Megabytes. |
Actuator JVM Buffer Memory Used (MB) | sample | An estimate of the memory in Megabytes that the JVM is using for this buffer pool. |
Actuator JVM GC Maximum Data Size (MB) | sample | Maximum size of object in Megabytes can be persist in JVM. |
Actuator JVM GC Live Data Size (MB) | sample | Size of live object in Megabytes persists in JVM. |
Actuator JVM GC Pause (ms) | sample | Average GC pause time in milliseconds. |
Actuator JVM Live Threads | sample | Number of live threads in JVM. |
Actuator JVM Total Buffer Capacity (MB) | sample | An estimate of the total capacity of the buffers in this pool in Megabytes. A buffer is a chunk of memory typically used to interface Java to the OS I/O subsystems, for example as a place where the OS writes data as it receives it from a socket or disk, and from which Java can read directly. |
Actuator JVM Buffer Count | sample | An estimate of the total count of the buffers in this pool. |
Actuator Tomcat Global Request/Sec | Rate | Number of request tomcat received per second. |
Actuator Tomcat Created Sessions/Sec | Rate | Number of created sessions per second in tomcat container. |
Actuator Tomcat Expired Sessions/Sec | Rate | Number of expired sessions per second in tomcat container. |
Actuator Tomcat Rejected Sessions/Sec | Rate | Number of rejected sessions per second in tomcat container. |
Actuator Tomcat Sessions Active Current | sample | Active sessions running in tomcat container. |
Actuator Tomcat Cache Hits/Sec | Rate | Number of cache hits per second in tomcat container. |
Actuator Tomcat Cache Access/Sec | Rate | Number of times that the tomcat cache was accessed per second in tomcat container. |
Actuator Tomcat Global Errors | sample | Number of request error occurred in tomcat container.. |
Actuator Tomcat Busy Threads | sample | Number of busy threads on the tomcat container. |
Actuator Tomcat Current Threads | sample | Number of current threads on the tomcat container. |
Actuator Tomcat Average Response Time (Sec) | sample | Tomcat average response time in seconds. |
Spring Boot Spectator Stats
Metric | Type | Description |
---|---|---|
Response Time (Sec) | sample | Service response time in seconds |