Actuator for production monitoring

David Kumar Jan 2026
4 tabs
package com.example.demo.service;

import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Timer;
import org.springframework.stereotype.Service;

@Service
public class MetricsService {

    private final Counter userCreationCounter;
    private final Timer userProcessingTimer;
    private final MeterRegistry registry;

    public MetricsService(Counter userCreationCounter,
                         Timer userProcessingTimer,
                         MeterRegistry registry) {
        this.userCreationCounter = userCreationCounter;
        this.userProcessingTimer = userProcessingTimer;
        this.registry = registry;
    }

    public void recordUserCreation() {
        userCreationCounter.increment();
    }

    public void recordProcessingTime(Runnable task) {
        userProcessingTimer.record(task);
    }

    public void recordActiveUsers(int count) {
        registry.gauge("users.active", count);
    }
}
4 files · java, yaml Explain with highlit

Spring Boot Actuator provides production-ready features—health checks, metrics, info endpoints. /actuator/health shows application status for load balancers. /actuator/metrics exposes JVM metrics, HTTP stats, custom metrics. /actuator/info displays application metadata. Custom health indicators check dependencies—database, Redis, external APIs. Micrometer integrates with monitoring systems like Prometheus, Grafana, Datadog. Endpoint security restricts sensitive data. Management port separates actuator from application traffic. Graceful shutdown enables zero-downtime deployments. Custom endpoints extend functionality. Actuator enables observability—essential for debugging production issues, capacity planning, and SLA monitoring. I expose relevant endpoints based on environment and secure them appropriately.