GH GambleHub

त्रुटि बजट और एसएलओ प्रबंधन

1) एसएलओ और त्रुटि बजट क्यों

एसएलओ (सेवा स्तर उद्देश्य) - उपयोगकर्ता द्वारा कथित लक्ष्य गुणवत्ता स्तर; SLI - मापा मीट्रिक; प्रति विंडो विचलन के लिए त्रुटि बजट - सहिष्णुता (आमतौर पर 30/90 दिन)।

त्रुटि बजट एक "अमूर्तता" से विश्वसनीयता को एक प्रबंधित संसाधन में बदल देता है: जब बजट जल्दी से जलता है, तो हम सुविधाओं और चिनम को फ्रीज करते हैं; जब बजट स्वस्थ होता है - तो आप रिलीज को गति दे सकते हैं।

2) एसएलआई पिक: "अच्छा" के रूप में क्या मायने रखता है

मानदंड: "उपयोगकर्ता के दृष्टिकोण से सफल।"

2. 1 क्लासिक एसएलआई

उपलब्धता सफल अनुरोधों का प्रतिशत है (ग्राहक द्वारा रद्द किए गए लोगों को छोड़ कर)।

'success = http_status ∈ {2xx, 3xx, 404} और नो टाइमआउट' (404 को पढ़ा हुआ एपीआई सफलता माना जा सकता है यदि यह शब्दार्थ की अपेक्षा है)।

विलंबता: अनुरोधों का अनुपात सीमा से अधिक तेज है (उदाहरण के लिए, p95 ≤ 300 एमएस)।

'good _ latency = duration_ms ≤ 300'।

ताजगी/स्थिरता: "डेटा एक्स मिनट से पुराना नहीं है" (कैश, निर्देशिका, गुणांक)।

गुणवत्ता: परिणाम की शुद्धता (पासिंग बिजनेस वेलिडेटर्स/बैकेंड इनवेरिएंट्स)।

2. 2 सीमाएँ और खंड

SLI को महत्वपूर्ण स्लाइस द्वारा गिना जाना चाहिए: 'मार्ग', 'किरायेदार/ब्रांड', 'क्षेत्र/क्षेत्राधिकार', 'भुगतान _ प्रदाता'। इसलिए आप पूरे सिस्टम में एक महत्वपूर्ण हैंडल की विफलता को "धब्बा" नहीं देंगे।

3) सूत्र और बजट

3. 1 अनुरोध-आधारित (एपीआई के लिए पसंदीदा)


SLO_availability = good_requests / total_requests
Error_budget = 1 - SLO_target
Burn = 1 - SLO_actual

3. 2 समय-आधारित (पृष्ठभूमि सेवाओं/स्ट्रीमिंग के


SLO_uptime = good_minutes / total_minutes

3. 3 लक्ष्यों का उदाहरण

एपीआई जनरल: 99। 30 दिनों में 9% उपलब्धता - बजट = 0। 1%.
महत्वपूर्ण भुगतान कलम: 99। 95%; कैटलॉग/खोज: 99। 5%.

लेटेंसी: '/v1/भुगतान 'पर p95 ≤ 300 ms, p99 ≤ 800 ms।

4) एसएलआई इंस्ट्रूमेंटेशन

4. 1 सिद्धांत

लॉग/ट्रेल्स → RED (दर/त्रुटियां/अवधि) स्पष्ट बाल्टी के साथ मैट्रिक्स।

'किरायेदार', 'क्षेत्र', 'रूट _ क्लास' (पीआईआई के बिना) लगाना सुनिश्चित करें।

दो मैट्रिक्स की गणना करें: "सफलता" और "कुल", और विलंबता के लिए, "तेज" और "कुल"।

4. 2 प्रोमेथियस उदाहरण (दर प्रति 5 मी)

promql
Availability (successes/total)
sli:success:rate5m = sum by(region, route)(
rate(http_requests_total{code=~"2..    3.."}[5m])
)
sli:total:rate5m = sum by(region, route)(
rate(http_requests_total[5m])
)
sli:availability:ratio5m = sli:success:rate5m / sli:total:rate5m

Latency (fraction faster than 300 ms)
sli:fast:rate5m = sum by(region, route)(
rate(http_request_duration_seconds_bucket{le="0. 3"}[5m])
)
sli:latency_ok:ratio5m = sli:fast:rate5m / sli:total:rate5m

