AWS Lambda आधारित Serverless ऑब्ज़र्वेबिलिटी
वितरित प्रणालियों और serverless computing की दुनिया में, ऑब्ज़र्वेबिलिटी प्राप्त करना application की विश्वसनीयता और प्रदर्शन सुनिश्चित करने की कुंजी है। इसमें पारंपरिक monitoring से अधिक शामिल है। Amazon CloudWatch और AWS X-Ray जैसे AWS ऑब्ज़र्वेबिलिटी tools का लाभ उठाकर, आप अपने serverless applications में अंतर्दृष्टि प्राप्त कर सकते हैं, समस्याओं का निवारण कर सकते हैं, और application प्रदर्शन को अनुकूलित कर सकते हैं। इस गाइड में, हम आपके Lambda आधारित serverless application की ऑब्ज़र्वेबिलिटी को लागू करने के लिए आवश्यक अवधारणाओं, tools और सर्वोत्तम अभ्यासों को सीखेंगे।
अपने infrastructure या application के लिए ऑब्ज़र्वेबिलिटी लागू करने से पहले पहला कदम अपने प्रमुख उद्देश्यों को निर्धारित करना है। यह बेहतर उपयोगकर्ता अनुभव, बढ़ी हुई डेवलपर उत्पादकता, service level objectives (SLOs) को पूरा करना, व्यावसायिक राजस्व बढ़ाना या आपके application प्रकार के आधार पर कोई अन्य विशिष्ट उद्देश्य हो सकता है। इसलिए, इन प्रमुख उद्देश्यों को स्पष्ट रूप से परिभाषित करें और स्थापित करें कि आप उन्हें कैसे मापेंगे। फिर वहां से backwards काम करके अपनी ऑब्ज़र्वेबिलिटी strategy डिज़ाइन करें। अधिक जानने के लिए "जो महत्वपूर्ण है उसे मॉनिटर करें" देखें।
ऑब्ज़र्वेबिलिटी के स्तंभ
ऑब्ज़र्वेबिलिटी के तीन मुख्य स्तंभ हैं:
- Logs: किसी application या system के भीतर हुई discrete events के timestamped records, जैसे कि failure, error, या state transformation
- Metrics: विभिन्न समय अंतराल पर मापा गया संख्यात्मक डेटा (time series data); SLIs (request rate, error rate, duration, CPU%, आदि)
- Traces: एक trace कई applications और systems (आमतौर पर microservices) में एक उपयोगकर्ता की यात्रा का प्रतिनिधित्व करता है
AWS आपके AWS Lambda application के लिए logging, monitoring metrics, और tracing से actionable insights प्राप्त करने के लिए Native और Open source दोनों tools प्रदान करता है।
Logs
ऑब्ज़र्वेबिलिटी सर्वोत्तम अभ्यास गाइड के इस अनुभाग में, हम निम्नलिखित विषयों पर गहराई से जाएंगे:
- Unstructured बनाम structured logs
- CloudWatch Logs Insights
- Logging correlation Id
- Lambda Powertools का उपयोग करके कोड सैंपल
- CloudWatch Dashboards का उपयोग करके Log visualization
- CloudWatch Logs Retention
Logs आपके application के भीतर हुई discrete events हैं। इनमें failures, errors, execution path या कुछ और जैसी events शामिल हो सकती हैं। Logs को unstructured, semi-structured, या structured formats में रिकॉर्ड किया जा सकता है।
Unstructured बनाम structured logs
हम अक्सर देखते हैं कि डेवलपर्स अपने application के भीतर print या console.log statements का उपयोग करके सरल log messages से शुरू करते हैं। इन्हें बड़े पैमाने पर programmatically parse और analyze करना कठिन है, विशेष रूप से AWS Lambda आधारित applications में जो विभिन्न log groups में कई lines of log messages generate कर सकते हैं। परिणामस्वरूप, इन logs को CloudWatch में consolidate करना चुनौतीपूर्ण हो जाता है और analyze करना कठिन। आपको logs में प्रासंगिक जानकारी खोजने के लिए text match या regular expressions करने होंगे। यहां unstructured logging का एक उदाहरण है:
[2023-07-19T19:59:07Z] INFO Request started
[2023-07-19T19:59:07Z] INFO AccessDenied: Could not access resource
[2023-07-19T19:59:08Z] INFO Request finished