GH GambleHub

API վերլուծություն և արտադրողականության չափումներ

1) Ինչո՞ ւ է դա անհրաժեշտ

API-ն պլատֆորմի արյան համակարգ է։ Առանց խիստ մետրի մենք չենք կարող

ապացուցել SLO և SLA-ի կատարումը,

պլանավորվում է կառավարել հարցումների կարողությունը և տնտեսագիտությունը,

արագ տեղայնացնել քայքայումը (p99 պոչեր, 5xx),

առաջնահերթություն բիզնեսի վրա ազդելու համար։

Նպատակը 'դիտարկման միասնական մոդել, որտեղ յուրաքանչյուր հարցումը հետևում է պարագծից մինչև BD-ը համապատասխան լուծիչների և համաձայնեցված SLI-ի հետ։

2) Taksonomia metric

Տեխնոլոգիական ՝ RPS, լատենտ (p50/p95/p99), error rate (4xx/5xx), saturation (CPU, memory, 108-desc), queue Time։

Ապրանքային 'հաջողակ վիրահատություններ/րոպե, միաձուլումներ (200/total), rate-limited (429), հետքեր, օգտագործողների հատվածներ։

Արժեքը ՝ cost/request (CPU-24+ egress + BD հարցումներ), ֆիչի/endpoint, դոլար/tenant, դոլար/1K զանգեր։

3) «Ոսկու ազդանշաններ» ՝ RED և USE

RED (API-ի համար)

Rate-ը հարցումներ/վայրկյան է (endpointu/tenantu/պլան)։

Errors-4xx/5xx/429 բաժնետոմսեր և բացարձակ։

Duration-ը p50/p95/p99 end-to-end և քայլերի վրա (ingress corporation ap DB)։

USE (ռեսուրսների համար)

Utilization-ը CPU/IO/ջրանցքի բեռնումն է։

Saturation - հերթեր (run-queue, backlog, DB wait)։

Errors-ը վարորդների/թայմաուտների սխալներն են։

4) Հիմնական սահմանումները և բանաձևերը

Availability SLI: `1 − (5xx + gateway_timeout) / all_requests`.

Success SLI: '2xx/( all 35429 _ shadow) "(բացառելով" ստվերային "արգելափակումը)։

Apdex: `(|T≤T| + 0. 5 նոյեմբերի 2019 T 244T 24)/all ', որտեղ' T '- ը «լավ» շեմն է։

Tail amplification: «p99 _ total mex (p99 _ stage _ i)» - հերթերի/կազմի ներդրումը։

Error budget (ամիս) 99-ին։ 9% ՝ բյուջե = 0։ 1% ժամանակի _ ժամանակահատվածը "։

Առաջարկվող հիստոգրամ latency: "[507, 1007, 25.11, 50.11, 100.11, 250.11, 500.11, 1s, 2։ 5s, 5s]`.

5) SLI/SLO և alerting burn-rate-ում։

SLO (հանրային API) օրինակը

Հասանելիություն ՝ 3699։ 9 %/30 օր։

p95 լատենտ «GET/wallet/balet» <150 ms; «POST/payments» <400 ms։

Սխալները '5xx' <0։ 2%: «429» (հաստատուն) <1 տոկոսը ընդհանուր պայմանագրից։

Burn-rate alerta (երկու պատուհան)

Բյուջեի 2 տոկոսը 1 ժամ կամ 5 տոկոսը 6 ժամվա ընթացքում page ինժեներ է։

Օրական 10 տոկոսը կանխատեսում է RCA գերակայությունը։

6) Մեթրիկի հավաքածու (ինչ պետք է հավաքել)

Պարագծի վրա (դարպաս/WAF)

`http_requests_total{route,method,status,tenant,plan}`

"http _ request _ duration _ seconds _ bucket _ rope,..

`retries_total{reason}`, `rate_limited_total{key,policy}`

Մարմնի չափսերը '«request _ bytes», «response _ bytes»

Գյուղում

`db_client_requests_total{op,table}`, `db_latency_seconds_bucket{op}`

«cache _ ops _ total + op +, hit-rate cash արտաքին մարտահրավերներ ՝» www.bound _ calls _ total _ provider, op +, latency/սխալներ/timauts/timouts: երկարություն/ձգձգում, ռեսուրս USUSE: CPCPPPPPP PPPU PP PPU P, R, R, R, R, R, RPPPPPPPPPPPI PD, GC դադար

