Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
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.

EndpointPurposeExample
/actuator/healthApplication health statusUP, DOWN, DEGRADED
/actuator/metricsApplication metricsJVM, HTTP requests
/actuator/envEnvironment propertiesActive profiles
/actuator/loggersLogger configurationChange log levels
/actuator/threaddumpThread informationDeadlock 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.requests

Actuator monitoring के लिए ready-made endpoints provide करता है।

Was this answer clear?