GH GambleHub

Error Budgets we SLO dolandyryşy

1) Näme üçin SLO we ýalňyşlyklaryň býudjeti

SLO (Service Level Objective) - ulanyjy tarapyndan kabul edilýän maksatly hil derejesi; SLI - ölçelýän metrika; Error Budget - penjireden gyşarmalara rugsat (adatça 30/90 gün).
Ýalňyşlyklaryň býudjeti ygtybarlylygy "abstraksiýadan" dolandyrylýan çeşmä öwürýär: býudjet çalt ýananda - çini we derejesini doňdurýarys; haçan-da býudjet sagdyn bolsa, çykarylyşlary çaltlaşdyryp bolar.

2) SLI-ni saýlamak: "gowy" hasaplamaly

Kriteriýa: "ulanyjynyň nukdaýnazaryndan üstünlikli".

2. 1 Nusgawy SLI

Availability: Üstünlikli haýyşlaryň paýy (müşderi tarapyndan ýatyrylanlardan başga).
'success = http_status ∈ {2xx, 3xx, 404} we ýarymsyz' (404, garaşylýan semantika bolsa, okalýan API üçin üstünlik hasap edilip bilner).
Latency: haýyşlaryň paýy bosagadan has çalt (mysal üçin, p95 ≤ 300 ms).
`good_latency = duration_ms ≤ 300`.
Freshness/Staleness: "X minutdan uly bolmadyk maglumatlar" (keş, kataloglar, koeffisiýentler).
Quality: netijäniň dogrulygy (biznes-walidatorlaryň/arka-invariantlaryň geçmegi).

2. 2 Serhetler we segmentler

SLI 'route', 'tenant/brand', 'region/jurisdiction', 'payment _ provider' ýaly möhüm bölümler boýunça hasaplanmalydyr. Şeýlelik bilen, tutuş ulgam boýunça bir möhüm tutawajyň şowsuzlygyny "süpürip" bilmersiňiz.

3) Formulalar we býudjet

3. 1 Request-based (API üçin has gowy)


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

3. 2 Wagt based (fon hyzmatlary/akym üçin)


SLO_uptime = good_minutes / total_minutes

3. 3 Maksatlaryň mysaly

API umumy: 99. 30 günüň içinde elýeterliligiň 9% -i → býudjet = 0. 1%.
Kritiki töleg ruçkalary: 99. 95%; kataloglar/gözleg: 99. 5%.
Gizlinlik: p95 ≤ 300 ms -da '/v1/payments ', p99 ≤ 800 ms.

4) SLI gurallary

4. 1 Prinsipler

Açyk buckets bilen RED (Rate/Errors/Duration) metrikleri.
Hökman 'tenant', 'region', 'route _ class' (PII-siz) goýuň.
Iki metriki hasaplaň: "üstünlik" we "hemme zat", latency üçin - "çalt" we "hemme zat".

4. 2 Mysal Prometheus (5m üçin rate)

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) Burn rate (multi-window, multi-burn) boýunça alertler

5. 1 Pikir

Býudjetiň maksat bilen deňeşdirilende näderejede çalt ýanýandygyna seredýäris. Gysga we uzyn penjirede tizlik ýokary bolsa, signal berýäris.

5. 2 Bosagaly profiller (SLO üçin 99. 9%)

Paýjing: burn rate ≥ 14. 4 × (1 sagat üçin 10% we 6 sagat üçin 5%).
Bilet: burn rate ≥ 6 × (6 sagatda 2% we 24 sagatda 1%).

5. 3 Düzgünleriň mysaly (Prometheus, psevdo)

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"

Edil şonuň ýaly, bilet üçin 6 sagat/24 sagat.

6) Býujet dolandyryşy: prosesler

6. 1 Reliz geýtleri

Eger býudjetiň galyndysy <25% bolsa we tendensiýa negatiw bolsa - "kod-doňdurma" çi, SRE/durnuklylyk ileri tutulýar.
Kanar relizlerinde aýratyn SLO-bölek bolmaly ('deployment. environment="canary"`).

6. 2 Beklogyň ileri tutulmagy

Toparyň kuwwatyny ýanmagyň tizligine we girdejä täsirine proporsional paýlaň.
Tehniki borjuňyzy metrikler bilen esaslandyryň: "X fiks burn rate Y% azaldar".

6. 3 Wakadan soňky

Her bir waka - RCA we "yzyna gaýtaryp bolmajak fiks" (actionable), gözegçilik "SLO-a gaýdyp geldi".

7) SLO kod hökmünde

