📊
Spring Boot

Actuator — Production Monitoring

Health, Metrics, Info Endpoints
💡 Actuator ek CAR ka DASHBOARD hai — engine health, fuel level, speed sab EK NAZAR mein dikh jaata hai, bina engine kholے. Production application ki "health" (database connection, memory usage, custom checks) Actuator endpoints se, bina code mein ghusे, MONITOR ho sakti hai.

Spring Boot Actuator PRODUCTION-READY features add karta hai — application ki HEALTH, METRICS, aur INFO ko HTTP endpoints ke through EXPOSE karta hai. /actuator/health application zinda hai ya nahi batata hai (aur database, disk space jaisi dependencies ki health bhi). /actuator/metrics CPU usage, memory, HTTP request counts jaisi cheezein deta hai.

Ye Kubernetes/Docker environments mein ESSENTIAL hai — liveness/readiness probes /actuator/health endpoint ko HIT karte hain, decide karne ke liye ki container HEALTHY hai ya RESTART chahiye.

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

// Custom health indicator:
@Component
public class DatabaseHealthIndicator implements HealthIndicator {
    public Health health() {
        boolean dbUp = checkDatabaseConnection();
        return dbUp ? Health.up().build() : Health.down().withDetail("reason", "DB unreachable").build();
    }
}
📊
Actuator ek CAR ka DASHBOARD hai — engine health, fuel level, speed sab EK NAZAR mein dikh jaata hai, bina engine kholے. Production application ki "health" (database connection, memory usage, custom checks) Actuator endpoints se, bina code mein ghusे, MONITOR ho sakti hai.
1 / 2
⚡ Quick Recap
  • /actuator/health = application/dependencies zinda hain ya nahi
  • /actuator/metrics = CPU, memory, request counts
  • Kubernetes liveness/readiness probes ke liye essential
On this page (2 subtopics)

Default mein, sirf /actuator/health aur /actuator/info endpoints EXPOSED hote hain (security ke liye). application.properties mein management.endpoints.web.exposure.include se ADDITIONAL endpoints (metrics, env, beans) explicitly expose karne padte hain.

# application.properties:
management.endpoints.web.exposure.include=health,info,metrics,env
management.endpoint.health.show-details=always

Production mein, Actuator endpoints (jo internal app details reveal karte hain — env variables, beans list) PUBLIC INTERNET se accessible NAHI hone chahiye — Spring Security se restrict karo (sirf ADMIN role access kar sake), ya ALAG management port par expose karo (management.server.port).

⚠️Common Mistake: Actuator endpoints ACCIDENTALLY publicly expose karna ek COMMON security mistake hai — /actuator/env jaisa endpoint DATABASE PASSWORDS tak reveal kar sakta hai agar properly secured na ho.