Java अनुप्रयोगों की निगरानी: Micrometer लाइब्रेरी और Prometheus के साथ एकीकरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Java अनुप्रयोगों की निगरानी: Micrometer लाइब्रेरी



आधुनिक Java अनुप्रयोगों को प्रदर्शन, मेमोरी खपत, प्रतिक्रिया समय और अन्य महत्वपूर्ण मापदंडों की निरंतर निगरानी की आवश्यकता होती है। Micrometer Java पारिस्थितिकी तंत्र में मीट्रिक्स एकत्र करने के लिए डी-फैक्टो मानक लाइब्रेरी है, जो एक सार्वभौमिक API प्रदान करती है और Prometheus, Graphite और Datadog जैसी लोकप्रिय निगरानी प्रणालियों में डेटा निर्यात का समर्थन करती है।



Micrometer क्या है और इसकी आवश्यकता क्यों है?



Micrometer मीट्रिक्स संग्रह के लिए एक फ़ेसड है, जैसे SLF4J लॉगिंग के लिए फ़ेसड है। यह एप्लिकेशन कोड को विशिष्ट निगरानी प्रणाली से अलग करता है, जिससे व्यावसायिक तर्क को बदले बिना बैकएंड के बीच स्विच करना संभव हो जाता है।



लाइब्रेरी की मुख्य क्षमताएँ:

  • काउंटर (Counter) — घटनाओं की गणना के लिए (जैसे, अनुरोधों की संख्या)।
  • टाइमर (Timer) — संचालन के निष्पादन समय को मापने के लिए।
  • गेज (Gauge) — वर्तमान मानों को ट्रैक करने के लिए (जैसे, थ्रेड पूल का आकार)।
  • डिस्ट्रीब्यूशन समरी (DistributionSummary) — मानों के वितरण का विश्लेषण करने के लिए (जैसे, अनुरोध निकाय का आकार)।
  • टैग (Tags) — मीट्रिक्स में आयाम जोड़ने के लिए (जैसे, endpoint, status)।


स्थापना और कॉन्फ़िगरेशन



Maven प्रोजेक्ट में Micrometer का उपयोग करने के लिए, pom.xml में निम्नलिखित निर्भरता जोड़ें:



<dependency>    <groupId>io.micrometer</groupId>    <artifactId>micrometer-core</artifactId>    <version>1.12.0</version></dependency>


यदि आप Spring Boot का उपयोग कर रहे हैं, तो micrometer-registry-prometheus स्टार्टर कनेक्ट करना पर्याप्त है:



<dependency>    <groupId>io.micrometer</groupId>    <artifactId>micrometer-registry-prometheus</artifactId>    <version>1.12.0</version></dependency>


इसके बाद, Spring Boot स्वचालित रूप से MeterRegistry को कॉन्फ़िगर करेगा और मीट्रिक्स संग्रह के लिए /actuator/prometheus एंडपॉइंट खोलेगा।



उपयोग के उदाहरण



1. अनुरोध काउंटर बनाना



विधि कॉल की संख्या गिनने का सरल उदाहरण:



import io.micrometer.core.instrument.Counter;import io.micrometer.core.instrument.MeterRegistry;

public class RequestCounter { private final Counter requestCounter;

public RequestCounter(MeterRegistry registry) { this.requestCounter = Counter.builder("api.requests") .tag("endpoint", "/users") .description("Total number of requests to /users") .register(registry); }

public void handleRequest() { requestCounter.increment(); // व्यावसायिक तर्क }}


2. टाइमर का उपयोग करके निष्पादन समय मापना



कोड ब्लॉक के निष्पादन समय को मापने के लिए Timer.Sample का उपयोग करें:



import io.micrometer.core.instrument.Timer;import io.micrometer.core.instrument.MeterRegistry;

public class RequestTimer { private final Timer requestTimer;

public RequestTimer(MeterRegistry registry) { this.requestTimer = Timer.builder("api.response.time") .tag("endpoint", "/data") .publishPercentiles(0.95, 0.99) .register(registry); }

public String processRequest() { Timer.Sample sample = Timer.start(registry); try { // विलंब का अनुकरण Thread.sleep(100); return "OK"; } catch (InterruptedException e) { Thread.currentThread().interrupt(); return "ERROR"; } finally

अनुशंसाएँ