Spring Boot Actuator — Complete Notes

1. What is Spring Boot Actuator?

Spring Boot Actuator provides production-ready monitoring and management features for a Spring Boot application.

2. Why Actuator is Important

QuestionActuator Endpoint
Is the application running?/health
What beans are loaded?/beans
What environment variables exist?/env
What metrics are available?/metrics
What threads are running?/threaddump

3. Adding Actuator Dependency

Maven

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Gradle

implementation 'org.springframework.boot:spring-boot-starter-actuator'

4. Default Endpoints

/actuator/health
/actuator/info
http://localhost:8080/actuator/health
{
 "status": "UP"
}

5. Exposing More Endpoints

management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.include=health,info,beans,metrics

6. Important Actuator Endpoints

EndpointDescription
/healthApplication health status
/infoApplication information
/metricsApplication metrics
/beansSpring beans in application
/envEnvironment properties
/loggersLogger configuration
/threaddumpThread dump
/heapdumpJVM heap dump
/mappingsAll request mappings

7. Health Endpoint

/actuator/health
{
 "status": "UP",
 "components": {
   "db": { "status": "UP" },
   "diskSpace": { "status": "UP" }
 }
}
management.endpoint.health.show-details=always

8. Info Endpoint

info.app.name=Spring Boot Application
info.app.version=1.0
info.app.description=Learning Spring Boot Actuator
/actuator/info

9. Metrics Endpoint

/actuator/metrics

10. Beans Endpoint

/actuator/beans

11. Environment Endpoint

/actuator/env

12. Loggers Endpoint

/actuator/loggers

13. Actuator Architecture

Spring Boot Application
        |
   Actuator Module
        |
   Management Endpoints
        |
Health  Metrics  Info
        |
Monitoring Tools (Prometheus, Grafana)

14. Securing Actuator

management.endpoints.web.exposure.include=health,info

15. Changing Base Path

management.endpoints.web.base-path=/manage
/manage/health
/manage/metrics

16. Different Management Port

management.server.port=9090

17. Real World Monitoring Stack

Spring Boot App
      |
Spring Boot Actuator
      |
Micrometer Metrics
      |
Prometheus
      |
Grafana Dashboard

18. Custom Actuator Endpoint (IMPORTANT)

Spring Boot allows developers to create custom actuator endpoints to expose custom application information.

Step 1: Create Custom Endpoint Class

import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.stereotype.Component;

@Component
@Endpoint(id = "customInfo")
public class CustomActuatorEndpoint {

    @ReadOperation
    public String customData() {
        return "This is a custom actuator endpoint";
    }

}

Step 2: Enable Endpoint Exposure

management.endpoints.web.exposure.include=*

Step 3: Access Endpoint

http://localhost:8080/actuator/customInfo

Output

This is a custom actuator endpoint

19. Best Practices

20. Summary