Logo GH

Операциялардың API өлшемдері

1) Мақсаты және жауапкершілік аймағы

API метрик - платформаның операциялық және бизнес-метриктеріне қол жеткізудің бірыңғай нүктесі. Ол:
  • консистенттік SLI/SLO (логин, депозит, мөлшерлеме, шығару);
  • KRI (тәуекелдің бастапқы индикаторлары: PSP/KYC/кезек/репликация);
  • бизнес-метрика (GEO/PSP/банктер бойынша авторизациялаудың табысы, табысты ставкалардың үлесі, негізгі жолдардың ұзақтығы p95/p99);
  • дашбордтар, алертинг, статус-беттер, есептілік үшін қауіпсіз, арзан және болжамды оқулар.

2) Сәулет қағидаттары

Read-heavy, write-few: API тек TSDB/кэштен агрегацияларды оқиды.
SLO-first: жауаптар уақыт бойынша болжамды; қателер мен азып-тозулар - ашық белгі беріледі.
Cost-aware: downsampling, квоталар, SDK-дағы канарейка фичтері.
Privacy-by-design: метадеректерде/лейблдерде PII жоқ; токендер, гео-гейт, SoD.
Multi-tenant: бренд/өңір/қоршаған орта бойынша оқшаулау.

3) Деректер моделі (үстіңгі)

Метриктер сериясы = 'metric _ id' + 'labels {}' + 'timestamp' + 'value' (+ қосымша 'exemplar {trace _ id =...}').

3. 1 Санаттар

SLI/SLO: `auth_success_rate`, `bet_settle_p99_ms`, `withdraw_tat_p95_ms`, `api_5xx_rate`.
KRI: `queue_consumer_lag`, `db_replication_lag`, `psp_soft_decline_rate`.
Бизнес: `deposits_success_pct`, `bets_success_pct`, `kyc_pass_rate`.
Инфра: `cpu_util`, `cache_hit_ratio`, `cdn_waf_block_rate`.

3. 2 Лейблдер (қатаң шектелген)

`region`, `tenant`, `environment`, `service`, `psp`, `bank_group`, `geo`, `device`, `version`, `component`.
Тыйым салынған: 'userId', 'sessionId', шикі карта/құжат нөмірлері.

4) Нұсқалау және үйлесімділік

Негізгі жол: '/v1/metrics/... '; сыйыспайтын өзгерістер - тек жаңа 'vX'.
backward-compatible.
Семантиканы өзгерту - жауаптағы 'schema _ version' өрісі және grace-кезеңі арқылы.
Схемалар каталогы '/v1/schemas 'деп жарияланады.

5) Эндпоинттер (gRPC/GraphQL ұқсас REST)

1. `GET /v1/metrics/query`

Параметрлер:
  • `metric` (multi), `from`, `to`, `step` (резолюция), `agg` (`avg|sum|min|max|p50|p95|p99`),
  • `filter[label]=value` (multi), `group_by=label1,label2`,
  • `downsample=1m|5m|1h`, `exemplars=true|false`, `limit` (рядов), `page`.
  • Жауап: қатарлар жиыны '{metric, labels {}, points: [[ts, value]], exemplars?}'.

2. `POST /v1/metrics/bulk-query`

Дене: бір батпен 50 сұрауға дейін. Күрделі дашбордтар үшін сұрауларды үнемдейді.

3. `GET /v1/metrics/instant`

Берілген сүзгілермен 'ts' (немесе 'қазір') сәтіндегі ағымдағы мәндер.

4. `GET /v1/metrics/catalog`

Қол жетімді метриктер тізбесі, сипаттамалар, лейблдер, рұқсат етілген агрегациялар, SLO-байланыстар.

5. `GET /v1/metrics/health`

API-ның өзі: latency p95, кэштің істен шығуға төзімділігі, кэш-хит үлесі.

6. `GET /v1/metrics/slo`

Дайын SLO: бюджет шығыны қателер (fast/slow), мақсаттар мәртебесі.

6) Сұрау үлгілері

6. 1 TR PSP бойынша авторизациялаудың табысы, 1-мин грид, p95:


GET /v1/metrics/query? metric=auth_success_rate&from=2025-11-01T13:00:00Z&to=2025-11-01T16:00:00Z&step=1m&agg=p95&filter[geo]=TR&group_by=psp&downsample=1m

