SLO/SLA և չափումներ
SLO/SLA և մետրերը
1) Տերմիններ և հիերարխիա
SLI (Windows Level Indications) - չափված ցուցանիշը «ինչպես տեսնում է մեզ օգտագործողը» 'հաջողակ հարցումների մասնաբաժինը, p95 լատենտ, տվյալների թարմությունը, հաջողությամբ մշակված մարտերի մասնաբաժինը և այլն։
SLO (Systel Level Objective) - SLI-ի ամբողջ արժեքը դիտարկման սահմաններում (28/30/90 օր)։ Օրինակ ՝ "99. Հարցումների 9 տոկոսը/105 400 մզ է"։
Error budget — 1 − SLO. SLO 99-ում։ 9% սխալների բյուջե = 0։ 1 տոկոսը/հարցումները։
SLA (Agream) - ծառայության իրավաբանորեն նշանակալի մակարդակը 'ներառում է SLO, չափումը, բացառությունները, փոխհատուցումը/տուգանքները։
2) Նախագծման սկզբունքները
Ախտանիշներ> ներքին չափումներ։ SLI-ն պետք է արտացոլի իրական օգտագործողի փորձը։
Հիմնական SLI-ի փոքր թիվը։ Ծառայության համար '2-5 հիմնական' հաջողությունը, լատենտությունը, թողունակությունը/թարմ, ճիշտ։
Կրիտիկական ճանապարհների իրականացումը։ Յուրաքանչյուր բիզնես սցենարի համար (wwww.kout, login, webhook, ETL բեռնումը) - իր SLI/SLO փաթեթը։
«Հաջողության» խիստ սեմանտիկան։ Ոչ թե «կոդը 200», այլ «օգտագործողը ժամանակին ստացավ պատասխանը և արդյունքը վալիդենը»։
Արտաքին և ներքին SLO բաժանումը։ Ներքին 'կառուցվածք; Արտաքին SLA-ն տեղադրված է 1-2 ինը ներքևում։
3) SLI կատալոգը (հանրաքվե)
3. 1 API/առցանց ծառայություններ
Հաջողությունը '«SLI _ success = 1 մգ (5xx + timeout + business _ error )/all _ reques.ru»
Լատենտություն ՝ p95/p99 'htttp _ server _ duration _ seconds' երթուղիներով/www.ru/վարձակալներ
Թողունակություն ՝ «RPS »/լիմիտներ/քվոտաներ
Ճիշտությունը 'վալիդային պատասխանների մասնաբաժինը (ազդանշաններ, սխեմաներ, ինվարանտներ)
3. 2 Ուեբհուկի/ասինխրոն առաքումներ
Առաքում 'T վայրկյանում ապացուցված իրադարձությունների մի մասը և N. Retraev-ը
Հաճախորդները 'բաժանորդների մասնաբաժինը առանց երկար ուշացման (տենանտ)
3. 3 Տվյալներ/ETL/MSH
Թարմություն (freshness) '«now nom _ sucessful _ ingest _ ts»
Ամբողջական ՝ «ingested _ rows/expected _ rows»
Ճիշտ է 'ձայնագրությունների մի մասը, որոնք անցել են որակի ստուգման
Propline 'jo-ի մասնաբաժինը ավարտված մինչև dedline
3. 4 Բջջային/հաճախորդների PPK
Հաճախորդների հաջողությունը 'նստարանների մասնաբաժինը առանց ֆատալ սխալների
Round-trip-p95-ից մինչև ռենդեր
Քաշ-հիթեր 'քեշից սպասվող մասնաբաժինը (ինչպես պերֆորանսի ախտանիշը)
4) Բանաձևերն ու նպատակների օրինակները
Հասանելիությունը (պահանջներով)
`SLI_req_avail = 1 − (failed_requests / total_requests)`
`SLO_req_avail = 99. 95% '30 օրվա ընթացքում www.error budget = 0։ Հարցումների 71 տոկոսը։
Հասանելիությունը (ժամանակի ընթացքում)
`uptime = (obs_window − downtime) / obs_window`
Լատենտ
"SLO _ latency = p95 (rome = "/www.ru") 24400 ռուբլի 7-օրյա կտրվածքով, բացառությամբ kash-pregevs (1%) (1%)
Տվյալների թարմությունը
"SLO _ freshness (delaset =" orders ") 2410 min 'p99 24 ժամվա ընթացքում։
5) Error budget-ը և փոփոխությունների կառավարումը
Բյուջեթը (B) '«B = 1 հազար SLO»։
Բյուջեի սպառումը (burn) 'ռուսական սխալների հարաբերությունը թույլատրելի հետ։
Քաղաքական գործիչները
Ընդմիջումը (burn> 1) դելֆիֆրիզը, կենտրոնացումը։
Burn rate> X կարճ պատուհանում 'պատահականություն և գլխարկ։ միջոցներ։
Պլանավորումը 'հանդիպման վրա սպրինտի մասնաբաժինը հարաբերվում է բուրնի հետ անցյալ ժամանակահատվածում։
6) Alerting: burn rate և բազմաբնույթ կանոնները
Գաղափարը 'արագ արտահոսք և դանդաղ դրեյֆ։
Օրինակ (SLO 99։ 9 տոկոսը, բյուջեն 0։ 1%):- Կրիտիկական ՝ «բյուջեի 2 տոկոսը 1 ժամվա ընթացքում» (արագ հրդեհը)։
- Նախազգուշացում ՝ «բյուջեի 5 տոկոսը 6 ժամվա ընթացքում» (սողալով քայքայումը)։
- Կանոնները
Կարճ պատուհանը (րոպե-ժամ) արագ խաղերի համար։
Երկար պատուհանը (6-24 ժամ) միտումների համար։
Լատենտ ՝ ալերտ ՝ p99> շեմա 355 րոպե, ֆլամպինգի ճնշմամբ և հետքերի համապատասխան լամպերի հետ կապը։
Արտահայտությունների օրինակ (տրամաբանություն)
error_ratio_5m = errors[5m] / requests[5m]
error_ratio_1h = errors[1h] / requests[1h]
burn_5m = error_ratio_5m / error_budget_fraction burn_1h = error_ratio_1h / error_budget_fraction alert_critical if burn_1h > 14 and burn_5m > 14 alert_warning if burn_6h > 6 and burn_30m > 6
7) Բազմաբնույթ (multi-tenae) և սեգմենացիա
SLI/SLO համարվում են վարձակալների/պլանների/տարածաշրջանների, հակառակ դեպքում մեդիան «փակում» ձախողումները։
Վիճակագրական նշանակության իրադարձությունների նվազագույն քանակը (guard-rails)։
SLA-ն կարող է տարբերվել բյուջեներով (օրինակ ՝ "J 99։ 9%, Free 99. 5%»).
8) Կապ դիտարկման և ուղու հետ
SLI-ի մետրերը 'histogramm/հաշվիչներից exemplars-ից, փոխանցումը դեպի «վատ» թրեյսներ։
Լոգը պատճառների աղբյուր է 'թայմաուտներ, բիզնես սխալներ, լիմիտներ։
Տվյալների համար lineage-ի կապն է. <<Ինչպիսի ջոբա է ձերբակալել թարմության մետրը>>։
9) Պայմանագրեր և SLA
SLA պարունակությունը
SLI/չափման/պատուհանի մեթոդը։
Բացառություններ (պլանավորված աշխատանք, ֆորս մաժոր)։
Ինտեգրման և հաղորդակցման գործընթացը (կարգավիճակ-էջ, RFO/RCA)։
Փոխհատուցում (credits) և հարցման կարգը։
Միգրացիան, գործողության ժամանակահատվածը, վերանայման պայմանները։
Առաջարկություններ
Երբեք մի խոստացեք հանրային SLO-ն ավելի խիստ, քան թույլ է տալիս ճարտարապետությունը և վիրահատական պրակտիկան։
Առանձնացրեք ներքին SLO և արտաքին SLA։
10) Արժեքը և գերակայությունը
Աղջիկների գինը գծային չէ։ «99. 9% → 99. 99%" = այլ ճարտարապետության դաս (N + 1, անջատողականություն, 71-71)։
Տեղադրեք SLO-ը ամենարժեքավոր օգտագործողների վրա։
Վերահսկեք հեռուստացույցի արժեքը 'downsampling, քվոտաներ, կրկնօրինակումներ և դասարաններ։
11) Ընթացակարգեր և հաշվետվություններ
Շաբաթական հաշվետվություններ 'SLO ծառայությունների/վարձակալների կատարումը, բյուջեի սպառումը, լավագույն պատճառները, բարելավման պլանները։
Հետպինդ RCA 'մենք կապում ենք բյուջեի կտորների հետ։ առաջադրանքներ ենք դնում բնածին պատճառները բարձրացնելու համար։
Ֆիչֆրիզ 'ներառման/հեռացման չափանիշներ։
12) Ձևանմուշներ (արագ սկսելու համար)
12. 1 SLO քարտը (օրինակ)
Service: Checkout API
SLI:
success: 1 - (5xx+timeouts+biz_failures)/all latency_p95: p95(http_server_duration_seconds{route="/pay"})
SLO:
success: 99. 95% / 30d latency_p95: ≤ 400ms / 7d
Windows:
primary: 30d rolling secondary: 7d rolling
Burn Alerts:
critical: use 1h/5m > 14 warning: use 6h/30m > 6
Owner: Team Checkout
Tenancy: per-tenant (≥ 1k req/day threshold)
Dashboards: RED + trace exemplars
12. 2 «SLO հասունություն»
13) Կանոնների օրինակներ (բեկորներ)
PromQL-ը հաջողության/սխալների/լատենտության
promql
Error rate (5xx + timeout) for the sum (rate (http_requests_total{route="/pay",code=~"5. route. 599"}[5m]))
/ sum(rate(http_requests_total{route="/pay"}[5m]))
p99 histogram_quantile latency (0. 99, sum(rate(http_server_duration_seconds_bucket{route="/pay"}[5m])) by (le))
Alerta burn-rate (կանոնների գաղափարը)
promql error_budget_fraction = 0. 001 for 99. 9%
(err_rate_5m / 0. 001 > 14) and (err_rate_1h / 0. 001 > 14) # critical
(err_rate_30m / 0. 001 > 6) and (err_rate_6h / 0. 001 > 6) # warning
Տվյալների թարմությունը
promql
Data order lag (minutes)
(max(time()) - max(last_ingest_ts_seconds{dataset="orders"})) / 60
14) SLO տվյալների համար և ML (հատկապես)
SLO տվյալների միջոցով 'թարմ p99, լիարժեք p99, ձախողումից հետո «վերամշակման» ժամանակը։
Տվյալների պայմանագրերը 'սպասվող սխեմաներ, ծավալներ, dedline; տվյալների խախտումը։
ML: SLO-ը ինֆեսսի լատենտության վրա, SLA-ի հասանելիությունը ֆիչի սթորի, draife-ի (մոդելի որակը առանձին թեմա է, SLA-ից դուրս)։
15) Անվտանգության և մասնագիտության ինտեգրումը
SLI լոգները առանց PII/գաղտնիքների; թունավորում/դիմակավորում։
SLO/SLA-ի և հրատարակությունների փոփոխությունների աուդիտը կատարվում է անփոփոխ ամսագրերում։
Կարգավորող ճանապարհների համար (վճարումներ/PII) - առանձին, ավելի խիստ SLO։
16) Չեկ թերթերը
Գործարկումից առաջ 2019/ֆիչին
- SLI «Հաջողություն/լատենտ/թողունակություն/թարմություն»։
- SLO և պատուհաններ; հաշվարկվել է սխալների բյուջեն։
- Burn-rate alerta (կարճ + երկար)։
- Dashbords RED + exemplars ռուսական մայրուղու; ռունիբուկները։
- Բազմաբնույթ կտրվածքները և կարևորության շեմերը։
- Ֆիչֆրիզի և հաշվետվությունների գործընթացը։
Վիրահատություն
- Շաբաթական զեկույցը SLO/burn, hardening պլանները։
- SLO վերագնահատումը ճարտարապետության/բեռի փոփոխության ժամանակ։
- Պարբերական «ուսուցումները» և ռունիբուկների նորարարությունը։
- Հեռուստատեսության և SLI-ի արժեքի վերահսկումը։
17) Runbook’и
Runbook 'արագ p99/2019
1. Alert r99> շեմը նախատեսվում է բացել dashbord-ը, որպեսզի անցնի exemplar-ի միջով։
2. Գտնել նեղ CLIENT/SERT սպանը, համեմատել տարածաշրջանները/տարբերակները։
3. Միացրեք դեգրադացիան (քաշ/լիմիտ/ֆոլբեկ), տեղեկացրեք կախվածության թիմը։
4. Դեպքից հետո RCA-ն, օպտիմիզացման խնդիրները, SLO-չափիչների նորարարությունը։
Runbook 'բյուջեի սպառումը> 50 տոկոսը շաբաթվա ընթացքում
1. Սառեցրեք փուչիկները, բարձրացրեք հուսալիության գերակայությունը։
2. Սխալների կլաստերիզացիա 'ճանապարհներով/վարձակալներով/կախվածություններով։
3. Ուղղումները կարգավորելու համար խորհուրդ է տրվում հաստատել միտման վերականգնումը։
4. Հետադարձ հայացք և ալտերտերի/շեմերի սեղմում։
18) FAQ
-Որքա՞ ն SLO-ն է անհրաժեշտ։
Օ 'Առնվազն կրիտիկական օգտագործողների սցենարներին' հաջողությունը + լատենտ։ Մնացած ամեն ինչ անհրաժեշտության դեպքում է։
Ի՞ նչն է ավելի լավ 'ժամանակի հասանելիությունը կամ պահանջը։
Օ 'Խնդրանքով' ավելի օգտագործողի մետրիկ։ Ժամանակի ընթացքում հարմար է ցանցային բաղադրիչների/ինֆրայի համար։
Ինչու՞ p95, ոչ թե միջին։
Օ 'Միջինը թաքցնում է պոչը։ օգտագործողը զգում է p95/p99։
Ինչպե՞ ս «ուղղել» չափազանց շատ։
Օ 'Սկսեք իրական նպատակներից (պատմական տվյալներ), ապա խստացրեք հասունությունը։
Կապված նյութեր
«Դիտարկումը 'լոգներ, մետրեր, հետքեր»
«Բաշխված ուղիներ»
«Աուդիտ և անփոփոխ ամսագրեր»
«Վեբհուկի առաքման երաշխիքները»
«In Transit/At Rest»
«Տվյալների ծագումը (Lineage)»