Interview question
What is Spring Boot Actuator and what are its key endpoints? Spring Boot Actuator क्या है और इसके key endpoints कौन से हैं?
Answer
Spring Boot Actuator provides built-in endpoints for monitoring and managing applications. Expose health, metrics, and environment information via HTTP or JMX. Essential for production applications to track performance and troubleshoot issues.
| Endpoint | Purpose | Example |
|---|---|---|
| /actuator/health | Application health status | UP, DOWN, DEGRADED |
| /actuator/metrics | Application metrics | JVM, HTTP requests |
| /actuator/env | Environment properties | Active profiles |
| /actuator/loggers | Logger configuration | Change log levels |
| /actuator/threaddump | Thread information | Deadlock detection |
// Enable Actuator
// pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
// application.yml
management:
endpoints:
web:
exposure:
include: health,metrics,info,env,loggers
endpoint:
health:
show-details: always
metrics:
export:
prometheus:
enabled: true
// Custom Health Check
@Component
public class CustomHealthIndicator implements HealthIndicator {
@Override
public Health health() {
try {
// Check critical service
checkDatabaseConnection();
return Health.up()
.withDetail('database', 'connected')
.build();
} catch (Exception e) {
return Health.down()
.withDetail('error', e.getMessage())
.build();
}
}
private void checkDatabaseConnection() {
// Verify database is accessible
}
}
// Custom Metrics
@Component
public class BusinessMetrics {
private final MeterRegistry meterRegistry;
public BusinessMetrics(MeterRegistry meterRegistry) {
this.meterRegistry = meterRegistry;
}
public void recordOrderCreated() {
meterRegistry.counter('orders.created').increment();
}
public void recordOrderValue(double value) {
meterRegistry.timer('order.processing.time').record(
value, TimeUnit.MILLISECONDS);
}
}
// Access endpoints
// http://localhost:8080/actuator/health
// http://localhost:8080/actuator/metrics
// http://localhost:8080/actuator/metrics/http.server.requestsActuator monitoring के लिए ready-made endpoints provide करता है।
Was this answer clear?