spring boot actuator

  1. Add the Spring Boot Actuator Dependency to your project:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  1. Configure Actuator Endpoints in the application.properties or application.yml file:
management.endpoints.web.exposure.include=*
  1. Enable or Disable Specific Endpoints:
management.endpoint.health.show-details=always
management.endpoint.beans.enabled=false
  1. Customize Actuator Endpoint Paths:
management.endpoints.web.base-path=/custom-actuators
  1. Secure Actuator Endpoints:
management.endpoints.web.exposure.include=health,info
management.endpoint.health.roles=admin
  1. Use Spring Boot Actuator Health Indicators:
@Component
public class CustomHealthIndicator implements HealthIndicator {
    @Override
    public Health health() {
        // Custom health check logic
        return Health.up().withDetail("custom", "OK").build();
    }
}
  1. Customize Actuator Info Endpoint:
info.app.version=1.0.0
info.app.description=My Spring Boot Application
  1. Monitor Application Metrics:
management.metrics.export.influx.enabled=true
management.metrics.export.influx.uri=http://localhost:8086
management.metrics.export.influx.db=my_metrics_db
  1. Use Custom Actuator Endpoints:
@Endpoint(id = "custom")
public class CustomEndpoint {
    @ReadOperation
    public String customEndpoint() {
        // Custom endpoint logic
        return "Custom Endpoint";
    }
}
  1. Access Actuator Endpoints:
GET /actuator/health
GET /actuator/info
GET /actuator/metrics
GET /actuator/custom-actuators/custom
  1. Enable Spring Boot Actuator HTTP Trace:
management.trace.http.enabled=true
  1. Customize Actuator HTTP Trace Endpoint:
management.endpoints.web.exposure.include=trace
management.endpoints.trace.enabled=true
  1. Use Spring Boot Actuator Auditing:
@EntityListeners(AuditingEntityListener.class)
@MappedSuperclass
public class AuditableEntity {
    @CreatedDate
    private LocalDateTime createdAt;
    @LastModifiedDate
    private LocalDateTime updatedAt;
}
  1. Customize Actuator Auditing Properties:
spring.data.jpa.repositories.auditing.enabled=true
management.auditevents.jpa.event-encoding=hex
  1. Monitor JVM Memory Usage:
management.endpoints.jmx.exposure.include=*
  1. Customize Actuator JMX Endpoint:
management.endpoints.jmx.unique-names=true
  1. Enable Spring Boot Actuator Metrics:
management.endpoint.metrics.enabled=true
  1. Customize Actuator Metrics:
management.metrics.tags.application=my-app
  1. Export Actuator Metrics to Prometheus:
management.metrics.export.prometheus.enabled=true
management.metrics.export.prometheus.path=/prometheus
  1. Monitor and Export Actuator Metrics to Grafana:
management.metrics.export.grafana.enabled=true
management.metrics.export.grafana.url=http://localhost:3000
management.metrics.export.grafana.dashboard-compatibility=GRAFANA_V7
  1. Customize Actuator Logging:
logging.level.org.springframework.boot.actuate=DEBUG