5) बर्न रेट (मल्टी-विंडो, मल्टी-बर्न) द्वारा अलर्ट

5. 1 आइडिया

हम देखते हैं कि लक्ष्य के सापेक्ष बजट कितनी तेजी से जलता है। यदि गति एक छोटी और लंबी खिड़की पर उच्च है, तो हम संकेत देते हैं।

5. 2 थ्रेशोल्ड प्रोफाइल (SLO 99 के लिए। 9%)

पेजिंग: बर्न रेट ≥ 14। 4 × (1 घंटे के लिए बजट का 10% और 6 घंटे के लिए 5%)।

टिकट: बर्न रेट ≥ 6 × (6 घंटे में 2% और 24 घंटे में 1%)।

5. 3 उदाहरण नियम (प्रोमेथियस, छद्म)

promql
Let's calculate the error_ratio on two windows short = 1 - (sum (rate (http_requests_total{code=~"2..    3.."}[5m])) /
sum(rate(http_requests_total[5m])))
long = 1 - (sum(rate(http_requests_total{code=~"2..    3.."}[1h])) /
sum(rate(http_requests_total[1h])))

For SLO = 99. 9%, error_budget=0. 001. BurnRate = error_ratio / 0. 001 burn_short = short / 0. 001 burn_long = long / 0. 001

Paging: Both windows exceed 14. 4× alert: SLOErrorBudgetBurnRateHigh expr: burn_short > 14. 4 and burn_long > 14. 4 for: 5m labels: { severity="page" }
annotations:
summary: "SLO burn rate high (short & long windows)"
runbook: "slo/runbooks/payments. md"

इसी तरह टिकट के लिए 6h/24h के लिए।

6) बजट का कार्यालय: प्रक्रियाएं

6. 1 रिलीज़ गेट्स

यदि बजट का संतुलन <25% है और प्रवृत्ति नकारात्मक है - सुविधाओं पर "कोड-फ्रीज", प्राथमिकता एसआरई/स्थिरता है।

कैनरी रिलीज़ में एक अलग SLO स्लाइस ('तैनाती) होना चाहिए। पर्यावरण =" कैनरी")।

6. 2 बैकलॉग को प्राथमिकता देना

दहन दर और राजस्व प्रभाव के अनुपात में कमांड क्षमता वितरित करें।

मैट्रिक्स के साथ तकनीकी ऋण को सही ठहराएं: "फिक्स एक्स वाई% द्वारा जलन दर को कम करेगा।"

6. 3 पोस्ट-घटना

प्रत्येक घटना - आरसीए और "फिक्स जिसे वापस रोल नहीं किया जा सकता है" (कार्रवाई योग्य), नियंत्रण "एसएलओ में वापस आ गया है।"

7) कोड के रूप में SLO

7. 1 एसएलओ मेनिफेस्ट उदाहरण (YAML)

yaml service: payments-api owner: team-payments slis:
- name: availability type: request_based success_query: sum(rate(http_requests_total{svc="pay",code=~"2..    3.."}[5m]))
total_query:  sum(rate(http_requests_total{svc="pay"}[5m]))
objective: 99. 95 window: 30d segments: ["region", "tenant", "route"]
- name: latency_p95_300ms type: latency_threshold good_query: sum(rate(http_request_duration_seconds_bucket{svc="pay",le="0. 3"}[5m]))
total_query: sum(rate(http_request_duration_seconds_count{svc="pay"}[5m]))
objective: 99. 0 window: 30d alerts:
- name: burn_high_page windows: ["5m", "1h"]
threshold_burn: 14. 4 severity: page

7. 2 नियम पीढ़ी

नियम, डैशबोर्ड और रिपोर्ट बनाने के लिए जनरेटर (स्लो-जनरेटर, पाइरा, स्लॉथ) का उपयोग करें।

8) एसएलओ गिरावट और सुरक्षा

लोड शेडर: चरम पर "महंगी" निर्भरता के बिना त्वरित जवाब दें।

कैश और बासी: 'बासी-जबकि-पुनर्नवीनीकरण' для पढ़ें।

दर/संगोष्ठी सीमा: बैकेंड की रक्षा करता है; महत्वपूर्ण मार्ग - प्राथ

