GH GambleHub

API талдау және өнімділік метрикасы

1) Бұл не үшін қажет

API - платформаның «қан айналымы жүйесі». Қатаң өлшемдерсіз біз:
  • SLO және SLA,
  • өткізу қабілетін және сұраныс экономикасын басқару,
  • тозуды тез оқшаулау (p99-қалдықтар, 5xx жарылыстар),
  • бизнеске әсері бойынша оңтайландыруға басымдық беру.

Мақсаты: бақылаудың бірыңғай моделі, онда әрбір сұрау салу жалпы сәйкестендіргіштермен және SLI-мен келісілген периметрден ДБ-ға дейін қадағаланады.

2) Метриктердің таксономиясы

Техникалық: RPS, жасырындылық (p50/p95/p99), error rate (4xx/5xx), saturation (CPU, memory, file-desc), queue time.
Өнімдік: сәтті операциялар/мин, қадамды конверсиялау (200/total), rate-limited үлесі (429), ретраиялар, пайдаланушы сегменттер.
Құны: cost/request (CPU-ms + egress + БД-сұраулар), фича/эндпоинт құны, $/тенант, $/1k шақырулар.

3) «Алтын сигналдар»: RED және USE

RED (API үшін):
  • Rate - сұрау салулар/сек (эндпоинт/тенант/жоспар бойынша).
  • Errors - 4xx/5xx/429 үлестер мен абсолюттер.
  • Duration - p50/p95/p99 end-to-end және сатылары бойынша (ingress → app → 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 − 429_shadow)' («көлеңкелі» блоктарды қоспағанда).
Apdex: `(|T≤T| + 0. 5· | T ≤ 4T | )/all ', мұндағы' T '- мақсатты «жақсы» табалдырық.
Tail amplification: 'p99 _ total − max (p99_stage_i)' - кезек/композиция үлесі.
Error budget (ай) кезінде 99. 9%: 'бюджет = 0. _ Кезеңнің% 1 уақыты.

latency гистограммаларының ұсынылатын перценттік биндер: '[5ms, 10ms, 25ms, 50ms, 100ms, 250ms, 500ms, 1s, 2. 5s, 5s]`.

5) SLI/SLO және burn-rate бойынша алертинг

SLO мысалы (жария API):
  • Қолжетімділік: 99 ≥. 9 %/30 күн.
  • p95 латенттілік 'GET/wallet/balance' <150 мс; 'POST/payments' <400 мс.
  • '5xx' <0 қателері. 2%. '429' (қатты) <1% жалпы трафик.
Burn-rate (екі терезелі):
  • 1 сағат үшін 2% бюджет немесе 6 сағат үшін 5% → page инженер.
  • тәулігіне 10% → RCA басымдығы.

6) Метриктер жиынтығы (міндетті түрде не жинау керек)

Периметрде (шлюз/WAF):
  • `http_requests_total{route,method,status,tenant,plan}`
  • 'http _ request _ duration _ seconds _ bucket {route,...}' (гистограмма)
  • `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}', 'outbound _ calls _ total {provider, op}', latency/қателер/кезек уақыты/пулдар: ұзындықтар/кідірістер, белсенді воркерлер ресурстық USE: CPU, RSS, FD, GC-үзілістер

Бизнес-лейблдер: 'tenant _ id', 'region', 'kyc _ level', 'plan', 'feature _ flag'.

7) Трассировка және корреляция (OpenTelemetry)

W3C Trace-Context ('traceparent', 'tracestate') барлық хоптарда.
Span-лар сатылары бойынша: ingress → authZ → app handler → DB/Redis → PSP/сыртқы.
Attributes/лейблдер: 'http. route`, `enduser. id`, `tenant. id`, `idempotency. key`, `risk. score`.
Exemplars: latency/error кестелеріндегі нүктелерді нақты trace-id-мен байланыстыру.

Sampling:
  • «кәдімгі» жолдар үшін head-based 1-10%,
  • tail-based (баяу/қате аламыз),
  • шыңдар мен оқыс оқиғалар үшін adaptive.
  • Baggage: 'tenant '/' risk' әрбір оқиғаны белгілемей, қималар үшін.

8) Логи: құрылымы және құпиялылығы

Құрылымдалған JSON; міндетті өрістер: 'ts', 'trace _ id', 'span _ id', 'route', 'status', 'latency _ ms', 'tenant', 'user _ id _ hash'.
PII саясаты: PAN/PII бүркемелеу; құпияларды/белгілерді тыйым салыңыз.
Самплинг логтары: 4xx/5xx/429 және «ұзын» сұраулар үшін жоғары.

9) Дашбордтар картасы (ең аз жиынтық)

1. Exec-Summary: RPS, Availability, Error-rate, p95/p99 latency, 429 үлес, burn-rate бюджет.
2. Per-Route: RPS/қателер/қалдықтар бойынша топ-эндоинттер; нұсқаларын салыстыру (канарейка).
3. Per-Tenant/Plan: жүктеме/құн/қателер бойынша көшбасшылар.
4. Dependency Health: DB, cache, PSP/сыртқы - latency, қателер, saturation.
5. Capacity: CPU/RAM/FD, кезектер, connection pool, GC, контейнерлер лимиттері.
6. Security/Abuse: 401/403, 429/саясат, гео/ASN кесінділері, ретра жарылыстары.

