Amazon CloudWatch के साथ लॉगिंग और मेट्रिक्स

AWS पर एप्लिकेशन डिप्लॉय करना

Dunieski Otano

Amazon Web Services Solutions Architect

क्या यह डाउन है?

  • एक ग्राहक कहता है, ऐप टूटा है
  • पुष्टि/खंडन के लिए आपके पास कोई डेटा नहीं है
  • CloudWatch अटकलों को जवाबों में बदल देता है

एक मॉनिटरिंग डैशबोर्ड पर प्रश्नचिह्न, सेवा स्वस्थ है या डाउन, स्पष्ट नहीं

AWS पर एप्लिकेशन डिप्लॉय करना

Logging बनाम Monitoring बनाम Observability

तीन-स्तंभ का चित्र: लॉगिंग = अपरिवर्तनीय इवेंट रिकॉर्ड, मॉनिटरिंग = मेट्रिक थ्रेशहोल्ड और अलार्म, ऑब्ज़र्वेबिलिटी = नए सवालों के लिए डेटा का सहसंबंध

  • Logging: घटनाएँ होते ही रिकॉर्ड करें
  • Monitoring: ज्ञात मेट्रिक्स को थ्रेशहोल्ड से ट्रैक करें
  • Observability: अपने डेटा से नए सवाल पूछें
  • भरोसे से संचालन हेतु तीनों ज़रूरी हैं
AWS पर एप्लिकेशन डिप्लॉय करना

Log groups, log streams, और retention

  • Log group: संबंधित लॉग्स का नामित कंटेनर
  • Log stream: एक स्रोत से क्रमबद्ध अनुक्रम
  • Retention: लॉग कितने समय रखें
  • लॉग्स पर लागत आती है; रिटेंशन सोच-समझकर सेट करें

CloudWatch Logs अनुक्रम: एक log group में कई log streams, हर stream में समयानुक्रमिक इवेंट्स; रिटेंशन सेटिंग और लागत का संकेत

AWS पर एप्लिकेशन डिप्लॉय करना

Metrics और custom metrics

  • Metrics: टाइम-सीरीज़ संख्यात्मक डेटा
  • AWS कई सर्विस मेट्रिक्स स्वतः प्रकाशित करता है
  • Custom metrics: आपके ऐप के इमीट किए नंबर
  • Dimensions किसी एट्रिब्यूट से मेट्रिक को विभाजित करते हैं

CloudWatch metrics: बाएँ AWS सर्विस मेट्रिक्स ऑटो-पब्लिश्ड; दाएँ डाइमेंशंस के साथ कस्टम मेट्रिक; थ्रेशहोल्ड लाइन वाला टाइम-सीरीज़ चार्ट

AWS पर एप्लिकेशन डिप्लॉय करना

Embedded metric format

एक ही structured लॉग लाइन में आपके मेट्रिक वैल्यूज़ होती हैं और एक _aws ब्लॉक बताता है कि कौन-से फ़ील्ड्स मेट्रिक्स हैं:

{
  "_aws": {
    "CloudWatchMetrics": [
      {
        "Namespace": "OrdersApp",
        "Dimensions": [["customerTier"]],
        "Metrics": [{ "Name": "OrderLatencyMs", "Unit": "Milliseconds" }]
      }
    ]
  },
  "customerTier": "premium",
  "OrderLatencyMs": 142
}
AWS पर एप्लिकेशन डिप्लॉय करना

Dashboards और alarms

बाएँ CloudWatch डैशबोर्ड विजेट पैनल; दाएँ अलार्म स्टेट मशीन: OK, ALARM, INSUFFICIENT_DATA; SNS से ईमेल/ऑटोमेशन को नोटिफिकेशन रूटिंग

  • Dashboard: एक स्क्रीन पर चार्ट्स और विजेट्स
  • Alarm: मेट्रिक थ्रेशहोल्ड पार करे तो ट्रिगर होता है
  • अलार्म SNS को रूट होते हैं, फिर email, SMS, या automation
  • हर मेट्रिक पर नहीं, यूज़र-फेस्ड लक्षणों पर अलार्म लगाएँ
AWS पर एप्लिकेशन डिप्लॉय करना

Structured लॉगिंग रणनीति

  • JSON में लॉग करें, फ्री-टेक्स्ट नहीं
  • timestamp, level, request ID, user ID शामिल करें
  • Structured फ़ील्ड्स फ़िल्टर/क्वेरी हो पाते हैं
  • सर्विसेज़ में एकरूपता से सहसंबंध संभव होता है

Structured JSON लॉग लाइन: timestamp, level, requestId, userId फ़ील्ड्स; Logs Insights क्वेरी दिखाती है कि नामित फ़ील्ड्स से सटीक फ़िल्टरिंग/एग्रीगेशन संभव है

AWS पर एप्लिकेशन डिप्लॉय करना

अभ्यास करते हैं!

AWS पर एप्लिकेशन डिप्लॉय करना

Preparing Video For Download...