X-Ray अवधारणाएँ और आर्किटेक्चर

Monitoring और Troubleshooting AWS

John Q. Martin

Principal Consultant

डिस्ट्रिब्यूटेड सिस्टम की चुनौती

 

मोनोलिथिक एप्लिकेशन

  • रैखिक फ्लो, एक ही प्रोसेस में समाहित
  • डिबग करना आसान

 

डिस्ट्रिब्यूटेड एप्लिकेशन

  • एक रिक्वेस्ट कई सेवाओं, DBs, बाहरी APIs से गुजरती है
  • फेल होने पर, किस सेवा ने कारण बना?

कई रंगों के धागों की उलझी गाँठ, दिखाती है कि डिस्ट्रिब्यूटेड सिस्टम में एक रिक्वेस्ट को ट्रेस करना कितना कठिन है

Monitoring और Troubleshooting AWS

AWS X-Ray क्या है?

 

X-Ray एक डिस्ट्रिब्यूटेड ट्रेसिंग सेवा है, जो:

  • एंड-टू-एंड सेवाओं में रिक्वेस्ट ट्रैक करती है
  • हर स्टेप पर लेटेंसी मापती है और एरर पकड़ती है
  • एप्लिकेशन आर्किटेक्चर को सर्विस मैप में दर्शाती है

 

उदाहरण रिक्वेस्ट पाथ:

  डायग्राम: डिस्ट्रिब्यूटेड ट्रेस में कई सेवाओं से गुजरता रिक्वेस्ट पाथ

Monitoring और Troubleshooting AWS

पाँच मुख्य क्षमताएँ

 

X-Ray की पाँच मुख्य क्षमताएँ: रिक्वेस्ट ट्रेसिंग, परफॉर्मेंस विश्लेषण, एरर डिटेक्शन, सर्विस मैप, और इनसाइट्स

Monitoring और Troubleshooting AWS

ट्रेसिंग कैसे काम करती है

 

डिस्ट्रिब्यूटेड ट्रेसिंग फ्लो: रिक्वेस्ट Service A में आता है, फिर Service B और C को कॉल करता है; हर कॉल HTTP हेडर में Trace ID पास करता है; हर सेवा वही Trace ID वाला सेगमेंट X-Ray डेमन को भेजती है, जो उन्हें X-Ray को फॉरवर्ड कर एक पूर्ण ट्रेस में जोड़ता है

Monitoring और Troubleshooting AWS

Trace ID और हेडर प्रोपेगेशन

 

Trace ID फ़ॉर्मेट:

X-Ray Trace ID फॉर्मेट: वर्ज़न नंबर, Unix टाइमस्टैम्प (hex), और यूनिक आइडेंटिफ़ायर

 

HTTP हेडर:

X-Amzn-Trace-Id:
  Root=1-5e8c1234-...;
  Parent=abc123;
  Sampled=1
  • Root, Trace ID, सभी सेवाओं में समान
  • Parent, अपस्ट्रीम सेगमेंट ID
  • Sampled, 0 या 1, ट्रेस्ड या स्किप्ड
Monitoring और Troubleshooting AWS

X-Ray डेमन

 

यह क्या करता है:

  • UDP पोर्ट 2000 पर सुनता है
  • आपके एप्लिकेशन से सेगमेंट डेटा प्राप्त करता है
  • बफ़र, बैच करता है, और X-Ray API को फॉरवर्ड करता है
  • आपकी ऐप को X-Ray सेवा से डिकपल करता है

 

एन्वायरनमेंट के अनुसार डिप्लॉयमेंट:

X-Ray डेमन डिप्लॉयमेंट: Lambda पर ऑटोमेटिक, EC2 पर एक सेवा, और ECS पर साइडकार

Monitoring और Troubleshooting AWS

सैंपलिंग

 

डिफ़ॉल्ट नियम:

  • प्रति सेकंड पहली रिक्वेस्ट - हमेशा ट्रेस्ड
  • अतिरिक्त रिक्वेस्ट का 5% - सैंपल्ड

कस्टम नियम फ़ील्ड्स:

  • fixed_target - प्रति सेकंड हमेशा ट्रेस करने योग्य रिक्वेस्ट
  • rate - अतिरिक्त रिक्वेस्ट का प्रतिशत
  • priority - कम नंबर प्राथमिकता जीतता है

 

उदाहरण रणनीति:

