प्रॉम्प्ट
मल्टी-रीजन सेवाओं के लिए एक लेटेंसी-मेट्रिक्स पाइपलाइन डिज़ाइन करें: SDK OpenTelemetry ExponentialHistogram डेटा उत्सर्जित करते हैं, एक Collector इसे एग्रीगेट करता है, और एक बैकएंड Prometheus नेटिव हिस्टोग्राम लिखता है। सेमेंटिक्स, डाउनग्रेड पाथ और लागत नियंत्रण की व्याख्या करें।
परिदृश्य और बाधाएं
लेटेंसी माइक्रोसेकंड से लेकर मिनटों तक फैली होती है और सेवाओं में हाई-कार्डिनैलिटी लेबल होते हैं। कुछ बैकएंड केवल क्लासिक बकेट का समर्थन करते हैं, बैच खो सकते हैं, और क्वेरीज़ को p50, p95 और क्रॉस-रीजन एग्रीगेशन की आवश्यकता होती है। मेट्रिक्स को टेनेंट डेटा उजागर नहीं करना चाहिए या असीमित टाइम सीरीज़ नहीं बनानी चाहिए।
यह क्या परीक्षण करता है
यह परीक्षण एक्सपोनेंशियल सीमाओं, स्केल, सकारात्मक और नकारात्मक बकेट, शून्य गणना, count/sum, टेम्पोरैलिटी, और प्रक्रियाओं के बीच मर्ज करने की क्षमता को कवर करता है। OpenTelemetry छोटी सापेक्ष त्रुटि पर हाई डायनामिक रेंज के लिए एक्सपोनेंशियल सीमाओं को कंप्रेस करता है; Prometheus नेटिव हिस्टोग्राम मॉडल को मैप कर सकते हैं, लेकिन रूपांतरण और क्वेरीज़ को अर्थ बनाए रखना चाहिए।
संदर्भ दृष्टिकोण
SDK में केवल स्वीकृत व्यावसायिक आयामों और अवलोकनों को रिकॉर्ड करें। Collector में सेवा, क्षेत्र और निश्चित विंडो द्वारा समान स्कीमा को मर्ज करें। असमर्थित बैकएंड के लिए स्पष्ट रूप से सीमित क्लासिक बकेट में बदलें और सटीकता के नुकसान को रिकॉर्ड करें। स्केल, बकेट संख्या, लेबल सेट और प्रति-टेनेंट बजट सीमित करें; चुपचाप ट्रंकेट करने के बजाय सीमा पर डाउन-सैंपल करें या नए लेबल अस्वीकार करें।
महत्वपूर्ण विवरण
मर्ज करने से पहले टेम्पोरैलिटी, एग्रीगेशन टेम्पोरैलिटी, स्कीमा, सकारात्मक और नकारात्मक बकेट और समय सीमा की जांच करें; विभिन्न स्कीमा को सीधे नहीं जोड़ा जा सकता है। p95 को एक अनुमान के रूप में क्वेरी करें और सैंपल संख्या, त्रुटि और डाउनग्रेड मार्कर दिखाएं। किसी बैच को दो बार गिनने से बचने के लिए बैच सीक्वेंस नंबर और री-ट्राई का उपयोग करें।
सामान्य गलतियाँ
एक्सपोनेंशियल बकेट को सटीक क्वांटाइल कहना; विभिन्न टेम्पोरैलिटी को जोड़ना; असीमित लेबल की अनुमति देना; सब कुछ बेहतरीन स्केल में बदलना; नकारात्मक, शून्य बकेट और री-ट्राई डुप्लिकेशन को अनदेखा करना; और क्वेरी प्रवर्धन के बिना स्टोरेज को मापना।
मूल्यांकन रूब्रिक
मजबूत उत्तर SDK, Collector, remote-write, क्वेरी और बजट-नियंत्रण सीमाओं को परिभाषित करते हैं; मर्ज इनवेरिएंट और डाउनग्रेड नीति बताते हैं; और p95 त्रुटि की व्याख्या करते हैं। डेटा मॉडल या लागत विश्लेषण के बिना "histogram_quantile का उपयोग करें" कहना अपर्याप्त है।
फॉलो-अप प्रश्न
विभिन्न एक्सपोनेंशियल स्कीमा को सीधे मर्ज क्यों नहीं किया जा सकता है?
उनके बकेट इंडेक्स विभिन्न सीमाओं पर मैप होते हैं, इसलिए जोड़ने पर अवलोकन गलत सीमाओं में चले जाएंगे। विनिर्देश के अनुसार संगत स्कीमा पर रीमैप करें और सटीकता परिवर्तन को रिकॉर्ड करें।
आप cumulative और delta टेम्पोरैलिटी को एक साथ कैसे संभालते हैं?
प्रत्येक स्ट्रीम के आरंभ और पिछले मानों को बनाए रखते हुए Collector में स्पष्ट रूप से रूपांतरित करें। यदि निरंतरता गायब है, तो अपूर्ण विंडो को छोड़ दें या चिह्नित करें; कभी भी cumulative मानों को delta के रूप में न जोड़ें।
आपको क्लासिक हिस्टोग्राम पर कब वापस जाना चाहिए?
जब बैकएंड में नेटिव समर्थन का अभाव हो, अनुपालन के लिए निश्चित सीमाओं की आवश्यकता हो, या क्वेरी इकोसिस्टम एक्सपोनेंशियल बकेट की व्याख्या न कर सके, तो सीमित क्लासिक बकेट का उपयोग करें। उपभोक्ताओं को अनुमान लगाने के लिए छोड़ने के बजाय त्रुटि और लागत ट्रेड-ऑफ को प्रकाशित करें।