Metrik arxitektura
Metrik arxitektura
Metrika arxitekturasi - bu butun tashkilot bo’ylab bir ma’noli ta’riflarni, takrorlanadigan hisob-kitoblarni, shaffof foydalanishni va ko’rsatkichlardan ishonchli foydalanishni ta’minlaydigan qoidalar, artefaktlar va servislar tizimidir. Maqsad - «MAU», «Retention D30» yoki «ARPPU» barcha dashbordlar, eksperimentlar va hisobotlarda bir xil hisoblanishidir.
1) Qonunning
1. Formulalar va ma’lumotnomalar uchun yagona haqiqat manbai.
2. Semantikani amalga oshirishdan ajratish: biznes ta’rifi har bir SQL/noutbukda emas, balki semantik qatlamda yashaydi.
3. Tarixning boshqariladigan migratsiyasi bilan metrik, sxema va formulalarni (v1 → v2) versiya qilish.
4. Reproduktivlik va testlanuvchanlik: hisob-kitoblar determinizatsiya qilingan, testlar bilan qoplangan.
5. Kuzatilganlik: tazelik, to’liqlik, konsistentlik va dreyf - SLO va alertlar bilan.
6. Xavfsizlik va maxfiylik: PII, RLS/CLS, auditni minimallashtirish.
7. Operatsiya kod sifatida: aniqliklar, transformatsiyalar, siyosatlar - C/CD bilan repozitoriyada.
2) Arxitektura qatlamlari
Boshlang’ich ma’lumotlar: voqealar/tranzaksiyalar, ma’lumotnomalar, modellar/infra loglari.
Integratsiya va tozalash: CDC/inkremental yuklash, dedup, vaqt zonalarini birxillashtirish.
Ma’lumotlar modeli (DWH): yulduz/qor, sekin o’zgaruvchan o’lchovlar (SCD), surrogat kalitlar.
Metriklarning semantik qatlami: yagona taʼriflar, agregatsiyalar, filtrlar, time grain, rollap-mantiq.
Hisob-kitob qatlami: batch/mikrobatch/oqim; derazalar, suv belgilari, kalitlar bo’yicha dedup.
Katalog va lug’at: «metrika pasporti», lineage, egalari, huquqlari.
Foydalanish va iste’mol qilish: BI/dashbordlar, API metriklar, tushirishlar, eksperimentlar/AV.
3) Ma’lumotlar kontraktlari va metriklar
Manba kontrakti (voqealar/jadvallar)
Sxema: maydonlar, turlar, nullabellik, birlamchi kalit.
SLA: yangilik (masalan, «10 daqiqadan ≤»), chastota, eng ko’p kechiktirilgan kelish.
Sifati: kalitning oʻziga xosligi, ruxsat etilgan qiymatlar domenlari, timezone, idempotentlik.
Oʻzgarishlar: sxema evolyutsiyasi siyosati (backward/forward), deprecation-plan.
Metrika kontrakti
Nomi/kodi: ’RET _ D30 _ v2 ’
Domeyn/egasi: Product Analytics
Taʼrifi (inson tili)
Formula: SQL/psevdokod + kirish vitrinalari/semantik obyektlar
Granulyarlik/vaqtinchalik mantiq: day/week; point-in-time qoidalari, timezone
Andoza segmentlar/filterlar
Birliklar va valyutalar (konversiya kursi/sanasi)
SLO: yangilik ≤ X, aniqlik ≥ Y, foydalanish imkoniyati ≥ Z
Versiya/o’zgarishlar tarixi/kirish sanasi
Guardrails: ruxsat etilgan diapazonlar, p1/p99 vinzorlash qoidalari
4) Metriklarning semantik qatlami
Qatlamning vazifasi - agregatsiya qoidalari va ta’riflarini markazlashtirilgan holda saqlash:- Elementlar: oʻlchovlar (date, country, platform), faktlar (events, revenue), metriklar (ARPU, Retention D30), hisoblanadigan maydonlar, taqvim (qul/dam olish kunlari, bayramlar).
- Vaqt harakati: taqvim jadvallari, laglar, kogortlar, «sirpanuvchi» derazalar (7/30/90).
- Rollap va konsistentlik: kunlar bo’yicha summa = oy, bunda ikki marta hisobga olishni istisno qilish (distinct users).
- Mix-adjustment: halol YoY uchun doimiy kanallar/mamlakatlar aralashmasi ostida normallashtirish.
- Multivalyuta/taymzonlar: tranzaksiya sanasida bazaviy valyutaga keltirish; lokal va «kanonik» UTC-kesmalar.
5) Hisob-kitob: batch, mikrobatch, oqim
Batch: tungi/soatbay joblar, to’liq/inkremental qayta hisoblashlar, idempotentlikni nazorat qilish.
Mikrobatch: tezkor dashbordlar uchun derazalar 1-15 daqiqa.
Oqim: shina orqali voqealar; derazalar (tumbling/sliding/session), suv belgilari (late data), exactly-once semantika (kalit bo’yicha dedup + offset store).
- operativ KPI uchun’HOP 5m, WINDOW 1h’;
- kunduzgi metriklar uchun’TUMBLE 1d’;
- Sessiyalar uchun’SESSION 30m’.
6) Sifat va tekshirilishi
Ma’lumotlar testlari: sxematik, domen (diapazonlar), referensial aloqalar.
Metrik testlar: invariantlar (DAU ≤ MAU), bo’sh bo’lmagan segmentlar, monotonlikni kutish (kumulyativ).
Solishtirish (reconciliation): semantik qatlam va referens-hisobotlar/buxgalteriya o’rtasida.
Data health: yangilik, completeness, dublikatlar, NULL ulushi, g’ayritabiiy poygalar.
Dreyf metrikasi: PSI/KL/JS, ayniqsa ML-metrik uchun.
7) Versiyalash va migratsiya
Formulaning versiyasi:’METRIC _ NAME _ vN’. Versiyani oʻzgartirmasdan taʼrifni «jimgina» oʻzgartirish taqiqlangan.
Migratsiya strategiyasi:- Side-by-side: v1 va v2 parallel hisoblanadi; foydalanuvchilarni solishtirish va o’qitish o’tkaziladi.
- Cut-over: past yuklamali oynada iste’molchilarni v2 ga o’tkazish; arxiv v1.
- Tarixni qayta hisoblash: tarixiy ma’lumotlar bo’yicha backfill; farq protokoli (diff-hisobot).
- Kommunikatsiyalar: changelog, kirish sanasi, kimga ta’sir qiladi, yo’riqnomalar.
8) Metriklar uchun ma’lumotlar modeli
Faktlar: don (event_id, transaction_id, user_day), hodisa vaqti, yig’indisi/miqdori.
O’lchovlar: foydalanuvchi, qurilma, geografiya, kanal, mahsulot, taqvim; Tarixiylik uchun SCD turi.
Kalitlar: surrogat ID, barqaror biznes kalitlari, muvofiqlik jadvallari (mapping).
Anti-dubli: identifikatsiya qoidalari (user merge), sessiyalarni yopishtirish oynalari.
9) Birliklar, valyutalar, mavsumiylik
Birliklar/format: aniq o’lchov, yaxlitlash, shkalalar (log/chiziqli).
Multivalyuta: operatsiya sanasidagi kurs bo’yicha konvertatsiya; «xom» va normallashtirilgan summani saqlash.
Mavsumiylik: YoY va mavsumiy indekslar; alohida «bayram» effektlari.
10) Xavfsizlik va foydalanish
Row-Level Security (RLS): mamlakat/brend/sherik kesimida metriklardan foydalanish.
Column-Level Security (CLS): PII/moliyaviy sohalarni yashirish.
Audit: kim metrikani so’ragan, qanday filtrlar, qanday ma’lumotlarni eksport qilgan.
API differensiatsiyasi: «rollar bo’yicha agregatlar» vs «batafsil tushirishlar».
11) Kuzatuv va SLO
SLO yangilik: masalan, «tezkor KPI - lag ≤ 15 min, kundalik - 06:00 gacha mahalliy vaqt».
Foydalanish imkoniyati: ≥ 99. 9% API/semantik qatlam uchun.
Alertlar: SLOning kechikishi, metriklarning sakrashi, NULL/dublikatlarning o’sishi, farqlar v1 vs v2> X%.
Runbooks: degradatsiyada nima qilish kerak - RCA, fallback qadamlari (masalan, oxirgi valid «snepshot-metrika» ga o’tish).
12) Eksperimentlar va metriklar
Guardrail metrikalari: latentlik, ishlamay qolish, skoring uchun FPR/FNR.
A/B uchun yagona ta’riflar: konversiyalar, ushlab qolish, NSM - bir xil semantik qatlam orqali.
Minimal farqlanuvchi effekt (MDE), power-analiz: parametrlarni metrika kartasida saqlash.
Kauzal atributsiya: mix-adjustment va nazorat guruhlari siyosati.
13) API metrik va iste’mol
Запросы: `GET /metrics/{name}?from=2025-09-01&to=2025-10-01&dims=country,platform&filters=channel:paid`.
Siyosat: limitlar, kesh, paginatsiya, idempotent «eksportlar».
Versiyalar:’X-Metric-Version: v2’sarlavhasi, deprecation haqida ogohlantirishlar.
14) Shablonlar va artefaktlar
Metrika pasporti (misol)
Kod/versiya: ’ARPPU _ v3 ’
Aniqlanishi: to’lovchi foydalanuvchiga o’rtacha tushum
Формула: `sum(revenue_net) / count_distinct(user_id where paying_flag=1)`
Granulyarligi: kun; rollup: hafta/oy = oluvchining summasi/bo’limning summasi
Manba: ’fact _ payments _ v2’,’dim _ users _ scd ’
Birliklar: valyuta’base _ ccy’; sanadagi kurs bo’yicha konvertatsiya
Andoza filtrlar: aktiv bozorlar, sinov tranzaksiyalarini bekor qilish
SLO: yangilik ≤ 1 soat; API mavjudligi ≥ 99. 9%
Guardrails: ARPPU ∈ [0; 10 000]; vinzorizatsiya p1/p99
Egalari: Monetization Analytics; taftish sanasi: 2025-10-01
Metrika relizining check-list
- Ta’rif va formula kelishilgan, testlar bilan qoplangan
- Semantik obyekt yaratilgan; lineage hujjatlashtirilgan
- Backfill va referens bilan taqqoslash tugadi
- SLO/alertlar sozlangan; runbook tayyor
- Huquqlar va RLS sozlangan; PII yashirin
- Dashbordlarda/tajribalarda eski versiyalar almashtirildi
- Changelog/aloqa jo’natildi
SQL-psevdokod point-in-time (Retention D30 misoli)
sql
WITH cohort AS (
SELECT user_id, MIN(event_date) AS signup_date
FROM fact_events
WHERE event_type = 'signup'
GROUP BY 1
),
activity AS (
SELECT user_id, event_date
FROM fact_events
WHERE event_type = 'app_open'
),
ret AS (
SELECT c. signup_date,
COUNT(DISTINCT CASE WHEN a. event_date = c. signup_date + INTERVAL '30 day' THEN a. user_id END) AS returned,
COUNT(DISTINCT c. user_id) AS cohort_size
FROM cohort c
LEFT JOIN activity a
ON a. user_id = c. user_id
AND a. event_date BETWEEN c. signup_date AND c. signup_date + INTERVAL '30 day'
GROUP BY 1
)
SELECT signup_date, returned / cohort_size AS retention_d30
FROM ret;
15) Tez - tez xatolar va ulardan qanday qochish mumkin
Formulalarni jim tahrirlash: har doim versiya va changelog orqali.
Har bir noutbukning metrikasi har xil: semantik/API qatlamiga majburlang.
Kelishilmagan taymzonlar/valyutalar: markazlashtirilgan taqvim va FX-jadval.
Foydalanuvchilarning ikki tomonlama hisobi: rollap qoidalari va noyob kalitlar.
Shaffof bo’lmagan yangilanish vaqtini aniq ko’rsating.
Bitta muhandisga bog’liqlik: hamma narsa kod kabi, revyu va onkoll bilan.
Jami
Metrik arxitektura - lugʻat + semantik qatlam + ishonchli hisob-kitob + governans va SLO. Ta’riflangan tamoyillarga (kontraktlar, testlar, versiyalar, kuzatuv, xavfsizlik) amal qilib, siz metrikani «raqamlar to’g’risidagi nizolardan» mahsulot va biznesni boshqarishning barqaror mexanizmiga aylantirasiz.