Буҷетҳои хатогӣ ва идоракунии SLO
1) Чаро SLO ва буҷети хато
SLO (Ҳадафи сатҳи хизматрасонӣ) - сатҳи мақсадноки сифат, ки аз ҷониби корбар қабул карда мешавад; SLI - ченаки ченшуда; Буҷаи хато - таҳаммулпазирӣ барои тамоюл дар як тиреза (одатан 30/90 рӯз).
Буҷаи хатогӣ эътимодро аз "абстраксия" ба манбаи идорашаванда табдил медиҳад: вақте ки буҷа зуд сӯхт, мо хусусиятҳо ва чинимро ях мекунем; вақте ки буҷа солим аст - шумо метавонед релизҳоро суръат бахшед.
2) Интихоби SLI: Он чизе ки "хуб" ҳисобида мешавад
Меъёр: "аз нуқтаи назари корбар муваффақ аст".
2. 1 SLI-ҳои классикӣ
Дастрасӣ фоизи дархостҳои муваффақ аст (ба истиснои дархостҳои муштарӣ).
'success = http_status ∈ {2xx, 3xx, 404} ва ҳеҷ вақт тамом намешавад' (404 метавонад муваффақияти хониши API ҳисобида шавад, агар он семантика интизор шавад).
Таъхир: таносуби дархостҳо аз ҳадди ниҳоӣ тезтар аст (масалан, p95 ≤ 300 ms).
'good _ latency = duration_ms ≤ 300'.
Freshness/Staleness: "маълумот аз X дақиқа калонтар нест" (кэш, феҳристҳо, коэффисентҳо).
Сифат: дурустии натиҷа (гузаштани валидаторҳои бизнес/инвариантҳои пуштибонӣ).
2. 2 Сарҳадҳо ва сегментҳо
SLI бояд бо иловаро муҳим ҳисоб карда шавад: 'масир', 'иҷорагир/бренд', 'минтақа/қаламрав', 'пардохт _ провайдер'. Ҳамин тавр, шумо нокомии як дастаки интиқодиро дар тамоми система "таҳқир" намекунед.
3) Формулаҳо ва буҷа
3. 1 Дархост дар асоси дархост (барои API афзалтар аст)
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 Намунаи ҳадафҳо
API умумӣ: 99. 9% дастрасӣ дар 30 рӯз → буҷа = 0. 1%.
Қаламҳои пардохтҳои интиқодӣ: 99. 95%; каталогҳо/ҷустуҷӯ: 99. 5%.
Таъхир: p95 ≤ 300 мс оид ба '/v1/пардохт ', p99 ≤ 800 мс.
4) Асбоби SLI
4. 1 Принсипҳо
Сабтҳо/роҳҳо → RED (Меъёри/Хатогиҳо/Давомнокӣ) бо сатилҳои возеҳ.
Боварӣ ҳосил кунед, ки 'иҷорагир', 'минтақа', 'route _ class' (бе PII) гузоред.
Ду ченакро ҳисоб кунед: "муваффақият" ва "умумӣ" ва барои таъхир, "зуд" ва "умумӣ".
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 × (10% буҷет барои 1 соат ва 5% барои 6 соат).
Чипта: сатҳи сӯзондан ≥ 6 × (2% дар 6 соат ва 1% дар 24 соат).
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% бошад ва тамоюл манфӣ бошад - "рамз-ях" аз рӯи хусусиятҳо, афзалият SRE/субот аст.
Варақаҳои канарӣ бояд як буридаи алоҳидаи SLO дошта бошанд ('ҷойгиркунӣ. муҳити зист =" канарӣ"').
6. 2 Афзалияти ақибмонӣ
Иқтидори фармонро мутаносибан ба сатҳи сӯзишворӣ ва таъсири даромад тақсим кунед.
Қарзи техникиро бо ченакҳо асоснок кунед: "ислоҳи X сатҳи сӯхтанро Y% кам мекунад".
6. 3 Ҳодисаи пас аз ҳодиса
Ҳар як ҳодиса - RCA ва "ислоҳе, ки наметавонад баргардонида шавад" (амалкунанда), назорат "ба SLO баргашт".
7) SLO ҳамчун рамз
7. 1 Намунаи равшани SLO (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 Насли қоида
Генераторҳоро (slo-generator, pyrra, sloth) барои ба таври худкор эҷод кардани қоидаҳо, панелҳо ва гузоришҳо истифода баред.
8) Таназзул ва муҳофизати SLO
Сарпӯши сарборӣ: бидуни вобастагии "гарон" дар авҷи худ ҷавобҳои зуд диҳед.
Кэш ва кӯҳна: 'кӯҳна-ҳангоми бозсозӣ' хонда шуд.
Меъёрҳо/Маҳдудиятҳо: пуштибониҳоро муҳофизат мекунад; масирҳои муҳим - афзалият.
Давомнокӣ/Вақт: танаффуси зуд ва шохаҳои "афтидан".
Парчамҳои хусусият: хомӯш кардани хусусиятҳои вазнин бо як тугма.
9) Риояи SLO
Панели панелҳо: SLO против ҳадаф, тавозуни буҷа, меъёри сӯзондан, саҳми хатсайрҳо/провайдерҳо.
Коррелятсия: аз "сӯрохи" -и SLO → то намуна → пайгирии мушаххас → гузоришҳо/профилҳо.
Ҳисоботҳо: ҳафтаина - тамоюлҳо, истеъмоли буҷа, сабабҳои асосии таназзул.
10) Антипаттернҳо
Як SLO "глобалӣ" барои тамоми § мушкилоти ниқобҳо. Сегмент.
«99. 99% дар ҳама чиз" ба истиснои арзиш ва воқеият. Аз таҷрибаи корбар ҳадафҳоро интихоб кунед.
Огоҳии CPU/heap ба ҷои сатҳи сӯхтан/SLO.
Сарфи назар кардани масирҳои 4xx/дароз, ки UX-ро вайрон мекунад.
Тирезаи ношаффоф (ғелонда ва тақвим) - муқоисаи "себ бо афлесун".
11) Хусусиятҳои IGaming/Finance
Роҳҳои пулӣ (пасандозҳо/бозпас гирифтан): SLO-ҳои инфиродӣ аз сатҳи умумӣ (масалан, 99. 95% дастрасӣ; p95 ≤ 250 мс).
Таъминкунандагони PSP/KYC: SLO барои ҳар як провайдер + ҳушдор медиҳад, ки саҳми онҳо дар сӯхтан; гузариши автоматии масир (масири интеллектуалӣ).
Қаламравҳо/иҷорагирон: SLO ва буҷаҳо аз ҷониби 'минтақа/юрисдиксия/бренд', то ки мушкилоти маҳаллӣ метрикаи ҷаҳонро "об надиҳад".
Бозии масъул: SLO барои давраи татбиқи маҳдудиятҳо/худидоракунӣ (мувофиқат-формулаҳо).
Аудит/танзим: SLO ва гузоришҳои ҳодисаҳоро нигоҳ доред; шаффофияти аудити дохилӣ.
12) Рӯйхати санҷиши омодагии Prod
- SLI (мавҷудият/ниҳонӣ/сифат/тару тоза) ва сегментҳо (масир/иҷорагир/минтақа) муайян карда шудаанд.
- Ҳадафҳо (SLO) воқеӣ буда, бо тиҷорат ҳамоҳанг карда шудаанд; 30/90 рӯз тирезаҳои ғелонда мавҷуданд.
- Огоҳӣ аз рӯи сатҳи сӯзондан бо тирезаҳои бисёр (пейдж/чипта).
- SLO ҳамчун рамз (қоида/генератори панел); ҳисоботи буҷа.
- Дарвозаҳои озодкунӣ бо қисми боқимондаи буҷа алоқаманданд; бахшҳои канарӣ.
- Механизмҳои таназзул (рехтагарӣ, кӯҳнаи кэш, ноҳиявӣ, маҳдудиятҳо) татбиқ ва озмоиш карда мешаванд.
- Таносуби хатсайрҳои ченакҳо, дафтарҳои тоза.
- Роҳҳои молиявӣ/ҳуқуқӣ - SLO/огоҳиҳои алоҳида; PSP/KYC ихтилоф доранд.
- Сармоягузории мунтазами ретро ва эътимод ба сӯхтор.
13) TL; ДР
SLI-ро аз рӯи арзиши корбар муайян кунед, SLO-ҳои воқеиро муқаррар кунед ва тавассути буҷаи хатогӣ идора кунед ва сатҳи сӯзонданро бо тирезаҳои бисёрсоҳавӣ. Фаъол кардани SLO-as-code, дарвозаҳо ва таназзулро тибқи нақша. Сегмент аз рӯи масир/иҷорагир/минтақа; барои роҳҳои пулӣ ҳадафҳои сахттар ва огоҳиҳои ҷудогона нигоҳ доранд.