Metrics with Micrometer
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 = 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
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.