एनालिटिक्स एपीआई और प्रदर्शन मैट्रिक्स
1) आपको इसकी आवश्यकता क्यों है
एपीआई - प्लेटफ़ॉर्म "संचार प्रणाली। "सख्त मैट्रिक्स के बिना, हम नहीं कर सकते:- एसएलओ और एसएलए के कार्यान्वयन को साबित करें,
- बैंडविड्थ और क्वेरी इकोनॉमिक्स का प्रबंधन,
- जल्दी से गिरावट का स्थानीयकरण (p99-पूंछ, 5xx फटने),
- व्यापार प्रभाव अनुकूलन को प्राथमिकता दें।
उद्देश्य: एक एकल अवलोकन मॉडल जहां प्रत्येक अनुरोध को परिधि से डीबी तक सामान्य पहचानकर्ता और सुसंगत एसएलआई के साथ ट्रैक किया जाता है।
2) मैट्रिक्स का वर्गीकरण
तकनीकी: आरपीएस, विलंबता (p50/p95/p99), त्रुटि दर (4xx/5xx), संतृप्ति (सीपीयू, मेमोरी, फ़ाइल-डेस्क), कतार समय।
उत्पाद: सफल संचालन/मिनट, चरण रूपांतरण (200/कुल), दर-सीमित शेयर (429), रिट्रे, उपयोगकर्ता खंड।
लागत/अनुरोध (CPU-ms + egress + डेटाबेस अनुरोध), सुविधा/समापन बिंदु की लागत, $/किरायेदार, $/1k कॉल।
3) "गोल्डन सिग्नल": RED और USE
RED (API के लिए):- दर - अनुरोध/सेक (समापन बिंदु/किरायेदार/योजना द्वारा)।
- त्रुटियाँ - 4xx/5xx/429 भिन्न और निरपेक्ष।
- अवधि - p50/p95/p99 एंड-टू-एंड और चरणों द्वारा (इंग्रेस → ऐप → DB → थर्ड-पार्टी)।
- उपयोग - सीपीयू/आईओ/चैनल लोड।
- संतृप्ति - कतारें (रन-कतार, बैकलॉग, डीबी इंतजार)।
- त्रुटियाँ - ड्राइवर त्रुटि/समय समाप्ति।
4) बुनियादी परिभाषाएं और सूत्र
उपलब्धता SLI: '1 − (5xx + gateway_timeout )/ all_requests'।
सफलता SLI: '2xx/( सभी − 429_shadow)' (छाया ताले को छोड़ कर)।
Apdex: '(|T≤T| + 0। 5·|T≤4T| )/सभी ', जहां' टी 'लक्ष्य "अच्छा" सीमा है।
पूंछ प्रवर्धन: 'p99 _ कुल − max (p99_stage_i)' - कतारों/रचना का योगदान।
त्रुटि बजट (माह) 99 पर। 9%: 'बजट = 0। 1% अवधि _ time '।
विलंबता हिस्टोग्राम के अनुशंसित प्रतिशत डिब्बे: '[5ms, 10ms, 25ms, 50ms, 100 ms, 250 ms, 500 ms, 1s, 2। 5s, 5s] '।
5) SLI/SLO और बर्न-रेट द्वारा सतर्क
उदाहरण एसएलओ (सार्वजनिक एपीआई):- उपलब्धता: ≥ 99। 9 %/30 दिन।
- p95 विलंबता 'GET/वॉलेट/बैलेंस' <150 ms; 'POST/भुगतान' <400 ms।
- त्रुटि '5xx' <0। 2%. '429' (ठोस) <1% कुल यातायात।
- इंजीनियर को 6 घंटे के लिए 1 घंटे या 5% के लिए बजट का 2% → पृष्ठ।
- 10% प्रति दिन - आरसीए प्राथमिकता।
6) मैट्रिक्स का सेट (क्या इकट्ठा करना अनिवार्य है)
परिधि पर (प्रवेश द्वार/WAF):- 'http _ requests _ कुल {मार्ग, विधि, स्थिति, किरायेदार, योजना}'
- 'http _ requation _ deration _ secondation _ secons _ belte {route,...}' (हिस्टोग्राम)
- 'retries _ कुल {कारण}', 'दर _ limited _ कुल {key, नीति}'
- शरीर का आकार: 'अनुरोध _ बाइट्स', 'अनुक्रिया _ बाइट्स'
- 'db _ client _ appests _ कुल {op, table}', 'db _ latency _ second _ bult {op}'
- 'cache _ ops _ total {op}', कैश हिट-रेट बाहरी कॉल: 'आउटबाउंड _ calles _ total {privider, op}', विलंबता/त्रुटियां/कतार समय/पूल: लंबाई/देरी, सक्रिय संसाधन उपयोग कार्यकर्ता: CPu, RSSS S S s, FD D D D D D S S S S S P
व्यावसायिक लेबल: 'किरायेदार _ id', 'क्षेत्र', 'kyc _ level', 'plane', 'feature _ flag'।
7) ट्रेस और सहसंबंध (ओपनटेलीमेट्री)
W3C ट्रेस-कॉन्सेप्ट ('ट्रेसपेरेंट', 'ट्रैसेस्टेट') सभी हॉप्स पर।
स्पैन-एस चरणों से: ingress authZ ऐप हैंडलर DB/Redis PSP/बाहरी।
गुण/लेबल: 'http. मार्ग ',' एंडसर। आईडी ',' किरायेदार। id ',' idempotency। कुंजी ',' जोखिम। स्कोर '।
उदाहरण: विशिष्ट ट्रेस-आईडी के साथ विलंबता/त्रुटि रेखांकन पर एसोसिएट बिंदु।
नमूना:- "सामान्य" रास्तों के लिए सिर-आधारित 1-10%,
- पूंछ के लिए पूंछ आधारित (धीमी/गलत लेना),
- चोटियों और घटनाओं के लिए अनुकूल।
- सामान: प्रत्येक घटना को चिह्नित किए बिना कटौती के लिए 'किरायेदार '/' जोखिम' ले जाएं।
8) लॉग: संरचना और गोपनीयता
संरचित JSON; आवश्यक क्षेत्र 'ts', 'trace _ id', 'span _ id', 'मार्ग', 'स्थिति', 'latency _ ms', 'किरायेदार', 'user _ id _ hash' हैं।
पीआईआई नीति: मुखौटा पैन/पीआईआई; इनकार रहस्य/टोकन।
लॉग सैंपलिंग: 4xx/5xx/429 और "लॉन्ग" अनुरोधों के लिए उच्च।
9) डैशबोर्ड मैप (न्यूनतम सेट)
1. Exec-Sumary: RPS, उपलब्धता, त्रुटि-दर, p95/p99 विलंबता, 429 शेयर, बर्न-रेट बजट।
2. प्रति-मार्ग: आरपीएस/त्रुटि/पूंछ द्वारा शीर्ष अंत; संस्करणों (कैनरी) की तुलना।
3. प्रति-किरायेदार/योजना: लोड/लागत/त्रुटि नेता।
4. निर्भरता स्वास्थ्य: डीबी, कैश, पीएसपी/बाहरी - विलंबता, त्रुटियां, संतृप्ति।
5. क्षमता: सीपीयू/रैम/एफडी, कतारें, कनेक्शन पूल, जीसी, कंटेनर सीमा।
6. सुरक्षा/दुर्व्यवहार: 401/403, 429/राजनेता, भू/एएसएन स्लाइस, रिट्रे स्पाइक्स।
10) अलर्ट (दहलीज और प्रवृत्ति)
'error _ rate {route}'> 2% (5 मिनट) और RPS> N → पेजर।
'p99 _ latency {criction}'> लक्ष्य सीमा (10 मिनट)।
'बर्न _ रेट' बी बजट (देखें) 5)।
DB 'timeouts '/' गतिरोध' या वृद्धि 'कतार _ समय'> X ms।
बाहरी प्रदाता: 'आउटबाउंड _ 5xx _ दर {प्रदाता}'> 1% + SLO-निर्भर।
11) कैपेसिटिव प्लानिंग और प्रदर्शन
लिटिल का नियम: 'L = é· W' (औसत कतार लंबाई = ट्रैफिक × औसत समय)।
लक्ष्य p95 विघटित है: 'इंग्रेस + ऐप + डीबी + बाहरी + कतार'।
संगोष्ठी बजट: एक साथ लेखन कार्यों की अधिकतम संख्या तय करें।
बजट मीट्रिक: "सीपीयू एमएस प्रति अनुरोध"; हम शिखर पर 30-50% का मार्जिन रखते हैं।
दर-सीमा के साथ बातचीत: कोटा "छत" पर अनुरोधों के अनुपात और विलंबता पर प्रभाव को मापते हैं।
12) लोड और सिंथेटिक चेक
प्रकार: बेस लोड, फटता है × 10, "कदम", दीर्घकालिक पठार, तनाव/अराजकता (नोड किलिंग, नेटवर्क देरी), महत्वपूर्ण ग्राहक परिदृश्यों के अनुसार सिंथेटिक्स।
प्रोफाइलिंग: CPU/alloc/lock-contention, N + 1 (SQL/HTTP), धीमा कोड।
प्रतिगमन नियंत्रण: रिलीज (कैनरी) से पहले/बाद में p95/p99/त्रुटियों की तुलना।
13) लागत-अवलोकन
लागत मेट्रिक्स: 'cpu _ ms', 'egress _ bytes', 'db _ colles', '$ प्रति 1k अनुरोध'।
समापन बिंदु/किरायेदार/सुविधा के लिए आवंटन: ऑर्केस्ट्रेटर + लोड मेट्रिक्स - एपीआई इकाई अर्थशास्त्र रिपोर्ट से बिलिंग टैग।
अनुकूलन एल्गोरिथ्म: उत्पाद 'ट्रैफिक × लागत × (p95 − लक्ष्य)' द्वारा टॉप-एंडपॉइंट का चयन करें।
14) प्रति-किरायेदार एनालिटिक्स और "न्याय"
सभी कुंजी मैट्रिक्स को 'किरायेदार _ आईडी/प्लान' लेबल किया गया है।
p99 पूंछ में "भारी" ग्राहकों का हिस्सा; व्यक्तिगत सीमा/कोटा और रिट्रे बजट।
निष्पक्ष कतरनी: जब ओवरलोड होता है, तो हम "हाई-प्रोफाइल" किरायेदारों के हिस्से को कम करते हैं।
15) आईगेमिंग/वित्त की विशिष्टताएं
'kyc _ level', 'जोखिम _ tier', 'payment _ methy' द्वारा अनुभाग।
SLI "मनी" पथ ('POST/जमा', 'POST/निकासी') के लिए: कम लक्ष्य p95, अलग त्रुटि बजट।
टाइम-टू-वॉलेट (TTW) मैट्रिक्स, एंटी-फ्रॉड ऑटो-लॉक का हिस्सा, भुगतान रूपांतरण।
लेखा परीक्षा: वित्तीय कार्यों और धोखाधड़ी विरोधी निर्णयों के लिए अपरिवर्
16) उपकरण: कार्यान्वयन अभ्यास
नामकरण मेट्रिक्स (उदाहरण):- 'api _ http _ requests _ tomal' (काउंटर)
- 'api _ http _ requation _ dercation _ secons' (हिस्टोग्राम)
- 'api _ outbound _ requests _ tomal', 'api _ db _ query _ deration _ seconds'
- 'api _ rate _ limited _ tomal', 'api _ retry _ total {court}'
Лейблы: 'मार्ग', 'विधि', 'स्थिति _ वर्ग', 'किरायेदार', 'क्षेत्र', 'संस्करण', 'कैनरी', 'प्रदाता', 'db _ table'।
कार्डिनैलिटी: मुफ्त मूल्यों से बचें (user_id), "बाल्टी "/हैश का उपयोग करें।
उदाहरण: ट्रेस पर क्लिक करते हुए हिस्टोग्राम p95/p99 से कनेक्ट करें।
17) एंटीपैटर्न
प्रतिशत के बजाय मध्यम; स्थिति वर्गों में कोई विभाजन न
असंगत 'मार्ग '/' पथ' (गतिशील आईडी लेबल में "सिल" हैं)।
उच्च कार्डिनैलिटी (कच्चे user_id, आईपी) वाले लेबल।
बाहरी प्रदाताओं का कोई अलग लेखा (PSP/3rd-party)।
"शोर" (एकल खिड़की और एक सीमा) द्वारा अलर्ट।
p99 कतार समय को छोड़ कर (मुखौटा वास्तविक गिरावट)।
18) प्रोड रेडीनेस चेकलिस्ट
- SLI/SLO और त्रुटि-बजट परिभाषित, व्यवसाय के साथ सहमत।
- एकल विलंबता हिस्टोग्राम और स्थिति वर्ग; डैशबोर्ड पर p95/p99।
- पूर्ण ट्रेस (ओटीएल), लॉग/मीट्रिक/ट्रेस सहसंबंध।
- बर्न-रेट अलर्ट (टू-विंडो), p99 थ्रेसहोल्ड और त्रुटि-दर।
- प्रति-किरायेदार/प्रति-योजना अनुभाग और लागत रिपोर्ट।
- डैशबोर्ड: एक्सेक, प्रति-रूट, निर्भरता, क्षमता, दुर्व्यवहार।
- लोड परिदृश्य (फट/पठार/तनाव), प्रोफाइलिंग।
- जिटर रेट्राई नीतियां; आरपीएस पर रिट्रेज़के प्रभाव के लिए लेखांकन।
- भागीदारों और सार्वजनिक ग्राहकों के लिए SLA/SLO प्रलेखन।
- रिटेंशन/लॉग मास्किंग, पीआईआई सुरक्षा।
19) टीएल; डीआर
SLI/SLO और त्रुटि-बजट के आसपास अवलोकन का निर्माण करें, RED/USE मापें, p95/p99 और कतार के समय के साथ विलंबता हिस्टोग्राम एकत्र करें, परिधि से डीबी तक एकल ट्रेस-आईडी वितथा। कतार कानूनों के अनुसार योजना क्षमता और व्यापार मैट्रिक्स पर प एंटीपैटर्न - प्रतिशतता, उच्च कार्डिनैलिटी और बेहिसाब बाहरी निर्भरता के बजाय माध्यम।