Micrometer Java: पूर्ण गाइड उदाहरणों के साथ
1. यह क्या है और इसकी आवश्यकता क्यों है
Micrometer एक लाइब्रेरी है जो Java (और JVM भाषाओं) में एप्लिकेशन मेट्रिक्स इकट्ठा करने के लिए उपयोग होती है। यह Prometheus, Graphite, Datadog, InfluxDB, New Relic जैसी लोकप्रिय मॉनिटरिंग सिस्टम के ऊपर एक फेसड प्रदान करती है। यह Micrometer Observation API स्पेसिफिकेशन को लागू करती है और Spring Boot (वर्जन 2.0 से) इकोसिस्टम में मेट्रिक्स कलेक्शन का डी-फैक्टो स्टैंडर्ड है।
इसकी आवश्यकता क्यों है? आधुनिक माइक्रोसर्विस आर्किटेक्चर में यह जानना बेहद ज़रूरी है कि एप्लिकेशन में क्या हो रहा है: कितने रिक्वेस्ट प्रोसेस हो रहे हैं, रिस्पॉन्स टाइम क्या है, कितनी मेमोरी खपत हो रही है, कितनी बार एरर आ रही हैं। Micrometer आपको इन डेटा को एक समान तरीके से इकट्ठा करने की सुविधा देता है, बिना किसी विशेष मॉनिटरिंग बैकएंड से बंधे। आप एक बार कोड लिखते हैं, और Prometheus, Graphite या CloudWatch के बीच स्विच करना केवल pom.xml या build.gradle में डिपेंडेंसी बदलने जितना आसान है।
यह लाइब्रेरी कई टूल्स प्रदान करती है: काउंटर (Counter), हिस्टोग्राम (Histogram), टाइमर (Timer), डिस्ट्रीब्यूशन समरी (DistributionSummary), और टैग्स (tags) के लिए सपोर्ट जो मल्टी-डायमेंशनल मेट्रिक्स एग्रीगेशन में मदद करता है। JVM (गार्बेज कलेक्टर, थ्रेड्स, मेमोरी) और लोकप्रिय फ्रेमवर्क (Spring, Hibernate, Jetty, Tomcat) के साथ बिल्ट-इन इंटीग्रेशन इसे प्रोडक्शन मॉनिटरिंग के लिए अपरिहार्य बनाता है।
2. इंस्टॉलेशन
Micrometer Maven Central के माध्यम से उपलब्ध है। Java प्रोजेक्ट्स के लिए Maven या Gradle का उपयोग किया जाता है। नीचे डिपेंडेंसी जोड़ने के सटीक कमांड दिए गए हैं।
Maven (pom.xml)
<!-- Micrometer का मुख्य मॉड्यूल -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
<version>1.14.5</version> <!-- नवीनतम वर्जन mvnrepository.com पर जांचें -->
</dependency>
<!-- Prometheus के लिए रजिस्ट्रेशन -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.14.5</version>
</dependency>
Gradle (build.gradle)
dependencies {
implementation 'io.micrometer:micrometer-core:1.14.5'
implementation 'io.micrometer:micrometer-registry-prometheus:1.14.5'
}
महत्वपूर्ण: अगर आप Spring Boot का उपयोग कर रहे हैं, तो केवल spring-boot-starter-actuator और micrometer-registry-prometheus जोड़ना पर्याप्त है — Spring Boot स्वचालित रूप से MeterRegistry को कॉन्फ़िगर करेगा।
3. त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण
चलिए एक सरल कंसोल एप्लिकेशन बनाते हैं जो मेट्रिक्स इकट्ठा करता है और उन्हें Prometheus फॉर्मेट में एक्सपोर्ट करता है।
import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.prometheus.PrometheusConfig;
import io.micrometer.prometheus.PrometheusMeterRegistry;
public class QuickStart {
public static void main(String[] args) throws InterruptedException {
// 1. Prometheus के लिए मेट्रिक्स रजिस्ट्री बनाएँ
PrometheusMeterRegistry registry = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);
// 2. काउंटर बनाएँ
Counter counter = Counter.builder("my.counter")
.description("काउंटर का उदाहरण")
.tag("env", "test")
.register(registry);
// 3. लूप में काउंटर को बढ़ाएँ
for (int i = 0; i < 5; i++) {
counter.increment();
Thread.sleep(1000);
}
// 4. Prometheus फॉर्मेट में मेट्रिक्स प्रिंट करें
System.out.println("=== Prometheus मेट्रिक्स ===");
System.out.println(registry.scrape());
}
}
कंसोल आउटपुट:
=== Prometheus मेट्रिक्स ===
# HELP my_counter_total काउंटर का उदाहरण
# TYPE my_counter_to