अवलोकन - नमूना का पता लगाना
1) अवलोकन क्यों
अवलोकन (O11y) तीन सवालों के जवाब देता है: क्या हो रहा है, क्यों, इसे कैसे ठीक किया जाए। यह 4 संकेतों पर निर्भर करता है:- मेट्रिक्स (कुल मिलाकर, जल्दी से प्रतिक्रिया करें);
- लॉग (विवरण और फोरेंसिक);
- निशान (क्रॉस-कटिंग कारण-प्रभाव संबंध);
- प्रोफाइल (CPU/ढेर/प्रोड मोड में लॉक विवाद)।
कुंजी: संकेतों + टेलीमेट्री अर्थशास्त्र (नमूना, प्रतिधारण, संपीड़न) के बीच सहसंबंध।
2) सिग्नल मैप और सिद्धांत
2. 1 RED/USE
RED (API के लिए): दर (RPS), त्रुटियां (% 5xx/4xx महत्वपूर्ण), अवधि (p50/p95/p99)।
उपयोग (संसाधनों के लिए): उपयोग, संतृप्ति, त्रुटियां (एनआईसी, सीपीयू, डिस्क, कतारें)।
2. 2 उत्पाद अपरिवर्तनीय
एक SLO परिभाषित करें (उदा। "p95 विलंबता '/v1/भुगतान '≤ 300 मिलियन, गलत बजट 0। 30 दिनों में 5%")। अलर्ट केवल तभी "चीखना" चाहिए जब एसएलओ का उल्लंघन या जलाया जाए।
2. 3 संदर्भ
W3C ट्रेस संदर्भ ('traceparent', 'tracestate') और सामान को सुरक्षित रूप से उन/व्यावसायिक विशेषताओं (जैसे) को स्थानांतरित करने के लिए लागू करें। 'किरायेदार', 'क्षेत्र', कोई पीआईआई नहीं)।
3) अवलोकन वास्तुकला
SDK/ऑटो-इंस्ट्रूमेंटेशन: सेवाओं में OpenTelemetry (OTel) (HTTP/gRPC/DB/क्लाइंट)।
एक बस के रूप में ओटेल कलेक्टर: रिसेप्शन → संवर्धन → नमूना → निर्यात (प्रोमेथियस, टेम्पो/जैगर, लोकी/ईएलके, क्लिकहाउस)।
वाल्ट्स:- मेट्रिक्स: प्रोमेथियस/मिमिर/विक्टोरिया मेट्रिक्स;
- ट्रेल्स: टेम्पो/जैगर/जिपकिन;
- लॉग: Loki/ELK/Vector→S3+deshevoye भंडारण;
- प्रोफाइल: पाइरोस्कोप/पारका।
- सहसंबंध: सेवा रेखांकन, उदाहरण, p99 ग्राफ से एक विशिष्ट ट्रेस में संक्रमण।
4) नमूना ट्रेसिंग: रणनीतियाँ
4. 1 हेड-आधारित नमूना
सरल और सस्ता कार्यान्वयन (एसडीके/इंग्रेस में)।
विपक्ष: दुर्लभ त्रुटियों/धीमी प्रश्नों को याद कर सकते हैं।
कब: उच्च आरपीएस, सख्त बजट, एक अनुमानित शेयर की आवश्यकता होती है (उदाहरण के लिए, 1-5%)।
4. 2 पूंछ आधारित नमूना
अवधि समाप्त होने के बाद कलेक्टर में निर्णय लिया जाता है।
विसंगतियों को चुने जाने की गारंटी दी जा सकती है: त्रुटियां, p99, विशिष्ट मार्ग/किरायेदार।
विपक्ष: बफरिंग, कठिन और अधिक महंगा।
जब: मध्यम लागत पर "सार्थक" ट्रेल्स की आवश्यकता होती है।
4. 3 संयुक्त मॉडल
ग्लोबल हेड 1-5%, प्लस टेल नियम: "हमेशा त्रुटियों/धीमी गति से फैलाव को बचाएं", "50% कैनरी ट्रैफ़िक का नमूना लें", "एक घटना में भुगतान पथ के सभी निशान बचाएं।"
5) गतिशील नमूना और टेलीमेट्री बजट
बजट-जागरूक: होल्ड वॉल्यूम ≤ एन ट्रेल्स/मिनट; यदि पार हो जाता है, तो थ्रेसहोल्ड उठाएं (उदाहरण के लिए, केवल p99 का चयन करें। 5 +, केवल त्रुटि)।
मार्ग/किरायेदार द्वारा नियम: महत्वपूर्ण समापन बिंदु/किरायेदार - अधिक हिस्सेदारी
अनुकूली विंडो: फटता है - अस्थायी रूप से त्रुटि/धीमी दर बढ़ाता है।
कार्डिनैलिटी में कमी: उपयोगकर्ता-एजेंट, आईपी/एएसएन, स्क्वैश स्टैक ट्रेस, मास्क रहस्य को सामान्य करें।
6) कॉन्फ्रेंस (संदर्भ)
6. 1 ओपनटेलीमेट्री कलेक्टर - पूंछ-नमूना (यमल-टुकड़ा)
yaml receivers:
otlp: { protocols: { http: {}, grpc: {} } }
processors:
batch: { send_batch_size: 8192, timeout: 2s }
tail_sampling:
decision_wait: 5s num_traces: 100000 expected_new_traces_per_sec: 5000 policies:
- name: always-error type: status_code status_code: { status_codes: [ERROR] }
- name: slow-endpoints type: latency latency: { threshold_ms: 300 } # p95 цель
- name: important-routes type: string_attribute string_attribute: { key: http. target, values: ["/v1/payments", "/v1/payouts"] }
- name: tenant-eu1 type: string_attribute string_attribute: { key: tenant, values: ["eu-1"] }
- name: probabilistic-default type: probabilistic probabilistic: { sampling_percentage: 5. 0 }
exporters:
otlphttp/tempo: { endpoint: http://tempo:4318 }
prometheus: { endpoint: "0. 0. 0. 0:9464" }
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch, tail_sampling]
exporters: [otlphttp/tempo]
6. 2 प्रोमेथियस - उदाहरण (टुकड़ा)
अनुप्रयोग में, हिस्टोग्राम रिकॉर्ड करते समय, 'ट्रेस _ आईडी' के साथ उदाहरण जोड़ें। ग्राफाना में, "सुइयों" पर क्लिक करने से ट्रेस हो जाता है।
yaml scrape_configs:
- job_name: api scrape_interval: 10s honor_labels: true static_configs: [{ targets: ["api:9100"] }]
exemplar_limit: 10
6. 3 लोकी - लॉग की लागत को कम करना
लेबल केवल स्थिर हैं ('सेवा', 'एनवी', 'क्षेत्र', 'रूट _ क्लास')।
उच्च कार्डिनैलिटी (request_id, user_id) - पेलोड में, लेकिन पुनर्वितरण के साथ।
नमूना "सफल" InfoLogs, किसी भी त्रुटि/चेतावनी को सहेजें।
6. 4 जैगर/टेम्पो - प्रतिधारण और सूचकांक
3-7 दिनों के लिए कच्चे रास्ते स्टोर करें, लंबे समय तक कुल/समरूपता।
सस्ते भंडारण (S3-संगत) में parquet/ब्लॉक सक्षम करें, सूचकांक कॉम्पैक्ट हैं।
7) ट्रेसिंग सिमुलेशन
7. 1 नामकरण और गुण
'service। नाम ',' सेवा। संस्करण ',' तैनाती। पर्यावरण '।
'http। विधि ',' http। मार्ग ',' http। लक्ष्य ',' http। status_code', 'नेट। सहकर्मी। नाम '।
पीआईआई के बिना व्यावसायिक विशेषताएं: 'किरायेदार', 'क्षेत्र', 'भुगतान _ प्रदाता', 'गेम _ आईडी'।
7. 2 घटनाएँ और कनेक्शन
स्पैन इवेंट्स: महत्वपूर्ण बिंदु (डीबी लेनदेन की शुरुआत, रिट्रे, सर्किट ओपन, कैश मिस)।
लिंक: zapros→vebkhuk/sobytiye संचार; EDA और आउटबॉक्स/इनबॉक्स के लिए उपयोगी।
7. 3 उदाहरण
विलंबता/आकार हिस्टोग्राम में 'ट्रेस _ आईडी' के साथ उदाहरण जोड़ें: एक क्लिक में मीट्रिक ट्रेस के लिए → trace से नेविगेशन।
8) मेट्रिक्स: क्या और कैसे
8. 1 तकनीकी
मार्ग/किरायेदार/प्रदाता (पीएसपी, केवाईसी) द्वारा RED।
Пулы: 'db _ connections _ in _ use', 'http _ client _ in _ flight', 'कतार _ depth'।
स्थिरीकरण: रिट्रीट, टाइमआउट, सर्किट ओपन/हाफ-ओपन, रेट-लिमिट हिट।
गो/जावा/पायथन रनटाइम: जीसी रुकता है, ढेर, सुरक्षित बिंदु, गिल देरी।
8. 2 बिजनेस मेट्रिक्स
पंजीकरण/लॉगिन/एक जमा/निष्कर्ष, रूपांतरण, विफलताएं 3DS/KYC, चार्जबैक-अनुपात।
महत्वपूर्ण विशेषताएं: समय-से-बटुआ, सफलता-दर भुगतान।
8. 3 कार्डिनैलिटी और भंडारण
स्पष्ट बाल्टी के साथ हिस्टोग्राम (उदा। '[50 100 200 300 500 1000 2000] ms')।
उच्च कार्डिनैलिटी (कच्चे user_id, request_id) के साथ निशान से बचें - उन्हें लॉग/ट्रेल्स पर ले जाएं।
9) लॉग: मानक और सहसंबंध
प्रारूप: JSON + आवश्यक कुंजियाँ ('timestamp', 'level', 'message', 'trace _ id', 'span _ id', 'service', 'env').
संपादन: मुखौटा पैन, टोकन, पीआईआई।
नमूना: 'त्रुटि/चेतावनी' के लिए 100%, 'शोर' पथ पर 'जानकारी के लिए 5-20%
ट्रेस में बाइंडिंग - 'ट्रेस _ आईडी' के माध्यम से। लॉग स्ट्रिंग्स - "धुरी" का पता लगाने और इसके विपरीत।
10) बिक्री में रूपरेखा
CPU/ढेर/alloc/locks के लिए सतत प्रोफाइलिंग (Pyroscope/Parca) सक्षम करें.
गर्म ढेर के साथ सहसंबद्ध p99 चोटियाँ; 7-14 दिनों तक रखें।
11) SLO/त्रुटिपूर्ण बजट पर सचेत करना
एसएलओ अलर्ट: "गलत बजट एक्स %/घंटे की तुलना में तेजी से खर्च किया जाता है" (पूर्वानुमान अलर्ट)।
लक्षण, कारण नहीं: क्लाइंट स्तर (आरयूएम/एज या प्रति-मार्ग) के लिए सतर्क, सीपीयू के लिए नहीं।
मल्टी-विंडो, मल्टी-बर्न दर: 1 घंटे में 2% और 6 घंटे में 5% - दो स्थितियां।
नियोजित गिरावट के दौरान मौन: फीचर झंडे/कैनरी के दौरान दहलीज शिफ्ट।
12) लागत और प्रतिधारण
वॉल्यूम कोटा: ट्रेल्स ≤ एन टीबी/महीना, लॉग - गर्म 3-7 दिन, ठंडा एस 3 30-90 दिन, मेट्रिक्स - डाउनसैम्पलिंग (1 मिनट → 5 मिनट → 1 एच)।
पूंछ-नियम गलत/धीमा रखते हुए × 10- × 100 की मात्रा को कम करते हैं।
न्यूनतम लागत संकेत - मैट्रिक्स; उच्चतम मूल्य के साथ - "सही" ट्रेल्स और प्रोफाइल।
13) एंटीपैटर्न
"100% ट्रेल्स हमेशा" - लागत, शोर और ब्रेक का एक विस्फोट।
कुंजी/मास्किंग के बिना मुक्त प्रारूप में लॉग।
अनंत लेबल मेट्रिक्स (user_id/ip/full UA)।
कोई 'ट्रेसपेरेंट '/' सामान' - सहसंबद्ध नहीं किया जा सकता है।
SLO के बजाय CPU/ढेर पर अलर्ट - चैट "बर्न" बिना लाभ के।
त्रुटि प्राथमिकता के बिना "यादृच्छिक 1%" का नमूना/धीमी गति से - मूल्यवान मामलों को
14) डैशबोर्ड के उदाहरण (कंकाल)
एपीआई अवलोकन: आरपीएस, वर्ग द्वारा त्रुटि-दर, विलंबता p95/p99 (उदाहरण क्लिकेबल हैं), शीर्ष मार्ग।
रिलीज ़/कैनरी: पुराने/नए संस्करण मैट्रिक्स, आउटलेयर-रेट, ओपन-सर्किट, रेट्रीज़की तुलना।
PSP/KYC: प्रदाताओं द्वारा सफलता-दर, विलंबता और विफलता, भुगतान त्रुटियों के साथ सहसंबंध।
Infra: संसाधनों, कतार संतृप्ति, नेटवर्क बूंदों द्वारा उपयोग करें।
15) आईगेमिंग/वित्त की विशिष्टताएं
महत्वपूर्ण रास्ते (जमा/निष्कर्ष): केवल घटनाओं या सीमित खिड़कियों के लिए 100% ट्रेसिंग; सामान्य मोड में - पूंछ "सभी त्रुटि/लंबी विलंबता के साथ"।
क्षेत्र/किरायेदार: सामान में 'किरायेदार', 'अधिकार क्षेत्र', 'ब्रांड' जोड़ें; अधिकार क्षेत्र द्वारा SLO का निर्माण
एंटीफ्रॉड/बॉट फिल्टर: जोखिम एपीआई समाधान (अनुमति/इनकार/चुनौती), चुनौती-पास-दर, वेग-हिट के मैट्रिक्स और निशान।
ऑडिट/अनुपालन: पीआईआई के बिना न्यूनतम आवश्यक रखें; स्थिर लॉग - एक अलग सर्किट में।
16) प्रोड रेडीनेस चेकलिस्ट
- एंड-टू-एंड प्रसार ('ट्रेसपेरेंट', 'बैगेज'), लॉग/मीट्रिक/ट्रेस सहसंबंध।
- पूंछ-नमूना (त्रुटियों/धीमी/महत्वपूर्ण मार्ग) + संभाव्य डिफ़ॉल्ट के साथ ओटेल कलेक्टर।
- RED/USE मेट्रिक्स, स्पष्ट बाल्टी, अनुकरणीय - ट्रेस के लिए संक्रमण।
- एसएलओ और गलत बजट अलर्ट (दो समयसीमा)।
- टेलीमेट्री नियम और बजट; डाउनसैम्पलिंग मेट्रिक्स; लॉग के लिए ठंडा भंडारण।
- मानकीकृत JSON लॉग, redaction PII/रहस्य।
- बिक्री में शामिल प्रोफाइलिंग; घटना के लिए "हॉट" स्टैक के डैशबोर्ड।
- कैनरी डैशबोर्ड और संस्करण तुलना; "अंधे धब्बे" के बिना रिलीज़।
- रनबुक: किसी घटना के नमूना हिस्से को अस्थायी रूप से कैसे बढ़ाया जाए।
- गुण/लेबल नामकरण प्रलेखन और उच्च-कार्डिनैलिटी निषेध।
17) टीएल; डीआर
सहसंबंध के आसपास अवलोकन का निर्माण करें: RED/USE → exemplars metrics → trails → logs/profiles। संयुक्त नमूने के माध्यम से लागत का प्रबंधन करें: छोटे सिर% + पूंछ नियम (त्रुटियां, धीमी, महत्वपूर्ण मार्ग/किरायेदार) अलर्ट - SLO और त्रुटि बजट पर। प्रतिधारण और कार्डिनैलिटी को नियंत्रण में रखें, ओटेल कलेक्टर को "केंद्रीय तंत्रिका तंत्र" के रूप में उपयोग करें। "भुगतान/न्यायिक मार्गों के लिए - प्राथमिकता टेलीमेट्री और सख्त डेटा स्वच्छता।