7. 1 SLO-manifestiň mysaly (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 Düzgünleriň döredilmegi

Düzgünleri, dashbordlary we hasabatlary awtomatiki döretmek üçin generatorlary (slo-generator, pyrra, sloth) ulanyň.

8) SLO-nyň pese gaçmagy we goragy

Load shedder: iň ýokary derejä ýetende "gymmat" endiksiz çalt jogap beriň.
Cache & stale: `stale-while-revalidate` для read.
Rate/Concurrency limits: arka taraplary goraýar; möhüm ugurlar - ileri tutulýan ugur.
Circuit/Timeout: çalt wagtlar we şahalaryň "fallback".
Feature flags: Agyr sahypalary bir düwme bilen öçürmek.

9) SLO üçin syn etmek

Daşbordlar: SLO actual vs target, býudjet balansy, burn rate, ugurlar/üpjün edijiler boýunça goşant.
Korrelasiýa: "deşikden" SLO → -a exemplar → anyk trace → log/profiller.
Hasabatlar: hepdede - tendensiýalar, býudjetiň sarp edilmegi, pese gaçmagyň esasy sebäpleri.

10) Antipatternler

Hemme zat üçin bir "global" SLO problemalary gizleýär. Segment.
«99. 99% ähli" gymmaty we hakykaty hasaba almazdan. Ulanyjy tejribesinden maksatlary saýlaň.
Burn rate/SLO ýerine CPU/heap boýunça alertler.
UX bozýan 4xx/uzyn redaksiýalary äsgermezlik etmek.
Aç-açan däl penjire (rolling vs senenama) - "alma bilen apelsin" deňeşdirmeleri.

11) iGaming/Maliýe aýratynlyklary

Pul ýollary (goýumlar/netijeler): aýry-aýry SLO umumy derejeden ýokary (mysal üçin) 99. 95% elýeterlilik; p95 ≤ 250 ms).
PSP/KYC üpjün edijileri: Her bir üpjün ediji boýunça SLO + burn-a goşan goşantlary üçin alertler; marşrutlary awtomatiki üýtgetmek (smart routing).
Ýurisdiksiýalar/tenantlar: SLO we 'region/jurisdiction/brand' boýunça býudjetler, ýerli mesele global metrikany "doldurmaz".
Jogapkär oýun: Çäklendirmeleri/öz-özüni aýyrmak wagtyna SLO (compliance-formulalar).
Audit/düzgünleşdiriji: SLO we hadysalaryň hasabatlaryny saklaň; içerki auditler üçin aç-açanlyk.

12) Prod-taýynlyk çek-sanawy

  • SLIs (availability/latency/quality/freshness) we segmentler (route/tenant/region) kesgitlenildi.
  • Maksatlar (SLO) hakyky, işewürlik bilen ylalaşylýar; 30/90 gün rolling penjireleri bar.
  • Burn rate boýunça köp penjireli alertler (jaň/bilet).
  • SLO kod hökmünde (düzgünleriň/daşbordlaryň generatory); býujet boýunça hasabatlar.
  • Reliz geýtleri býudjetiň galyndysyna daňylýar; kanar bölekleri.
  • Zaýalanmagyň mehanizmleri (shedder, cache stale, circuit, limitler) amala aşyryldy we synagdan geçirildi.
  • Metrikleriň baglanyşygy (exemplars), aýdyň runbooks.
  • Maliýe/ýurisdiksiýa ýollary - aýry-aýry SLO/alertler; PSP/KYC kiçi.
  • Wakalar boýunça yzygiderli retro we burn esasly ygtybarlylyga maýa goýumlary.

13) TL; DR

Ulanyjy gymmaty boýunça SLI-leri kesgitläň, hakyky SLO-lary goýuň we dolandyryşy köp penjireli "Error Budget" we "burn rate" arkaly dolandyryň. SLO-koduny, goýberiş oýunlaryny we meýilnama boýunça zaýalanmagy açyň. Marşrutlar/tenantlar/sebitler boýunça bölmek; pul ýollary üçin has berk maksatlary we aýry-aýry aladalary saklaň.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Telegram
@Gamble_GC
Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.