📈
Actuator & Observability

Metrics with Micrometer

Custom Application Metrics
💡 Micrometer ek UNIVERSAL POWER ADAPTER hai — TUM EK STANDARD PLUG (Micrometer API) USE karte ho, aur YE ADAPTER, KISI BHI COUNTRY ke SOCKET (Prometheus, Datadog, New Relic) mein FIT ho jaata hai — TUMHE HAR COUNTRY (monitoring tool) ke liye ALAG PLUG (code) BUY karne ki zaroorat NAHI.

Micrometer, SLF4J ki TARAH, EK "VENDOR-NEUTRAL FACADE" hai METRICS ke liye — APPLICATION CODE, MICROMETER'S API se LIKHA jaata hai (Counter, Timer, Gauge), aur ACTUAL MONITORING BACKEND (Prometheus, Datadog, New Relic) SEPARATELY, SIRF DEPENDENCY ADD karके, CONFIGURE hota hai.

spring-boot-starter-actuator, MICROMETER ko AUTOMATICALLY INCLUDE karta hai — SPRING BOOT INTERNAL METRICS (HTTP request counts, JVM memory, THREAD counts) AUTOMATICALLY TRACK hoti hain. APPLICATION-SPECIFIC METRICS (jaise "KITNE ORDERS PLACED hue") MeterRegistry se, MANUALLY ADD kiye jaate hain.

@Service
public class OrderService {
    private final Counter orderCounter;
    private final Timer paymentTimer;

    public OrderService(MeterRegistry registry) {
        this.orderCounter = registry.counter("orders.placed");
        this.paymentTimer = registry.timer("payment.processing.time");
    }

    public void placeOrder(Order order) {
        orderRepository.save(order);
        orderCounter.increment();

        paymentTimer.record(() -> paymentGateway.charge(order.getAmount()));
    }
}

<!-- Prometheus backend ke liye: -->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<!-- /actuator/prometheus endpoint AUTOMATICALLY available, Prometheus SCRAPE kar sakta hai -->
📈
Micrometer ek UNIVERSAL POWER ADAPTER hai — TUM EK STANDARD PLUG (Micrometer API) USE karte ho, aur YE ADAPTER, KISI BHI COUNTRY ke SOCKET (Prometheus, Datadog, New Relic) mein FIT ho jaata hai — TUMHE HAR COUNTRY (monitoring tool) ke liye ALAG PLUG (code) BUY karne ki zaroorat NAHI.
1 / 2
⚡ Quick Recap
  • Micrometer = SLF4J-jaisi vendor-neutral facade, metrics ke liye
  • Counter (counts), Timer (duration), Gauge (current value) = core metric types
  • Backend (Prometheus/Datadog) SWITCH karna, APPLICATION CODE ko IMPACT NAHI karta
On this page (2 subtopics)

MeterRegistry se, APPLICATION-SPECIFIC METRICS bhi TRACK ki ja sakti hain — jaise "KITNE ORDERS place hue" (Counter), "PAYMENT processing KITNA TIME LAGA" (Timer), "CURRENTLY KITNE ACTIVE USERS hain" (Gauge).

@Service
public class OrderService {
    private final Counter orderCounter;

    public OrderService(MeterRegistry registry) {
        this.orderCounter = registry.counter("orders.placed");
    }

    public void placeOrder(Order order) {
        orderRepository.save(order);
        orderCounter.increment();
    }
}

Micrometer, SLF4J ki TARAH, EK "FACADE" hai — APPLICATION CODE, MICROMETER'S API se LIKHA jaata hai, aur BACKEND (Prometheus, Datadog, New Relic) SEPARATELY CONFIGURE hota hai. AGAR MONITORING TOOL CHANGE karna ho, APPLICATION CODE MODIFY karने ki zaroorat NAHI, SIRF DEPENDENCY/CONFIG CHANGE hoती hai.

💡Tip: Ye "VENDOR-NEUTRAL" design Micrometer ki SABSE BADI STRENGTH hai — EK MONITORING SYSTEM se DUSRE mein MIGRATE karna, APPLICATION CODE ke liye COMPLETELY TRANSPARENT hota hai.