Омор ва таҳлили API: Ҳодисаҳо, агрегатҳо, нигоҳдорӣ
Мақолаи пурра
1) Чаро таҳлили берунии API
Шарикон/провайдерҳо: Мониторинги мундариҷаи SLA, RTP, ҷалб.
Маркетинг/CRM: маъракаҳои триггер дар асоси ченакҳо (DAU, ҳалқаи амонатӣ).
Амалиётҳо/Молия: дар вақти воқеӣ GGR/NGR, муваффақияти пардохт, ақибмонии webhook.
Маҳсулот: виджетҳои омории дохили-барнома, панелҳои A/B.
Ҳадаф бехатар ва пешгӯишаванда баргардонидани рӯйдодҳо ва агрегатҳо бо семантикаи фаҳмо ва SLA мебошад.
2) Меъморӣ дар ангуштҳо
Истеҳсолкунандагон (PAM/Wallet/RGS/Пардохтҳо/Кафка/CDC)
│
Ingestion API ──Stream (Кафка/Пулсар) ──Lakehouse (Delta/Iceberg)
│ └─OLAP (Ангушт занед/Биг Query/Trino)
└────────────────────────────────────Aggregation/Query API
(кэш, RBAC/RLS, маҳдудиятҳои нархҳо)Ҳодисаҳо: ҳадди аққал як маротиба, бобои 'event _ id/idempotency _ key'.
Агрегатҳо: рӯйпӯшҳои пешакӣ ҳисобшуда (1m/5m/1h/1d) + дар парвоз.
Retenchen: муҳаррики cohort дар болои Gold Marts.
Кеш: CDN/канор + ET 'ag/' Cache-Control', сервер-паҳлӯи TTL.
3) Модели ҳодиса: стандарти ҳадди аққал
3. 1 Майдонҳои умумӣ
json
{
"event_id":"uuid," "event_type":"bet. ҳал," "occurred_at":"2025-10-23T16:21:05Z," "ingested_at":"2025-10-23T16:21:06Z," "tenant_id":"brand-7," "минтақа":" ИА", "player_id":"p_19f3, "/psevdo-ID
"trace_id":"tr_a1b2c3," "schema_version":"1. 3. 0", "сарборӣ": {...}
}Қоидаҳо: Вақтсанҷҳои UTC, 'player _ id' - тахаллус, пул дар воҳидҳои хурд.
3. 2 Намудҳои асосӣ
4) Воридкунии API (барои манбаъҳои тарафи сеюм)
Фиристодани маҷмӯи воқеаҳо
POST/v1/чорабиниҳо: партия
Сарлавҳаҳо: Калиди X-Idempotency: ev_20251023_001
[
{"event _ id ":... "", "event _ type":" Бет. ҷойгир карда шудааст,..."} ", {"event _ id ":... ", "event _ type":" бет. ҳал,"..}
]
§ 202 {"қабулшуда": 2, "такрорӣ": 0, "trace_id":"tr_a1b2"}Кафолатҳо: ҳадди аққал як маротиба; Нусхаҳо бо нуқра аз ҷониби 'event _ id' филтр карда мешаванд.
5) Ҷамъбасти API: силсилаи вақт ва иловаро
5. 1 Вақтсанҷ (ченакҳои вақт)
GET/v1/analytics/timeseries
? metric = ggr//ggr, ngr, dau, deposits_success, rtp
& granularity = 5m//1m/5m/1h/1d
& аз = 2025-10-22T00: 00: 00Z & to = 2025-10-23T00: 00: 00Z
& филтрҳо = минтақа: ИА, brand _ id: brand-7, provider _ id: studio _ x
& group _ by = brand _ id
→ 200 {
"метрик":" ggr", "granularity":" 5m", "series": [
{"ts ":" 2025-10-22T00: 00: 00Z ", "brand _ id":" brand-7 ", "value _ minor": 120030}, {"ts ":" 2025-10-22T00: 05: 00Z ", "brand _ id":" бренди-7 ", "value _ minor": 98020}
] ", next_cursor":null
}5. 2 Иловаро/бомҳо (гурӯҳ-аз)
GET/v1/таҳлил/бурида
? metric = rtp & dim = game _ id & аз = 2025-10-22 & то = 2025-10-23
& лимит = 50 & фармоиш = -валю
→ 200 {"ашёҳо ": [{"game _ id":" g _ 01"," арзиш": 0. 956},...] }5. 3 Funnels
POST/v1/таҳлил/юбка
{
"қадамҳо": [
{"ҳодиса ":" пардохт. ният"}, {"ҳодиса ":" пардохт. ваколатдори"}, {"ҳодиса ":" пардохт. забт карда шудааст"} "ҳодиса ":" ҳамён. қарз, "сабаб": "амонат"}
], "window_sec": 3600 ", филтрҳо ": {"минтақа ": "ИА"," brand _ id":" brand-7 "}
}
→ 200 {
"умумӣ": 12450, "қадамҳо": [
{"ном ":" ният", "ҳисоб ": 12450, "қурб": 1. 0}, {"ном ": "ваколатдор", "ҳисоб ": 11020, "rate": 0. 885}, {"ном ": "гирифташуда", "ҳисоб ": 10110, "rate": 0. 811}, {"ном ": "ҳисоб карда шудааст", "ҳисоб ": 10050, "rate": 0. 807}
]
}5. 4 Маҳдудият ва кэш
Меъёри меъёри як нишона/бренд/минтақа.
'Ҷавобҳои ET' ag '; Дастгирии 'If-None-Match'.
Кэши TTL аз дараҷабандӣ вобаста аст (масалан, 5m → TTL 60-120 s).
6) Нигоҳдорӣ ва гурӯҳҳо: қоидаҳо ва API
6. 1 Таърифҳо (конвенсияҳо)
DAU/WAU/MAU: фаъол, агар 'bet' бошад. ҷойгир 'ё' ҳамён. ҷаласаи қарз (пасандоз) 'или'. оғоз '≥ N дақиқа.
Cohort аз рӯи пасандози аввал (аксар вақт барои LTV) ё сабти ном (барои ҷалб).
Нигоҳ доштани D1/D7/D30: таносуб аз когорт ба равзанаи рӯз +/- таҳаммулпазирӣ аз ҷониби минтақаи вақти бренд баргашт.
Мо боздидҳои такрории беназири 'player _ id' -ро дар тиреза баррасӣ мекунем.
6. 2 гурӯҳҳои API
POST/v1/таҳлил/нигоҳдорӣ
{
"cohort ": "first _ deposit", "start_date":"2025-09-01," "end_date":"2025-09-30," "return_event":"bet. ҷойгир карда шудааст," "рӯзҳо ": [1,7,14,30], "филтрҳо ": {"минтақа ": "ИА"," brand _ id":" brand-7 "}
}
→ 200 {
"cohort ": "first _ амонат", "сатрҳо": [
{"cohort _ date":" 2025-09-01 ", "андоза ": 1820," d1": 0. 36, "d7": 0. 22, "d14": 0. 18, "d30": 0. 12}, {"cohort _ date":" 2025-09-02 ", "андоза ": 1714," d1": 0. 35, "d7": 0. 23, "d14": 0. 19, "d30": 0. 13}
]
}6. 3 LTV/Кумулятивӣ
GET/v1/analytics/ltv? cohort = first _ амонат ва асъор = EUR & horizon = 90d
→ 200 {"cohorts ": [{" сана":" 2025-09-01 ", "ltv _ minor ": [0,150,230,280,...]}]}7) Семантикаи метрикӣ (баҳс кардан нест)
Ҳама - дар UTC бо асъор ва воҳидҳои хурд; бисёрҷанба бо роҳи табдил додани FX собит ба кӯли маълумот ҳал карда мешавад.
8) Версия, филтрҳо ва мутобиқат
Роҳ: '/v1/... '; ченакҳо/майдонҳои нав - ихтиёрӣ.
Фильтры: 'brand _ id, минтақа, provider_id, game_id, усул, асъор, дастгоҳ, гео'.
Пагинатсия: курсор ('next _ cursor').
Breake танҳо '/v2 '+ Радкунӣ/Ғуруби офтоб ва changelog.
9) Амният ва дастрасӣ
OAuth2 эътимодномаи мизоҷон (аломатҳои кӯтоҳмуддат), mTLS барои B2B.
RBAC/ABAC: иҷозатҳои метрикӣ/бурида; Филтри RLS аз ҷониби 'бренд/минтақа'.
PII: API PII-ро намедиҳад, танҳо агар лозим бошад, агрегатҳо/псевдо-ID.
Истиқомат: фиристодани дархостҳо ба минтақа; маълумоти байниминтақавӣ - иҷозат дода намешавад.
Меъёрҳо ва квотаҳо, зидди сӯиистифода; Аудити дастрасии WORM.
10) SLO ва мушоҳида
Меъёрҳои SLO:- 'GET/timeseries gran = 5m' p95 ≤ 500-800 ms, 'GET/slice' p95 ≤ 1-2 s (боло то 50-100 мавқеъ), 'POST/нигоҳдорӣ' (моҳи гуруҳҳо) p95 ≤ 3-5 s, ғалтаки тару тоза: p95 ≤ 2-5 дақиқа аз 'рух дод _ at'.
- Нишондиҳандаҳо: таъхири p50/p95/p99, хатогӣ (4xx/5xx), кэш-хит, дархостҳо/байтҳои скан (OLAP), ақибмонии тару тоза барои ҳар як rollup 'y.
- Гузоришҳо: сохташуда, 'trace _ id', филтрҳои дархостӣ (бе PII), ҳисобкунии скан.
11) Нақд, ҳисобҳои пешакӣ, арзиш
Ҷадвалҳои ғелонда: 1m/5m/1h/1d аз рӯи ченакҳои калидӣ → fast 'timeseries'.
Андешаҳои материализатсияшуда барои бахшҳои вазнин/гурӯҳҳо.
ET bag + синни максималӣ; маъюбӣ дар ҳодисаҳои дер тадриҷан рух медиҳад.
Стратегияи "гарм/хунук": дархостҳои гарм - дар OLAP-анбор; бойгонӣ - дар Лейк.
Маҳдудияти "байтҳои скан" барои як дархост; ба нақшагир ишора мекунад.
12) Воридшуда ва содирот
Виджетҳои дарунсохт тавассути URL/IFrame-и имзошуда бо нишонаҳои RLS.
Содироти CSV/Parquet аз рӯи вазифа (API-и корӣ) бо маҳдудиятҳои андоза ва истинодҳои муваққатӣ.
Огоҳиҳои Webhook дар бораи омодагии боргузорӣ.
13) Рӯйхати санҷишҳо
Меъморӣ
- Схемаи ягонаи чорабиниҳо, семвер, феҳрист; бобои 'event _ id'.
- Назари Rollup ва моддӣ барои парвандаҳои болоӣ.
- RLS/RBAC/ABAC, истиқомат, нишонаҳои кӯтоҳмуддат.
- Кэш (ET 'ag/TTL), маҳдудиятҳои нархҳо, квотаҳо.
Семантика
- Таърифҳои GGR/NGR/RTP/DAU/нигоҳдорӣ ҳуҷҷатгузорӣ шудаанд.
- асъорҳо - воҳидҳои хурд; FX дар вақти ҳодиса собит мешавад.
- Нигоҳ доштани UTC бо назардошти вақти бренди дар экран.
Амалиётҳо
- SLO/тару тоза ва панелҳои ниҳонӣ.
- Аудити WORM оид ба дастрасӣ/содирот.
- Машқҳои DR/xaoc: ақибмонӣ, пур аз дархостҳо, рӯйдодҳои дер.
14) Анти-намунаҳо (парчамҳои сурх)
Ҷадвалҳои "хом" OLTP мустақиман ба API дода мешаванд.
Таърифҳои номувофиқи метрикӣ дар байни фармонҳо.
Не deduplication ва нишонаҳои обӣ → рӯйдодҳои дукарата/гумшуда.
Агрегатҳои бемаҳдуд дар парвоз бидуни кэш/квота → дархостҳои гарон ва суст.
Муттаҳидсозии байниминтақавӣ бидуни сиёсати истиқомат.
Тафсилоти PII/бозингарро ба посухҳои ҷамъиятӣ баргардонед.
Тағироти оромона бидуни '/v2 'ва амортизатсия.
15) Мини-spec (TL; DR)
Ҳодисаҳо: '/v1/ҳодисаҳо: партия '(ҳадди аққал як маротиба, тарҳ аз ҷониби' event _ id ').
Вақтсанҷҳо: '/v1/analytics/timeseries? metric =... & granularity =... '(rollup + kesh).
Иловаро: '/v1/analytics/slice? metric =... & dim =... '.
Ҳалқаҳо: '/v1/analytics/funnel '(тиреза, қадамҳо, филтрҳо).
Нигоҳдорӣ/гурӯҳҳо: '/v1/таҳлил/нигоҳдорӣ '(+ LTV).
Амният: OAuth2 + mTLS, RLS, барои як нишонаи бренд/минтақа, аудити WORM.
SLO: p95 ≤ 0. 5-2 с; тару тоза ≤ 2-5 дақ.
Омор ва таҳлилҳои API на "SELECT FROM, big_table", балки шартномаи ченакҳо мебошанд: рӯйдодҳои устувор, агрегатҳои пешакӣ хондашуда ва кэшшуда, нигоҳдорӣ ва гурӯҳҳои дақиқ муайяншуда, амният (RLS/RBAC) ва истиқомат аз ҷониби SLO фаҳмо мебошанд. Ҳамин тавр, шумо маълумотро зуд, арзон ва пешгӯишаванда - ба шарикон, маҳсулот ва BI - бидуни тафсири баҳснок ва бидуни хатари ихроҷ ё изофабори нигаҳдорӣ медиҳед.