Rule 1 (priority 1):
  5xx errors -> 100% sampling

Rule 2 (priority 10):
  Normal traffic -> 5% sampling
Monitoring और Troubleshooting AWS

सेगमेंट्स

 

एक सेगमेंट क्या रिकॉर्ड करता है:

  • सर्विस नाम
  • शुरू और अंत समय
  • Trace ID
  • HTTP रिक्वेस्ट और रिस्पॉन्स विवरण
  • AWS अकाउंट और रीजन

 

सेगमेंट स्टेट्स:

X-Ray के पाँच सेगमेंट स्टेट्स: in progress, ok, error, fault, और throttle

Monitoring और Troubleshooting AWS

सबसेगमेंट्स

 

टाइमलाइन तुलना: बिना सबसेगमेंट 800ms की एक बार; सबसेगमेंट के साथ वही 800ms, DynamoDB 50ms, PaymentService 400ms (बॉटलनेक), और InventoryService 300ms में बंटा

सबसेगमेंट क्या करते हैं:

  • एक सेगमेंट के भीतर सूक्ष्म टाइमिंग देते हैं
  • डाउनस्ट्रीम कॉल्स ट्रैक करते हैं
  • 800ms कुल को तोड़ते हैं:
    • DynamoDB.PutItem: 50ms
    • PaymentService कॉल: 400ms
    • InventoryService कॉल: 300ms

 

नेमस्पेस:

तीन सबसेगमेंट नेमस्पेस: aws (AWS कॉल्स), remote (बाहरी HTTP), और local (कस्टम कोड)

Monitoring और Troubleshooting AWS

एनोटेशंस

 

मुख्य तथ्य:

  • इंडेक्स्ड key-value पेयर्स - सर्च और फ़िल्टर करने योग्य
  • सीमा: प्रति ट्रेस 50 इंडेक्स्ड
  • प्रकार: string, number, boolean

उपयोग के लिए:

  • user_id, order_id, environment
  • version, feature flags, error codes

 

फ़िल्टर सिंटैक्स:

annotation.user_id = "user-123"
annotation.environment = "production"
AND annotation.version = "1.2.3"
Monitoring और Troubleshooting AWS

मेटाडेटा

 

मुख्य तथ्य:

  • इंडेक्स्ड नहीं - न सर्च कर सकते, न फ़िल्टर
  • साइज लिमिट नहीं
  • कोई भी JSON स्ट्रक्चर सपोर्ट

उपयोग के लिए:

  • पूर्ण रिक्वेस्ट और रिस्पॉन्स बॉडीज़
  • एरर मैसेज और स्टैक ट्रेसेज़
  • बिज़नेस कॉन्टेक्स्ट (ऑर्डर आइटम्स, पते)

 

एनोटेशन बनाम मेटाडेटा:

तुलना तालिका: एनोटेशन इंडेक्स्ड और सर्चेबल, जबकि मेटाडेटा विस्तृत पर इंडेक्स्ड नहीं

Monitoring और Troubleshooting AWS

पूर्ण ट्रेस स्ट्रक्चर

 

कम्प्लीट ट्रेस स्ट्रक्चर: चार सेगमेंट्स, और सबसे धीमा ऑपरेशन बाहरी पेमेंट API

Monitoring और Troubleshooting AWS

पाठ का सार

 

  • X-Ray - एंड-टू-एंड विज़िबिलिटी के लिए डिस्ट्रिब्यूटेड ट्रेसिंग सेवा
  • ट्रेसिंग मैकेनिज्म - HTTP हेडर्स से Trace ID प्रोपेगेशन, डेमन द्वारा सेगमेंट कलेक्शन, कॉन्फ़िगरेबल सैंपलिंग रूल्स
  • ट्रेस कॉम्पोनेन्ट्स:
    • सेगमेंट्स - सर्विस-लेवल कार्य रिकॉर्ड
    • सबसेगमेंट्स - डाउनस्ट्रीम ऑपरेशंस की सूक्ष्म टाइमिंग
    • एनोटेशंस - फ़िल्टरिंग/सर्चिंग हेतु इंडेक्स्ड key-value पेयर्स
    • मेटाडेटा - विस्तृत कॉन्टेक्स्ट, इंडेक्स्ड नहीं
Monitoring और Troubleshooting AWS

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

Monitoring और Troubleshooting AWS

Preparing Video For Download...