🍃 Spring Boot Intermediate

What is Spring Boot Actuator for production monitoring?

Why Interviewers Ask This

This tests whether you can apply Spring Boot knowledge to real-world scenarios. Interviewers are looking for clarity of thought and evidence that you've encountered this in production code.

Answer

Spring Boot Actuator + Micrometer provides comprehensive production monitoring: Micrometer metrics integration: Actuator uses Micrometer (vendor-neutral metrics facade) to export metrics to Prometheus, Datadog, CloudWatch, InfluxDB, etc. Prometheus + Grafana setup: add micrometer-registry-prometheus dependency → /actuator/prometheus endpoint exposes Prometheus-formatted metrics. Prometheus scrapes this endpoint; Grafana visualizes. Custom metrics: @Component public class OrderMetrics { private final Counter orderCreatedCounter; private final Timer orderProcessingTimer; public OrderMetrics(MeterRegistry registry) { orderCreatedCounter = registry.counter("orders.created", "type", "standard"); orderProcessingTimer = registry.timer("orders.processing.time"); } public void recordOrderCreated() { orderCreatedCounter.increment(); } public void recordProcessingTime(Supplier<Order> processOrder) { orderProcessingTimer.record(processOrder); } }. Custom health indicators: @Component public class DatabaseHealthIndicator extends AbstractHealthIndicator { @Override protected void doHealthCheck(Health.Builder builder) { // Check external DB connection builder.up().withDetail("database", "PostgreSQL").withDetail("version", "15.0"); } }. Health groups: management.endpoint.health.group.readiness.include=db,redis — Kubernetes readiness probe uses /actuator/health/readiness. Liveness vs Readiness: liveness = is the app alive (not deadlocked); readiness = is it ready to serve traffic (dependencies up). Info endpoint: management.info.git.mode=full — expose git commit hash for deployment verification.

Pro Tip

Demonstrate both theoretical understanding and practical experience. Say what it is, then give an example of how you actually used it in a Spring Boot codebase.