Таҳлили API ва ченакҳои иҷро
1) Чаро ба шумо лозим аст
API - платформаи "системаи хунгард. "Бидуни ченакҳои қатъӣ мо наметавонем:- татбиқи SLO ва SLA-ро исбот кунед,
- идоракунии фарохмаҷро ва иқтисодиёти дархостҳо,
- зуд таназзулро локализатсия кунед (p99-думҳо, пардаи 5xx),
- оптимизатсияи таъсироти тиҷоратро афзалтар донед.
Ҳадаф: як модели ягонаи мушоҳида, ки дар он ҳар як дархост аз периметр то DB бо идентификаторҳои умумӣ ва SLI-ҳои пайваста пайгирӣ карда мешавад.
2) Таксономияи ченакҳо
Техникӣ: RPS, ниҳонӣ (p50/p95/p99), сатҳи хатогӣ (4xx/5xx), пуррагӣ (CPU, хотира, файл-desc), вақти навбат.
Маҳсулот: амалиётҳои бомуваффақият/дақиқа, табдили қадам (200/умумӣ), ҳиссаи маҳдуд (429), бозсозӣ, сегментҳои корбар.
Арзиш: арзиш/дархост (CPU-ms + egress + дархостҳои пойгоҳи додаҳо), арзиши хусусият/нуқтаи ниҳоӣ, $/иҷорагир, зангҳои $/1k.
3) "Сигналҳои тиллоӣ": RED ва USE
RED (барои API):- Нарх - дархостҳо/сек (аз рӯи нуқтаи ниҳоӣ/иҷорагир/нақша).
- Хатоҳо - фраксияҳои 4xx/5xx/429 ва мутлақ.
- Давомнокӣ - p50/p95/p99 охири-ба-охир ва марҳилаҳо (ingress → барнома → DB → тарафи сеюм).
- Истифода - сарбории CPU/IO/канал.
- Қаноатмандӣ - навбатҳо (давидан, ақибмонӣ, интизории DB).
- Хатогиҳо - хатогиҳо/танаффуси ронанда.
4) Таърифҳо ва формулаҳои асосӣ
Мавҷудияти SLI: '1 − (5xx + gateway_timeout )/ all_requests'.
Муваффақияти SLI: '2xx/( ҳама − 429_shadow)' (ба истиснои қулфҳои соя).
Apdex: '(|T≤T| + 0). 5·|T≤4T| )/ҳама ', ки дар он' T 'ҳадди ҳадафи "хуб" аст.
Тақвияти дум: 'p99 _ total − max (p99_stage_i)' - саҳми навбатҳо/таркиб.
Буҷаи хато (моҳ) дар 99. 9%: 'буҷа = 0. 1% давра _ вақт '.
Қуттиҳои фоизи тавсияшудаи гистограммаҳои ниҳонӣ: '[5ms, 10ms, 25ms, 50ms, 100ms, 250ms, 500ms, 1s, 2. 5s, 5s] '.
5) SLI/SLO ва ҳушдор бо сатҳи сӯхтан
Намунаи SLO (API оммавӣ):- Мавҷудият: ≥ 99. 9 %/30 рӯз.
- p95 таъхири 'GET/ҳамён/тавозун' <150 ms; 'POST/пардохтҳо' <400 мс.
- Хатогиҳои '5xx' <0. 2%. '429' (сахт) <1% трафики умумӣ.
- 2% буҷа барои 1 соат ё 5% барои 6 соат → саҳифа ба муҳандис.
- 10% дар як рӯз § афзалияти RCA.
6) Маҷмӯи ченакҳо (чӣ бояд ҷамъоварӣ ҳатмӣ бошад)
Дар периметри (дарвоза/WAF):- 'http _ дархостҳо _ total {масир, усул, мақом, иҷорагир, нақша}'
- 'http _ request _ disteration _ seconds _ сатил {масир,...}' (гистограмма)
- 'reties _ total {reail}', 'rate _ limited _ total {key, policy}'
- Андозаҳои бадан: 'request _ bytes', 'response _ bytes'
- 'db _ client _ requests _ total {op, table}', 'db _ latency _ seconds _ сатил {op}'
- 'cache _ ops _ total {op}', зангҳои берунии ҳофизаи кэш: 'outbound _ calls _ total {провайдер, op}', таъхири/хатогиҳо/таъхири навбатӣ/ҳавзҳо: дарозӣ/таъхирҳо, кормандони истифодаи захираҳо: CPU, RSS, FD, таваққуфи GC
Тамғакоғазҳои тиҷорӣ: 'иҷорагир _ ид', 'минтақа', 'kyc _ level', 'нақша', 'feature _ flag'.
7) Пайгирӣ ва коррелятсия (Open-Telemetry)
W3C Trace-Context ('traceparent', 'tracestate') дар ҳама теппаҳо.
Span-s аз рӯи марҳилаҳо: ingress → auth
Атрибутҳо/тамғакоғазҳо: 'http. масир ',' enduser. id ',' иҷорагир. id ',' аблаҳӣ. калиди ',' хатар. хол '.
Намунаҳо: Нуқтаҳои алоқамандро дар графикҳои ниҳонӣ/хатогӣ бо пайгирии мушаххаси id.
- 1-10% барои роҳҳои "муқаррарӣ",
- дум барои думҳо (оҳиста/хато гиред),
- мутобиқ ба қуллаҳо ва ҳодисаҳо.
- Бағоҷ: 'иҷорагир '/' хатар' барои буридан бидуни аломати ҳар як ҳодиса.
8) Гузоришҳо: сохтор ва махфият
Сохтори JSON; майдонҳои талабшаванда 'ts', 'trace _ id', 'span _ id', 'маршрут', 'status', 'latency _ ms', 'иҷорагир', 'user _ id _ hash' мебошанд.
Сиёсати PII: ниқоби PAN/PII; асрори/нишонаҳоро рад кунед.
Интихоби журнал: баланд барои 4xx/5xx/429 ва дархостҳои "дароз".
9) Харитаи панели (маҷмӯи ҳадди аққал)
1. Exec-Хулоса: RPS, Мавҷудият, Меъёри хатогӣ, таъхири p95/p99, 429 саҳм, буҷети сӯзондан.
2. Ҳар як масир: Нуқтаҳои болоӣ аз ҷониби RPS/Хато/Дум; муқоисаи версияҳо (канарӣ).
3. Як иҷорагир/Нақша: Сарборӣ/Арзиш/Роҳбарони хатогӣ.
4. Саломатии вобастагӣ: DB, кэш, PSP/беруна - дермонӣ, хатогиҳо, пуррагӣ.
5. Иқтидор: CPU/RAM/FD, навбатҳо, ҳавзи пайвастшавӣ, GC, маҳдудиятҳои контейнер.
6. Амният/сӯиистифода: 401/403, 429/сиёсатмадорон, иловаро geo/ASN, хӯшаҳои бозгашт.
10) Ҳушдорҳо (ҳадди ниҳоӣ ва тамоюл)
'error _ rate {route}'> 2% (5 дақиқа) ва RPS> N → pager.
'p99 _ latency {critical}'> ҳадди ҳадаф (10 дақиқа).
'burn _ rate' by буҷа (ниг. § 5).
DB 'timeouts '/' монеаҳо' ё афзоиш 'навбати _ time'> X ms.
Таъминкунандагони беруна: 'outbound _ 5xx _ rate {provider}'> 1% + SLO-вобаста.
11) Банақшагирӣ ва иҷрои қобилият
Қонуни Литл: 'L = λ· W' (дарозии миёнаи навбат = трафик × вақти миёна).
Ҳадафи p95 пусидаро ҷудо мекунад: 'ingress + app + DB + берунӣ + навбат'.
Буҷаи мувофиқат: шумораи максималии амалиёти навиштани ҳамзамон ислоҳ кунед.
Метрикаи буҷа: "CPU ms барои як дархост"; мо 30-50% маржаро ба қулла нигоҳ медорем.
Ҳамкорӣ бо меъёри маҳдудият: Таносуби дархостҳоро дар квотаи "шифт" ва таъсир ба таъхир андозагирӣ кунед.
12) Санҷишҳои боркунӣ ва синтетикӣ
Намудҳо: сарбории пойгоҳ, таркишҳо × 10, "қадамҳо", доманакӯҳҳои дарозмуддат, стресс/бетартибӣ (куштори гиреҳ, таъхири шабака), синтетика аз рӯи сенарияҳои муҳими муштарӣ.
Маълумот: CPU/alloc/lock-contention, N + 1 (SQL/HTTP), рамзҳои суст.
Назорати регрессия: муқоисаи p95/p99/хатогиҳо пеш аз/пас аз озодшавӣ (канарӣ).
13) Хароҷот ва риояи хароҷот
Нишондиҳандаҳои хароҷот: 'cpu _ ms', 'egress _ bytes', 'db _ calls', '$ барои дархостҳои 1k'.
Тақсимот ба нуқтаи ниҳоӣ/иҷорагир/хусусият: барчаспҳои биллинг аз оркестр + ченакҳои сарборӣ → ҳисоботи иқтисодии воҳиди API.
Алгоритми оптимизатсия: нуқтаҳои TOP-ро аз рӯи 'трафик × арзиши × (p95 − ҳадаф)' интихоб кунед.
14) Таҳлили ҳар як иҷорагир ва "адолат"
Ҳама ченакҳои калидӣ 'иҷорагир _ id/plan' нишон дода шудаанд.
Ҳиссаи муштариёни "вазнин" дар думҳои p99; маҳдудиятҳои инфиродӣ/квотаҳо ва баргардонидани буҷетҳо.
Тақсимоти одилона: ҳангоми изофабор мо ҳиссаи иҷорагирони "сатҳи баланд" -ро кам мекунем.
15) Хусусиятҳои IGaming/Finance
Бахшҳо аз рӯи 'kyc _ level', 'risk _ tier', 'pay _ methol'.
SLI барои роҳҳои "пул" ('POST/пасандозҳо', 'POST/бозхонд'): ҳадафи поёнии p95, буҷаҳои хатогиҳои алоҳида.
Нишондиҳандаҳои вақт ба ҳамён (TTW), ҳиссаи қулфҳои зидди қаллобӣ, табдили пардохт.
Аудит: гузоришҳои тағйирнопазир барои амалҳои молиявӣ ва қарорҳои зидди қаллобӣ.
16) Воситаҳо: Амалияи татбиқ
Номи ченакҳо (мисол):- 'api _ http _ requests _ total' (counter)
- 'api _ http _ request _ duration _ seconds' (гистограмма)
- 'api _ outbound _ requests _ total', 'api _ db _ query _ derration _ seconds'
- 'api _ rate _ limited _ total', 'api _ retry _ total {сабаб}'
Лейблы: 'маршрут', 'усул', 'status _ class', 'иҷорагир', 'минтақа', 'версия', 'канарӣ', 'провайдер', 'db _ table'.
Кардинал: аз арзишҳои озод канорагирӣ кунед (user_id), "сатил "/ҳашро истифода баред.
Намунаҳо: ба гистограммаҳои p95/p99 → пахш кардани пайгирӣ пайваст шавед.
17) Антипаттернҳо
Миёна ба ҷои фоизҳо; тақсимот ба синфҳои мақоми.
'Масир '/' роҳи номувофиқ (ID-ҳои динамикӣ ба тамғакоғазҳо "дӯхта шудаанд").
Тамғакоғазҳо бо кардинали баланд (user_id хом, IP).
Баҳисобгирии алоҳидаи провайдерҳои беруна (PSP/тарафи сеюм) вуҷуд надорад.
Огоҳиҳо бо "садо" (равзанаи ягона ва як остона).
p99 ба истиснои вақти навбатӣ (ниқобҳои таназзули воқеӣ).
18) Рӯйхати санҷиши омодагии Prod
- SLI/SLO ва буҷаи хатогӣ, ки бо тиҷорат мувофиқа шудаанд.
- Гистограммаҳои ягонаи дермонӣ ва синфҳои вазъ; p95/p99 дар панели панелҳо.
- Пайгирии пурра (OT bel), коррелятсияи log/metric/trace.
- Огоҳиҳои сатҳи сӯзондан (ду тиреза), ҳадди p99 ва сатҳи хатогӣ.
- Қисматҳои ҳар як иҷорагир/ҳар як нақша ва ҳисобот дар бораи хароҷот.
- Панели панелҳо: Exec, Per-Route, вобастагӣ, қобилият, сӯиистифода.
- Сенарияҳои сарборӣ (дарида/плато/стресс), профил.
- Сиёсати Jitter Retrai; баҳисобгирии таъсири бозпас ба RPS.
- Ҳуҷҷатҳои SLA/SLO барои шарикон ва муштариёни ҷамъиятӣ.
- Нигоҳдорӣ/ниқоби сабти ном, ҳифзи PII.
19) TL; ДР
Дар атрофи SLI/SLO ва буҷаи хатогӣ эҷод кунед, RED/USE-ро чен кунед, гистограммаҳои таъхирнопазирро бо p95/p99 ва вақти навбат ҷамъ кунед, як пайкараи ягонаро аз периметр ба DB тақсим кунед, дум/мутобиқшавӣ-интихобро истифода баред, як иҷорагирро нигоҳ доред/буридани хароҷот ва ду тирезаи сӯхтан-сатҳи-ҳушдор. Мувофиқи қонунҳои навбат ва таъсир ба нишондиҳандаҳои тиҷорат иқтидорро ба нақша гиред; antipatterns - миёна ба ҷои фоизҳо, кардиналии баланд ва вобастагии ҳисобнашудаи беруна.