Բիզնես պիտակները ՝ «tenrone _ id», «region», «kyc _ level», «plan», «feature _ flag»։

7) Ճանապարհը և հարաբերակցությունը (OpenTelemetry)

W3C Trace-Exprest («traceparent», «tracestate») բոլոր հոփերում։

Փուլերը ՝ ingress wwww.authZ www.ap handler no DB/Redis/PSA/արտաքին։

Attributes/պիտակները ՝ "http. route`, `enduser. id`, `tenant. id`, `idempotency. key`, `risk. score`.

Exemplars: կապեք կետերը latency/error գրաֆիկների վրա հատուկ trace-id-ի հետ։

Sampling:
  • head-based 1-10% «սովորական» ճանապարհների համար,
  • tail-based պոչերի համար (վերցնում ենք դանդաղ/սխալ),
  • adaptive pikes- ի և պարամետրերի համար։
  • Baggage: «tenault »/« risk» տեղափոխումը կտրվածքների համար առանց յուրաքանչյուր իրադարձության նշելու։

8) Լոգի 'կառուցվածք և սեփականատիրություն

Կառուցվածքային JSON; պարտադիր դաշտերը ՝ «ts», «trace _ id», «բանաձև _ id», «rope», «status», «latency _ ore», «tenae», «user _ id _ hash»։

PII քաղաքականությունը 'դիմակավորել PAN/PII; արգելեք գաղտնիքները/հոսանքները։

Sampling logs: բարձր 4xx/5xx/429 և «երկար» հարցումների համար։

9) Dashbords քարտեզ (նվազագույն հավաքածու)

1. Exec-Summary: RPS, Availability, Error-rate, p95/p99 latency, 429 տոկոսը, burn-rate բյուջեն։

2. Per-Rober: RPS/սխալների/պոչերի լավագույն էնդոինտները։ տարբերակների համեմատություն (կանարեկկա)։

3. Per-Tenault/Plan 'բեռի/արժեքի/սխալների առաջնորդներ։

4. Dependency Health: DB, cache, PSA/արտաքին - latency, սխալներ, saturation։

5. Capacity: CPU/RAM/FD, գծեր, connational pool, GC, բեռնարկղերի սահմաններ։

6. Express/Abuse: 401/403, 429/քաղաքականություն, geo/ASN կտրվածքներ, գետերի աճը։

10) Ալերտա (շեմի և տենդենցային)

"error _ rate _ rope _> 2% (5 րոպե) և RPS> N-ը։

"p99 _ latency _ critical _> ռուսական շեմն է (10 րոպե)։

«burn _ rate» կոդով (տե՛ ս 355)։

DB 'timeouts '/« deadlocks »կամ« queue _ time> X Ms »աճը։

Արտաքին պրովայդերներ ՝ "wwww.bound _ 5xx _ rate _ provider +> 1% + SLO կախվածություն։

11) Կյանքի պլանավորումը և արտադրողականությունը

Լիթլի օրենքը '«L = noww.W» (գծի միջին երկարությունը = 3.ru)։

Նպատակային p95-ը տեղադրում ենք '«ingress + ap + DB + external + queue»։

Concurrency budget: Մենք արձանագրում ենք առավելագույն միաժամանակ write վիրահատությունները։

Budget-metrika: «Ms CPU հարցման համար»; պահում ենք 30-50 տոկոսը գագաթնակետին։

Փոխազդեցությունը rate-limit-ի հետ 'չափեք հարցումների մասնաբաժինը քվոտայի «առաստաղից» և ազդեցությունը լատենտության վրա։

12) Բեռի և սինթետիկ ստուգումներ

Տեսակներ ՝ 108, bursts թիվ 10, «քայլերը», երկարաժամկետ սարահարթը, սթրեսը/chaos (նոդի սպանությունը, ցանցի ուշացումը), կրիտիկական հաճախորդների սցենարների սինթեզիկան։

Ավելացումը ՝ CPU/alloc/www.k-entention, N + 1 (SQL/HTTP), դանդաղ։

Ռեգրեսիայի վերահսկումը 'ռ95/r99/սխալների համեմատություն մինչև/դրանից հետո (կանարյան)։

13) Արժեքը (Cost-Observability)

Ծախսերի չափումները ՝ «cpu _ 24»,« egress _ bytes »,« db _ calls »,« per 1k reques.ru »։

