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

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

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

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

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

Prometheus एक शक्तिशाली ओपन-सोर्स मॉनिटरिंग और अलर्टिंग सिस्टम है, जो विभिन्न स्रोतों से मेट्रिक्स इकट्ठा करता है। Java एप्लिकेशन के लिए Prometheus के साथ इंटीग्रेशन के लिए कई लाइब्रेरीज़ मौजूद हैं। मुख्य और सबसे लोकप्रिय लाइब्रेरी simpleclient है, जो Prometheus प्रोजेक्ट द्वारा ही बनाई गई है। यह मेट्रिक्स बनाने, रजिस्टर करने और एक्सपोर्ट करने का एक न्यूनतम, थ्रेड-सेफ और हाई-परफॉर्मेंस तरीका प्रदान करती है।

simpleclient क्या है?

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

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

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

simpleclient का उपयोग करने के लिए pom.xml (Maven) में निम्नलिखित डिपेंडेंसी जोड़ें:

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

Gradle के लिए:

implementation 'io.prometheus:simpleclient:0.16.0'
implementation 'io.prometheus:simpleclient_hotspot:0.16.0'
implementation 'io.prometheus:simpleclient_servlet:0.16.0'

मेट्रिक्स बनाना और रजिस्टर करना

आइए एक साधारण अनुरोध काउंटर बनाएं। मेट्रिक्स ग्लोबल रजिस्ट्री CollectorRegistry.defaultRegistry में रजिस्टर होते हैं।

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

public class MetricsExample {
    // "http_requests_total" नाम का काउंटर बनाएं, जिसमें "method" और "endpoint" लेबल हों
    static final Counter requests = Counter.build()
            .name("http_requests_total")
            .help("HTTP अनुरोधों की कुल संख्या।")
            .labelNames("method", "endpoint")
            .register();

    // सक्रिय सत्रों की संख्या के लिए गेज बनाएं
    static final Gauge activeSessions = Gauge.build()
            .name("active_sessions")
            .help("सक्रिय सत्रों की वर्तमान संख्या।")
            .register();

    public static void processRequest(String method, String endpoint) {
        // काउंटर बढ़ाएं
        requests.labels(method, endpoint).inc();
        // गेज का मान सेट करें (जैसे, कतार का आकार)
        activeSessions.set(42);
    }
}

HTTP के माध्यम से मेट्रिक्स एक्सपोर्ट करना

Prometheus को मेट्रिक्स इकट्ठा करने के लिए, आपको /metrics एंडपॉइंट प्रदान करना होगा। इसका सबसे आसान तरीका बिल्ट-इन सर्वलेट का उपयोग करना है। यदि आप Spring Boot का उपयोग कर रहे हैं, तो simpleclient_spring_boot डिपेंडेंसी जोड़ें।

import io.prometheus.client.exporter.MetricsServlet;
import io.prometheus.client.hotspot.DefaultExports;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/metrics")
public class MetricsExporterServlet extends HttpServlet {
    private                    

अनुशंसाएँ