Spring Boot में मॉनिटरिंग

एक प्रोडक्शन एप्लिकेशन को केवल चलना ही नहीं चाहिए। इसे ऑब्जर्वेबल (observable) होना चाहिए और विफल होने पर इसे ठीक करना आसान होना चाहिए। आपको हेल्थ चेक, मेट्रिक्स, लॉग्स और घटनाओं (incidents) को संभालने के लिए स्पष्ट प्रक्रियाओं की आवश्यकता होती है।

Spring Boot इन सुविधाओं को प्रदान करने के लिए Actuator का उपयोग करता है। Actuator आपको health, metrics और info जैसे एंडपॉइंट्स देता है। आप इन्हें HTTP या JMX के माध्यम से एक्सपोज़ कर सकते हैं।

मॉनिटर करने के मुख्य क्षेत्र:

• उपलब्धता (Availability): अपटाइम (uptime), रेडीनेस (readiness) और लाइवनेस (liveness) की जाँच करें। • प्रदर्शन (Performance): रिस्पॉन्स टाइम, लेटेंसी और थ्रूपुट को ट्रैक करें। • त्रुटियाँ (Errors): HTTP 4xx/5xx त्रुटियों और विफल संदेशों पर नज़र रखें। • JVM: हीप (heap), मेमोरी, CPU और थ्रेड्स की निगरानी करें। • डेटाबेस (Database): कनेक्शन पूल और स्लो क्वेरीज़ को ट्रैक करें। • Kafka: कंज्यूमर लैग (consumer lag) और रिट्राय रेट्स की निगरानी करें।

मेट्रिक्स कलेक्शन (Metrics Collection)

Spring Boot मेट्रिक्स एकत्र करने के लिए Micrometer का उपयोग करता है। आप इन मेट्रिक्स को एक्सपोज़ करने के लिए Prometheus रजिस्ट्री का उपयोग कर सकते हैं। एक सामान्य सेटअप में शामिल है:

Spring Boot App → Prometheus → Grafana

यह आपको डैशबोर्ड पर एप्लिकेशन डेटा को विज़ुअलाइज़ करने की अनुमति देता है।

लॉगिंग के सर्वोत्तम अभ्यास (Logging Best Practices)

लॉग्स आपको यह समझने में मदद करते हैं कि विफलता के दौरान क्या हुआ था। लॉग्स को मशीन-रीडेबल बनाने के लिए प्रोडक्शन में स्ट्रक्चर्ड JSON लॉगिंग का उपयोग करें।

क्या करें:

क्या न करें:

ऑपरेशनल स्टेबिलिटी (Operational Stability)

ऑपरेशनल सपोर्ट का अर्थ है डिप्लॉय करने के बाद सर्विस को स्थिर रखना। आपको इन पर ध्यान देना चाहिए:

एक मजबूत Spring Boot सर्विस को मॉनिटर करना, डिबग करना और रिकवर करना आसान होता है।

Source: https://dev.to/antonio_casado_1fe39cd90e/monitoring-in-spring-boot-1220