सर्किट/टाइमआउट: फास्ट टाइमआउट और "फॉलबैक" शाखाएं।

फ्लैग्स: एक बटन के साथ भारी सुविधाओं को अक्षम करना।

9) एसएलओ के लिए अवलोकन

डैशबोर्ड: एसएलओ वास्तविक बनाम लक्ष्य, बजट संतुलन, बर्न दर, मार्गों/प्रदाताओं द्वारा योगदान।

सहसंबंध: SLO के "छेद" से अनुकरणीय - एक विशिष्ट ट्रेस लॉग/प्रोफाइल।

रिपोर्ट: साप्ताहिक - रुझान, बजट की खपत, गिरावट के शीर्ष कारण।

10) एंटीपैटर्न

पूरे "मास्क समस्याओं के लिए एक" वैश्विक "एसएलओ। खंड।

«99. हर चीज पर 99%" लागत और वास्तविकता को छोड़ कर। उपयोगकर्ता अनुभव से लक्ष्य चुनें।

बर्न दर/एसएलओ के बजाय सीपीयू/ढेर अलर्ट।

UX को खराब करने वाले 4xx/long redirects को अनदेखा करना।

अपारदर्शी खिड़की (रोलिंग बनाम कैलेंडर) - "संतरे के साथ सेब" की तुलना।

11) आईगेमिंग/वित्त की विशिष्टताएं

मुद्रा पथ (जमा/निकासी): समग्र स्तर से ऊपर व्यक्तिगत एसएलओ (जैसे) 99. 95% उपलब्धता; p95 ≤ 250 ms)।

PSP/KYC प्रदाता: जलाने में उनके योगदान के लिए प्रत्येक प्रदाता + अलर्ट के लिए SLO; स्वचालित मार्ग स्विचिंग (स्मार्ट रूटिंग)

न्यायालय/किरायेदार: एसएलओ और बजट 'क्षेत्र/अधिकार क्षेत्र/ब्रांड' द्वारा ताकि एक स्थानीय समस्या वैश्विक मीट्रिक को "बाढ़" न हो।

जिम्मेदार खेल: सीमा/स्व-बहिष्करण (अनुपालन-सूत्र) के आवेदन की अवधि के लिए एसएलओ।

लेखा परीक्षा/नियामक: एसएलओ और घटना रिपोर्ट रखें; आंतरिक ऑडिट के लिए पारदर्शिता।

12) प्रोड रेडीनेस चेकलिस्ट

  • एसएलआई (उपलब्धता/विलंबता/गुणवत्ता/ताजगी) और खंडों (मार्ग/किरायेदार/क्षेत्र) को परिभाषित किया गया है।
  • लक्ष्य (एसएलओ) यथार्थवादी हैं, व्यापार के साथ संरेखित हैं; रोलिंग विंडो 30/90 दिन हैं।
  • मल्टी-विंडो (पेजिंग/टिकट) के साथ बर्न रेट द्वारा अलर्ट।
  • एसएलओ कोड के रूप में (नियम/डैशबोर्ड जनरेटर); बजट रिपोर्ट।
  • रिलीज़ गेट बाकी बजट से बंधे हैं; कैनरी अनुभाग।
  • क्षरण तंत्र (शेडर, कैश बासी, सर्किट, सीमा) को लागू और परीक्षण किया जाता है।
  • मेट्रिक्स - ट्रेल्स सहसंबंध, स्पष्ट रनबुक।
  • वित्तीय/क्षेत्राधिकार मार्ग - अलग एसएलओ/अलर्ट; PSP/KYC असंबद्ध हैं।
  • नियमित घटना रेट्रो और बर्न-आधारित विश्वसनीयता निवेश।

13) टीएल; डीआर

उपयोगकर्ता मूल्य द्वारा SLIs को परिभाषित करें, यथार्थवादी SLO सेट करें, और त्रुटि बजट के माध्यम से प्रबंधन करें और मल्टी-विंडोज के साथ बर्न दर। योजना के अनुसार SLO-as-code, रिलीज़ गेट और क्षरण सक्षम करें। मार्ग/किरायेदार/क्षेत्र द्वारा खंड; पैसे के रास्ते के लिए तंग लक्ष्य और अलग अलर्ट रखते हैं।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।