Prometheus मेट्रिक्स का Java में एकीकरण: simpleclient लाइब्रेरी

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

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

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

Java में Prometheus मेट्रिक्स: simpleclient लाइब्रेरी के लिए पूर्ण गाइड



Prometheus एक शक्तिशाली ओपन-सोर्स मॉनिटरिंग और अलर्टिंग सिस्टम है, जो Cloud Native दुनिया में डी-फैक्टो मानक बन गया है। Java डेवलपर्स के लिए एकीकरण के लिए कई लाइब्रेरीज़ मौजूद हैं, लेकिन आधिकारिक लाइब्रेरी simpleclient (जिसे prometheus/client_java के नाम से भी जाना जाता है) सबसे लोकप्रिय और समर्थित है। इस लेख में, हम विस्तार से जानेंगे कि इस लाइब्रेरी का उपयोग करके Java अनुप्रयोग में Prometheus मेट्रिक्स कैसे जोड़ें।



simpleclient क्या है?



simpleclient Prometheus के लिए आधिकारिक Java क्लाइंट है, जो मेट्रिक्स बनाने और निर्यात करने का एक सरल और कुशल तरीका प्रदान करता है। यह लाइब्रेरी Prometheus के चार मुख्य मेट्रिक प्रकारों का समर्थन करती है:

  • Counter (काउंटर) — एक मोनोटोनिक रूप से बढ़ने वाला मान (जैसे, अनुरोधों की संख्या)।
  • Gauge (गेज) — एक मान जो मनमाने ढंग से बदल सकता है (जैसे, वर्तमान CPU लोड)।
  • Histogram (हिस्टोग्राम) — पूर्वनिर्धारित "बकेट" में मानों का वितरण (जैसे, प्रतिक्रिया समय)।
  • Summary (समरी) — देखे गए मानों के क्वांटाइल (जैसे, प्रतिक्रिया समय का p50, p99)।


इंस्टॉलेशन और सेटअप



आरंभ करने के लिए, अपने pom.xml (Maven) या build.gradle (Gradle) में निम्नलिखित डिपेंडेंसी जोड़ें।



Maven

<dependency>    <groupId>io.prometheus</groupId>    <artifactId>simpleclient</artifactId>    <version>0.16.0</version></dependency>

<!-- HTTP के माध्यम से मेट्रिक्स निर्यात करने के लिए --><dependency> <groupId>io.prometheus</groupId> <artifactId>simpleclient_httpserver</artifactId> <version>0.16.0</version></dependency>


Gradle

implementation 'io.prometheus:simpleclient:0.16.0'implementation 'io.prometheus:simpleclient_httpserver:0.16.0'


मेट्रिक्स बनाना और उपयोग करना



एक ही क्लास में सभी मुख्य मेट्रिक प्रकार बनाने का एक उदाहरण देखें।



import io.prometheus.client.Counter;import io.prometheus.client.Gauge;import io.prometheus.client.Histogram;import io.prometheus.client.Summary;

public class MetricsExample {

// 1. Counter: संसाधित अनुरोधों की संख्या static final Counter requestsCounter = Counter.build() .name("app_requests_total") .help("Total number of processed requests.") .labelNames("endpoint", "method") .register();

// 2. Gauge: वर्तमान सक्रिय उपयोगकर्ताओं की संख्या static final Gauge activeUsersGauge = Gauge.build() .name("app_active_users") .help("Current number of active users.") .register();

// 3. Histogram: मिलीसेकंड में अनुरोध निष्पादन समय static final Histogram requestDurationHistogram = Histogram.build() .name("app_request_duration_ms") .help("Request duration in milliseconds.") .buckets(10, 50, 100, 200, 500, 1000, 5000) .register();

// 4. Summary: निष्पादन समय के क्वांटाइल static final Summary requestDurationSummary = Summary.build() .name("app_request_duration_summary_ms") .help("Request duration summary in milliseconds.") .quantile(0.5, 0.05) // p50 5% सहनशीलता के साथ .quantile(0.99, 0.01) // p99 1% सहनशीलता के साथ .register();

public static void main(String[] args) throws Exception { // अनुरोध प्रसंस्करण का अनुकरण for (int i = 0; i < 100; i++) { processRequest("/api/users", "GET"); }

// मेट्रिक्स निर्यात के लिए HTTP सर्वर प्रारंभ करें new HTTPServer(9090); System.out.println("Metrics server started

अनुशंसाएँ