10) Алерталар (шекті және трендтік)

'error _ rate {route}'> 2% (5 минут) және RPS> N → пагер.
'p99 _ latency {critical}'> мақсатты шегі (10 минут).
Бюджет бойынша 'burn _ rate' (§ 5 қараңыз).
DB 'timeouts '/' deadlocks' немесе 'queue _ time'> X мс.
Сыртқы провайдерлер: 'outbound _ 5xx _ rate {provider}'> 1% + SLO тәуелді.

11) Сыйымдылық жоспарлау және өнімділік

Литтл заңы: 'L = λ· W' (кезектің орташа ұзындығы = трафик × орташа уақыт).
p95 мақсатты орналастырыңыз: 'ingress + app + DB + external + queue'.
Concurrency budget: write-операциялардың максимумын тіркейміз.
Budget-метрика: «сұранысқа CPU мс»; шыңға қарай 30-50% қор сақтаймыз.
rate-limit өзара әрекеттесу: квотаның «төбесіндегі» сұраныстардың үлесін және жасырындылыққа әсерін өлшеңіз.

12) Жүктемелік және синтетикалық тексерулер

Түрлері: базалық жүктеме, × 10, «сатылар», ұзақ мерзімді плато, стресс/chaos (түйінді өлтіру, желіні кідірту), клиенттік сценарийлер бойынша синтетика.
Бейіндеу: CPU/alloc/lock-contention, N + 1 (SQL/HTTP), баяу кодтар.
Регрестерді бақылау: р95/р99/релизге дейінгі/кейінгі қателерді салыстыру (канареялық).

13) Құны (Cost-Observability)

Шығын өлшемдері: 'cpu _ ms', 'egress _ bytes', 'db _ calls', '$ per 1k requests'.
Эндпоинт/тенант/фичке аллокация: оркестратордан биллинг тегтері + жүктеме метрикасы → API юнит-экономика бойынша есеп.
Оңтайландыру алгоритмі: 'traffic × cost × (p95 − мақсат)' туындысы бойынша TOP-эндпоинттерді таңдаймыз.

14) Талдау және «әділеттілік» пер-тенанты

Барлық негізгі метриктер - 'tenant _ id/plan' лейблімен.
p99 қалдықтарындағы «ауыр» клиенттердің үлесі; жекелеген лимиттер/квоталар және ретрайлардың бюджеттері.
Әділ шейринг: шамадан тыс жүктеме кезінде «қатты» жалгерлердің үлесін азайтамыз.

15) iGaming/Қаржы ерекшелігі

'kyc _ level', 'risk _ tier', 'payment _ method' бойынша тіліктер.
«Ақша» жолдары үшін SLI ('POST/deposits', 'POST/withdrawals'): төменде мақсатты p95, жекелеген қателер бюджеттері.
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 → трасса түймешігін басыңыз.

17) Антипаттерндер

Перцентилдердің орнына орташа; мәртебе-сыныптарға бөлудің болмауы.
Келісілмеген 'route '/' path' (динамикалық ID «тігілген»).
Жоғары кардинальды лейблдер (raw user_id, IP).
Сыртқы провайдерлерді бөлек есепке алудың болмауы (PSP/3rd-party).
«Шу» бойынша алерта (бір терезе және бір табалдырық).
p99 (нақты деградацияны бүркемелейді).

18) Prod-әзірлікті бақылау тізімі

  • SLI/SLO және error-budget анықталған, бизнеспен келісілген.
  • latency бірыңғай гистограммалары және статус-кластар; p95/p99 дашбордтарда.
  • Толық трасса (OTel), логтардың/метриктердің/трейстердің корреляциясы.
  • Burn-rate (екі терезелі) алерттары, p99 және error-rate бойынша табалдырықтар.
  • Пер-тенант/пер-жоспар қималар және құн бойынша есептер.
  • Дашбордтар: Exec, Per-Route, Dependencies, Capacity, Abuse.
  • Жүктеме сценарийлері (бурст/плато/стресс), бейіндеу.
  • Ретрайлардың джиттермен саясаты; ретрациялардың RPS әсерін есепке алу.
  • Серіктестер мен ашық клиенттер үшін SLA/SLO құжаттамасы.
  • Журналды ретеншн/бүркемелеу, PII қорғау.

19) TL; DR

SLI/SLO және error-budget айналасында бақылау жасаңыз, RED/USE өлшеңіз, p95/p99 және «queue time» latency гистограммаларын жинаңыз, периметрден БД-ға дейін бірыңғай trace-id таратыңыз, tail/adaptive-sampling пайдаланыңыз, пер-тенантты ұстаңыз/құндық тіліктер және екі терезелі burn-rate-алертинг. Сыйымдылықты кезек заңдары және бизнес-метрикаға әсері бойынша жоспарлаңыз; антипаттерндер - перцентильдер орнына орташа, жоғары кардиналдылық және есепке алынбаған сыртқы тәуелділіктер.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Telegram
@Gamble_GC
Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.