6. 2 p99 «bet → settle» өңірлер бойынша, exemplars (трейс-мысалдар):


GET /v1/metrics/query? metric=bet_settle_p99_ms&from=...&to=...&step=5m&group_by=region&exemplars=true

6. 3 EU бойынша SLO депозиттерінің жедел мәртебесі:


GET /v1/metrics/slo? domain=payments&region=EU&tenant=brandA

6. 3 сұраудан 4 батч (POST/bulk-query) - қабаттары бар бір баған үшін.

7) Агрегациялар және перцентильдер

p50/p95/p99 перцентильдері TSDB/агрегатор деңгейінде есептеледі; 'downsample' кезінде - дұрыс композициямен (t-digest/HDR).
'group _ by' тек whitelisted-лейблдер арқылы рұқсат етілген.
'step' валидацияланады: realtime үшін ең аз 10с, көпшілік дашбордтар үшін 1м.

8) Кэш, downsampling және жаңалық

Көп деңгейлі кэш: in-memory (30-60 с дейін), таратылған (5 минутқа дейін), көпшілік SLO-вю үшін CDN.
Downsampling: үлкен терезелерде автоматты ('> 24h') → 5m/1h нүктесі.
Freshness-заголовки: `X-Data-Freshness: 12s`, `X-Downsample: 1m`, `X-Partial: true|false`.

9) Мульти-тенант және оқшаулау

Әрбір сұрауда 'tenant' (белгіде/лейблдерде) болуы тиіс.
ABAC/RBAC: рөлі/саясаты 'tenant, region, environment, metric_id' бойынша қолжетімділікті шектейді.
Show/charge-back: 'X-Query-Cost-Estimate' және usage-есептеуіштер тақырыптары.

10) Аутентификация және қауіпсіздік

OAuth2 mTLS/scope бойынша шектелген сервистік токендер.
SoD: ықтимал реттеуші тәуекелдері бар метриктерге қолжетімділік (қаржы, RG) - жеке рөлдер.
Rate limits: клиент кілті бойынша және 'metric _ id' бойынша.
PII-санитайз: сервер тыйым салынған сүзгілердің/лейблдердің жоқтығын валидациялайды.

11) Гео-резиденция және комплаенс

Деректер резиденттік саясаты бойынша өңірлік сторадждерден (EU/LATAM/APAC) оқылады.
Кросс-өңірлік сұраулар - тек PII жоқ агрегаттар үшін және 'compliance _ scope' бар болса.

12) Даналар/Exemplars және корреляция

'exemplars = true' кезінде перцентильдер нүктелерінде жылдам RCA үшін репрезентативті 'trace _ id' (PII) жұбына сілтемелер қайтарылады.
Корреляция: 'correlation _ id' жауап метадеректерінде қол жетімді.

13) SLA API және қателер

Жауап SLA: p95 ≤ 300 мс (кэш), ≤ 1. 5 с (суық жол), қол жетімділік ≥ 99. 9%.

Кодтар:
  • '400' - әлсіз сұрау (тым көп 'group _ by', жаман 'step'),
  • '403' - құқықтар/теңгерім жеткіліксіз,
  • '409' - схемалар қақтығысы,
  • '429' - квота/рейт-лимит,
  • '502/504' - сторадждің тозуы (тақырыптарда - downsample/step бойынша ұсынымдар),
  • '206' - ішінара жауап (шардтардың бір бөлігі қол жетімді емес).
  • Диагностика тақырыптары: 'X-Query-Plan', 'X-Query-Cache', 'X-Query-Shards', 'X-RateLimit-Remaining'.

14) Квоталар, рейс-лимиттер және backpressure

Әдепкі: клиентке 10 rps, 50 жауап сериясы, терезе 3 сағат, 'step ≥ 10c'.
Burst-токендер: үлкен экранға дашбордтар үшін, келісілген терезелер.
Backpressure: сервер 'step '/' downsample' қосу туралы кеңес бере отырып, 'Retry-After' қайтара алады.

15) SDK және үздік тәжірибелер

SDK: Typescript/Go/Python. Әдепкі: агрессивті кэш, экспоненциалды backoff, 'If-None-Match'.

