जावा एप्लिकेशन मॉनिटरिंग: मेट्रिक्स संग्रह के लिए उपकरण और लाइब्रेरीज़

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

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

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

जावा एप्लिकेशन मॉनिटरिंग: उपकरणों और लाइब्रेरीज़ का अवलोकन

\n\n

आधुनिक डेवलपमेंट में जावा एप्लिकेशन की मॉनिटरिंग एक अनिवार्य अभ्यास बन गया है। इसके बिना यह समझना असंभव है कि सिस्टम लोड के तहत कैसा व्यवहार करता है, अड़चनें कहाँ होती हैं और विफलताओं पर कितनी जल्दी प्रतिक्रिया दी जा सकती है। इस लेख में, हम जावा एप्लिकेशन की स्थिति के मेट्रिक्स, ट्रेसिंग और विज़ुअलाइज़ेशन के लिए प्रमुख लाइब्रेरीज़ और उपकरणों पर चर्चा करेंगे: Micrometer, Prometheus Java Client, JMX और Java Flight Recorder।

\n\n

1. Micrometer — मेट्रिक्स के लिए फ़ेसाड

\n\n

Micrometer Spring Boot इकोसिस्टम और उससे आगे मेट्रिक्स संग्रह के लिए डी-फ़ैक्टो मानक है। यह एक एकीकृत API प्रदान करता है जिसका उपयोग विभिन्न बैकएंड के साथ किया जा सकता है: Prometheus, Datadog, Graphite, InfluxDB और अन्य।

\n\n

मुख्य क्षमताएँ:

\n
    \n
  • काउंटर (Counter), टाइमर (Timer), हिस्टोग्राम (Histogram) और गेज (Gauge) के लिए समर्थन।
  • \n
  • Spring Actuator के साथ स्वचालित एकीकरण।
  • \n
  • मेट्रिक्स फ़िल्टरिंग के लिए टैग (tags) का लचीला कॉन्फ़िगरेशन।
  • \n
\n\n

Prometheus के साथ Micrometer का उपयोग करने का उदाहरण:

\n
// pom.xml में डिपेंडेंसी जोड़ें:\n// <dependency>\n//     <groupId>io.micrometer</groupId>\n//     <artifactId>micrometer-registry-prometheus</artifactId>\n// </dependency>\n\nimport io.micrometer.core.instrument.MeterRegistry;\nimport io.micrometer.core.instrument.Counter;\nimport io.micrometer.prometheus.PrometheusMeterRegistry;\nimport io.micrometer.prometheus.PrometheusConfig;\n\npublic class MetricsExample {\n    private final Counter requestCounter;\n\n    public MetricsExample() {\n        PrometheusMeterRegistry registry = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);\n        requestCounter = Counter.builder("http.requests.total")\n                .description("Total HTTP requests")\n                .tag("method", "GET")\n                .register(registry);\n    }\n\n    public void handleRequest() {\n        requestCounter.increment();\n    }\n\n    public String scrapeMetrics() {\n        return registry.scrape(); // Prometheus प्रारूप में मेट्रिक्स लौटाता है\n    }\n}\n
\n\n

Micrometer कोड को बदले बिना मॉनिटरिंग सिस्टम के बीच आसानी से स्विच करने की अनुमति देता है।

\n\n

2. Prometheus Java Client — प्रत्यक्ष मेट्रिक्स संग्रह

\n\n

Prometheus Java Client Prometheus प्रारूप में मेट्रिक्स निर्यात करने के लिए आधिकारिक लाइब्रेरी है। यह Micrometer की तुलना में कम अमूर्त है, लेकिन डेटा संग्रह पर पूर्ण नियंत्रण देता है।

\n\n

मुख्य घटक:

\n
    \n
  • CollectorRegistry — सभी मेट्रिक्स का रजिस्ट्री।
  • \n
  • Counter, Gauge, Histogram, Summary — मेट्रिक्स प्रकार।
  • \n
  • /metrics एंडपॉइंट के लिए अंतर्निहित HTTP सर्वर।
  • \n
\n\n

सरल HTTP सर्वर का उपयोग करने का उदाहरण:

\n
import io.prometheus.client.Counter;\nimport io.prometheus.client.exporter.HTTPServer;\nimport io.prometheus.client.hotspot.DefaultExports;\n\npublic class PrometheusExample {\n    static final Counter requests = Counter.build()\n            .name("requests_total")\n            .help("Total requests.")\n            .register();\n\n    public static void main(String[] args) throws Exception {\n        DefaultExports.initialize(); // JVM मेट्रिक्स जोड़ता है (मेमोरी, GC, थ्रेड)\n        HTTPServer server = new HTTPServer(8080); // एंडपॉइंट /metrics\n\n        while (true) {\n            requests.inc();\n            Thread.sleep(1000);\n        }\n    }\n}\n
\n\n

यह लाइब्रेरी उन मामलों के लिए आदर्श है जहाँ अनावश्यक डिपेंडेंसी के बिना जल्दी से मॉनिटरिंग सेट अप करने की आवश्यकता होती है।

\n\n

3. JMX (Java Management Extensions)

\n\n

JMX JVM के प्रबंधन और मॉनिटरिंग के लिए अंतर्निहित तंत्र है। यह मेमोरी, थ्रेड, क्लास के बारे में जानकारी प्राप्त करने की अनुमति देता है, साथ ही प्रबंधन भी करता है।

अनुशंसाएँ