Allocation endpoint/tenant/ficha 'API-ի unite տնտեսագիտության մասին զեկույց։

Օպտիմիզացման ալգորիթմը 'ընտրում ենք TOP-endpoints-ը' «traffic procost» (p95 հազար նպատակ)։

14) Ռուսական տենանտը և «արդարությունը»

Բոլոր հիմնական մետրերը '«tenom _ id/plan» պիտակով։

«Ծանր» հաճախորդների մասնաբաժինը p99 պոչերում։ առանձին լիմիտներ/քվոտաներ և գետերի բյուջեներ։

Արդար շեյրինգ 'ծանրաբեռնվածության դեպքում նվազեցնում ենք «բարձր» վարձակալների մասնաբաժինը։

15) iGaming/ֆինանսական առանձնահատկությունները

«kyc _ level», «risk _ tier», «payment _ method»։

SLI-ը «փողի» ճանապարհների համար («POST/deposits», «POST/withdrawals») 'ցածր 24p95, առանձին սխալների բյուջեներ։

Metriks Time-to-Wallet (TTW), ավտոբուսների մասնաբաժինը հակաֆրոդ, վճարման փոխակերպումը։

Աուդիտ 'անփոփոխ ամսագրեր ֆինանսական գործողությունների և հակաֆրոդի որոշումների համար։

16) Գործիքներ 'իրականացման պրակտիկա

Փոխաբերություն (օրինակ)

`api_http_requests_total` (counter)

`api_http_request_duration_seconds` (histogram)

`api_outbound_requests_total`, `api_db_query_duration_seconds`

`api_rate_limited_total`, `api_retry_total{reason}`

Лейблы: `route`, `method`, `status_class`, `tenant`, `region`, `version`, `canary`, `provider`, `db_table`.

Կարդինալությունը 'խուսափեք ազատ արժեքներից (user _ id), օգտագործեք «բաքեր »/հեշ։

Exemplars: Միացրեք p95/p99-ը trace-ով։

17) Անտիպատերնի

Միջին պերցենտիլների փոխարեն։ տարբերակման բացակայություն կարգավիճակի դասարանների վրա։

Չհամաձայնեցված «rome »/« path» (դինամիկ ID «vshits» պիտակների մեջ)։

Պիտակները բարձր կարդինալությամբ (rultuser _ id, IP)։

Արտաքին պրովայդերների առանձին հաշվի բացակայությունը (PSA/3rd-party)։

Ալերտները «աղմուկի» վրա (միաձայն և մեկ շեմն)։

p99-ը բացառությամբ queue time (իրական դեգրադացիա)։

18) Բժշկական պատրաստվածության վերահսկման ցուցակը

  • SLI/SLO և error-budget-ը համաձայնեցված են բիզնեսի հետ։
  • Միասնական հիստոգրամներ latency և կարգավիճակ-դասարաններ; p95/p99 dashbords վրա։
  • Ամբողջական ուղի (OTel), լոգարանների/մետրի/թրեյսների հարաբերակցությունը։
  • Alerta burn-rate (երկչափ), p99 և error-rate շեմերը։
  • System-tenant/կտրման պլանը և գնի հաշվետվությունները։
  • Dashbords: Exec, Per-Rope, Dependencies, Capacity, Abuse։
  • Բեռի սցենարները (բուրստ/պլատո/սթրես), ավելացումը։
  • Ռեթերի քաղաքականությունը ջիթերի հետ; RPS-ի վրա ռելեների ազդեցությունները։
  • SLA/SLO գործընկերների և հանրային հաճախորդների համար։
  • Retenshn/logs, PII պաշտպանություն։

19) TL; DR

Տեղադրեք դիտարկումը SLI/SLO և error-budget-ի շուրջ, չափեք RED/USE-ը, հավաքեք gistramms latency p95/p99 և «queue time» -ի շուրջ, տարածեք մեկ trace-id պարամետրից մինչև BD, օգտագործեք tail/aptaptive-saptive-saptling-sampling-sampling-sampling-sampling-sampling-տենանտ/ստոմոստային կտրվածքներ և երկչափ burn-rate-alerting։ Պլանավորեք պարամետրերի օրենքներով և ազդելով բիզնեսի չափումների վրա։ հակատետրերը միջին է պերցենտիլների փոխարեն, բարձր կարդինալությունը և արտաքին կախվածությունը։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Telegram
@Gamble_GC
Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։