Клиенттерге ұсынымдар:
  • сұрауларды '/bulk-query 'арқылы топтаңыз;
  • 'group _ by' үнемді пайдаланыңыз;
  • тарихи шолулар үшін - 'downsample = 1h';
  • 2 с ≤ тайм-ауттарды және 'cancellation' -токендерді қосыңыз.

15. 1 Шағын мысал (TS)

ts const res = await client. query({
metric: ["auth_success_rate"],
from: "-3h", to: "now", step: "1m",
agg: "p95",
filter: { geo: "TR", tenant: "brandA" },
group_by: ["psp"],
downsample: "1m",
exemplars: true,
timeoutMs: 1800
});

16) API метриктерінің бақылануы

SLI самого API: p95_latency, error_rate, cache_hit_ratio, partial_response_rate.
KPI пайдалану: rps, орташа жауап көлемі, құны бойынша top-метриктер.
Алерттар: burn-rate қателер бойынша, '429' өрісі, cache-hit <мақсатты құлау.
Логтар: PII-сыз құрылымдалған; 'tenant', 'metric _ id', 'query _ cost _ class'.

17) FinOps-саясаты

Сұрау кластары: A (realtime дашбордтар), B (операциялық), C (талдау). Әртүрлі квоталар/TTL.
Құны: $/GB оқу, $/сұрау, $/бағандар. «Ауыр» метриктер мен лейблдер бойынша ай сайынғы есеп.
Оңтайландыру: сервер merge, танымал SLO-view үшін алдын ала агрегаттар, клиентке авто кеңестер (suggested 'step/downsample').

18) Интеграция

Статус-бет: дайын SLO-вью оқиды.
Алертинг: ережелер '/slo 'және' instant '-ке сүйенеді.
Инцидент-бот: қысқа пресеттер арқылы графиктердің/кесінділердің жылдам сниппеттері.
Workflow/Release-gates: қызыл SLO кезіндегі релиздер блогы.

19) Енгізу жол картасы (6-10 апта)

Нед. 1-2: метриктер каталогы, whitelists лейблдер, схемалар '/catalog ', прототип '/query' кэшімен және downsample.
Нед. 3-4: '/bulk-query ', '/slo', exemplars, RBAC/ABAC, квоталар/рейт-лимиттер.
Нед. 5-6: гео-шардинг, көпшілікке арналған CDN, FinOps-тақырыптар, дашборд SLI API.
Нед. 7-8: SDK (TS/Go/Py), ұсыныстар/сұраулар линтері, канареялық тесттер.
Нед. 9-10: хаос-оқу-жаттығулар (шард/кэштен бас тарту), құнды оңтайландыру, депрекейт саясаты.

20) Артефактілер

Metric Catalog: id, бірліктер, сипаттамалар, қол жетімді 'agg', жарамды лейблдер.
Access Policy: рөлдер, аумақтар, лимиттер, SoD.
Query Style Guide: дұрыс/дұрыс емес сұраулардың мысалдары.
SLO Map: SLI жария мақсаттарға сәйкестігі.
Cost Report: ең қымбат сұраныстар/белгілер, оңтайландыру жоспары.

21) KPI/KRI API метрик

p95/99 latency, error rate, partial responses.
Cache hit ratio және CPU/IO үнемдеу.
Жауаптың орташа мөлшері және $/сұрау.

'/bulk-query '-ге көшкен дашбордтардың үлесі

Жоғары түбегейлі сұраныстарға байланысты оқыс оқиғалар.

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

Еркін 'group _ by' ондаған таңба бойынша → түбегейлі жарылыс.
Клиентке «бүктелген» бұрмалаулар.
30-90 күндік сұраулар downsample → қымбат және баяу.
Авторландырусыз бір жауапта тенанттарды/өңірлерді араластыру.
Кэшсіз ашық тақталар/CDN.
'vX' және grace-кезеңсіз метриктердің семантикасын өзгерту.

Жиынтығы

API метрикалық операциялар - бұл телеметрия үстіндегі тұрақты, қауіпсіз және үнемді оқу қабаты: стандартты схемалар мен перценттер, кэш және downsampling, қатаң лейблдер мен қолжетімділік, RCA үшін SLO және exemplars, мөлдір SLA және құны. Мұндай қабат сенімді дашбордтар, алертинг, статус-коммуникация және релиздер гейттерін жекешелікке, бюджетке және өнімділікке қауіп төндірмей салуға мүмкіндік береді.

Contact

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

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

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

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

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

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