تله متری و جمع آوری رویداد
1) اهداف و اصول
اهداف:- جریان رویداد تک و قابل پیش بینی برای تجزیه و تحلیل، ضد تقلب، RG، انطباق و ML.
- ردیابی انتها به انتها (کاربر/جلسه/درخواست/ردیابی) و تکرارپذیری.
- PII به حداقل رساندن و رعایت حریم خصوصی.
Принципы: schema-first، privacy-by-design، idempotency-by-default، observability-by-default، cost-aware.
2) طبقه بندی رویدادها
پرداخت: "پرداخت. سپرده، پرداخت. برداشت، پرداخت. پس گرفتن پول.
بازی: "بازی. session_start/stop'، بازی. شرط میبندم، بازی. پرداخت، پاداش. به کار برد.
سفارشی: "وارد شوید"، "مشخصات. به روز رسانی '،' kyc. status_changed'، آ ره. limit_set' است.
اتاق های عمل: 'api. درخواست '،' خطا. استثنا '،' آزادی. اعزام '،' ویژگی. flag_changed' است.
پذیرش: AML. alert_opened'، تحریمها. نمایش داده شد، dsar. درخواست کرد.
هر نوع دارای یک صاحب دامنه، یک طرح و یک SLO تازه است.
3) طرحها و قراردادها
فیلدهای مورد نیاز (حداقل):- 'event _ time' (UTC), 'event _ type', 'schema _ version', 'event _ id' (UUID/ULID),
- 'trace _ id '/' span _ id', 'request _ id', 'user. pseudo_id', 'session _ id',
json
{
"event_id": "01HFY1S93R8X",
"event_time": "2025-11-01T18:45:12. 387Z",
"event_type": "game. bet",
"schema_version": "1. 4. 0",
"user": {"pseudo_id": "p-7a2e", "age_band": "25-34", "country": "EE"},
"session": {"id": "s-2233", "device_id": "d-9af0"},
"game": {"id": "G-BookOfX", "provider": "StudioA", "stake": {"value": 2. 00, "currency": "EUR"}},
"ctx": {"ip": "198. 51. 100. 10", "trace_id": "f4c2...", "request_id": "req-7f91"},
"labels": {"market": "EE", "affiliate": "A-77"}
}
تکامل طرح ها: نسخه های معنایی ؛ سازگار با عقب - اضافه کردن زمینه های nullable ؛ breaking - فقط در نسخه جدید ('/v2 ') با یک دوره ضبط دوگانه.
4) ابزار دقیق: کجا و چگونه
4. 1 مشتری (وب/موبایل/دسکتاپ)
SDK فاصله سنجی بافر محلی، ارسال دسته ای، بازپخش نمایی.
رویدادهای خودکار: بازدید، کلیک، دید بلوک ها، وب سایت های حیاتی (TTFB، LCP، CLS)، خطاهای JS.
شناسه ها: "device _ id" (پایدار، اما خصوصی)، "session _ id" (به روز شده)، "کاربر. pseudo_id' است.
حفاظت در برابر «سر و صدا»: dedup توسط «event _ id»، throttling، نمونه برداری از طرف مشتری.
4. 2 سرور/پشتی
لفاف های Logger/tracer (OpenTelemetry) → انتشار رویداد دامنه.
پرتاب اجباری 'trace _ id' از لبه/دروازه به تمام خدمات پایین دست.
الگوی جعبه خروجی برای انتشار معاملات رویدادهای دامنه.
4. 3 ارائه دهندگان/اشخاص ثالث
اتصالات (PSP/KYC/استودیوها) با عادی سازی مدارهای میزبان ؛ آداپتورهای نسخه.
امضا/بررسی یکپارچگی payload، ورود به سیستم محیط (ممیزی مصرف).
5) تله متری باز (OTel)
ردپاها: هر درخواست یک «trace _ id» دریافت میکند ؛ ما سیاهههای مربوط/رویدادها را از طریق 'trace _ id '/' span _ id' مرتبط می کنیم.
سیاهههای مربوط: استفاده از OTel سیاهههای مربوط/مبدل ؛ خدمات برچسب های محیط زیست. نام، استقرار. در مورد...
معیارها: RPS/تأخیر/نرخ خطا توسط سرویس، معیارهای تجاری (GGR، تبدیل).
گردآورنده: تنها نقطه دریافت/بافر/صادرات به کافکا/HTTP/گرافیک. پشته.
6) شناسه ها و همبستگی
«event _ id» - منحصر به فرد و idempotence.
استفاده کننده pseudo_id' - aliasing پایدار (نقشه برداری به طور جداگانه و محدود).
«session _ id»، «request _ id»، «trace _ id»، «device _ id» برای تجزیه و تحلیل پایان به پایان مورد نیاز است.
سازگاری ID در دروازه API و سطح SDK.
7) نمونه برداری و کنترل حجم
قوانین: در هر رویداد نوع، در هر بازار، پویا (سازگار) توسط بار.
رویدادهای دقیق گرفته شده: پرداخت/انطباق/حوادث - نمونه برداری نشده است.
رویدادهای تحلیلی: 10-50٪ با وزن اصلاحی در موارد نمایش مجاز است.
Downsampling سمت سرور: برای معیارهای فرکانس بالا معتبر است.
8) حفظ حریم خصوصی و انطباق
به حداقل رساندن PII: نشانه گذاری PAN/IBAN/ایمیل ؛ IP → کدهای جغرافیایی/ASN هنگام مصرف.
منطقه بندی: ارسال به نقاط انتهایی منطقه ای (EEA/UK/BR).
DSAR/RTBF: پشتیبانی از پنهان کردن طرح انتخابی ؛ ثبت معاملات قانونی
سیاست های نگهداری: زمان بندی بر اساس نوع (تجزیه و تحلیل کوتاه تر، نظارتی طولانی تر) ؛ حقوقی نگه دارید.
9) حمل و نقل و بافر
→ مشتری لبه: HTTPS (HTTP/2/3)، 'POST/telemetry/batch' (تا رویدادهای 100).
لبه → تایر: کافکا/Redpanda تقسیم شده توسط کاربر. pseudo_id'/'tenant_id' است.
فرمت ها: JSON (مصرف)، Avro/Protobuf (در اتوبوس)، پارکت (در دریاچه).
قابلیت اطمینان: retrai با لرزش، DLQ، جداسازی قرص سمی.
json
{
"sdk": {"name":"igsdk-js","version":"2. 7. 1"},
"sent_at": "2025-11-01T18:45:12. 500Z",
"events": [ {... }, {... } ]
}
10) قابلیت اطمینان و idemotency
«event _ id» تولید شده توسط مشتری + پدربزرگ سرور توسط «(event_id، منبع)».
جعبه خروجی در خدمات، دقیقا یک بار معنایی در موضوعات (حالت کلید + dedupe).
سفارش در کلید: تقسیم بر 'کاربر/جلسه'.
کنترل زمان: NTP/PTP، رانش مجاز (به عنوان مثال، ≤ 200 میلی ثانیه)، 'received _ at' در سرور.
11) کیفیت تله متری (TQ) و SLO
کیفیت: ≥ 99 5٪ از حوادث نوع بحرانی در هر T.
تازگی: تاخیر تحویل p95 به نقره ≤ 15 دقیقه.
صحت: طرح های معتبر ≥ 99. 9٪، نرخ افت <0. 1%.
پوشش ردیابی: درصد درخواست با 'trace _ id' 98٪ ≥.
هزینه/GB: بودجه هدف برای مصرف/ذخیره سازی توسط دامنه.
12) قابلیت مشاهده و داشبورد
حداقل عناصر:- تاخیر مصرف (p50/p95) توسط منبع و منطقه.
- کامل بودن بر اساس نوع رویداد و بازار
- خطاهای اعتبارسنجی طرحهای/بارهای بزرگ.
- نقشه نسخه SDK و درصد مشتریان میراث.
- ارتباط حیاتی وب ↔ تبدیل/شکست.
13) مشتری SDK مورد نیاز
رد پای نور، بافر آفلاین، مقدار اولیه معوق.
تنظیمات: نمونه برداری، حداکثر اندازه دسته، حداکثر سن صف، مد حفظ حریم خصوصی (بدون PII).
حفاظت: امضای بسته/ضد دستکاری، انسداد کلیدی.
بروز رسانی: ویژگی های پرچم برای غیر فعال کردن رویدادهای پر سر و صدا.
14) لایه لبه و حفاظت
محدودیت نرخ، WAF، اعتبار سنجی طرح، فشرده سازی (gzip/br).
سطل نشانه در هر مشتری ؛ ضد پخش ('request _ id', TTL).
حذف IP و UA → عادی سازی/غنی سازی خارج از بار «خام».
15) ادغام با خط لوله داده
برنز: بار اضافه شده خام غیرقابل برگشت (برای پزشکی قانونی).
نقره ای: جداول نرمال با deduplication/غنی سازی.
طلا: موارد نمایش برای BI/AML/RG/محصول.
پیوند بین رویدادها و گزارشها ؛ نسخه های تبدیل
16) تجزیه و تحلیل کیفیت مشتری
نسبت مشتری آرام (بدون رویداد در N ساعت).
ناهنجاری از «طوفان» (تکراری جرم/پشت سر هم).
سهم «SDK های میراث» بر اساس نسخه و پلت فرم.
17) فرآیندها و RACI
R: پلت فرم داده (مصرف/اتوبوس/اعتبار سنج)، تیم برنامه (ابزار SDK).
A: رئیس داده/معماری.
C: انطباق/DPO (PII/احتباس)، SRE (SLO/حوادث).
I: BI/بازاریابی/ریسک/محصول.
18) پیاده سازی نقشه راه
MVP (2-4 هفته):1. طبقه بندی رویداد طرح v1 + JSON برای انواع 6-8.
2. SDK (وب/Android/iOS) с نمونه برداری и دسته ای ؛ لبه '/تله متری/دسته ای '.
3. لایه کافکا + برنز ؛ اعتبار سنج اصلی و dedup.
4. تاخیر/کامل بودن داشبورد، هشدارها برای رها کردن/اعتبار سنج.
مرحله 2 (4-8 هفته):- جمع کننده OTel، همبستگی ردیابی ؛ عادی سازی نقره و قوانین DQ.
- نقاط پایانی منطقه ای (EEA/UK)، روش حفظ حریم خصوصی، روش DSAR/RTBF.
- نقشه نسخه SDK، به روز رسانی خودکار توسط حلقه ها.
- دقیقا یک بار در جریان, اتصالات فروشگاه ویژگی, ضد تقلب خوراک آنلاین.
- قانون به عنوان کد برای طرح ها و اعتبار سنج ها، تجزیه و تحلیل تاثیر.
- بهینه سازی ارزش: نمونه برداری تطبیقی، مرتبه Z/خوشه بندی در دریاچه.
19) چک لیست کیفیت قبل از انتشار
- فیلدهای طرح مورد نیاز و انواع صحیح پر شده است.
- 'trace _ id '/' request _ id '/' session _ id' وجود دارد.
- SDK از دسته ای، سعی مجدد، نمونه برداری پشتیبانی می کند.
- لبه طرح را تأیید می کند و اندازه بار را محدود می کند.
- فیلترهای حریم خصوصی و نشانه گذاری زمینه های حساس فعال می شوند.
- پیکربندی SLO/هشدارها و داشبورد.
- مستندات برای دامنه ها (به عنوان مثال رویداد، مالک، SLA).
20) اشتباهات مکرر و چگونگی اجتناب از آنها
رویدادهای خام بدون طرح: وارد رجیستری و اعتبار CI.
بدون idempotency: نیاز به 'event _ id' و ذخیره پنجره های deduplication.
PII و تجزیه و تحلیل مخلوط: نقشه های جداگانه، زمینه های ماسک.
بدون ردیابی: مسیر 'trace _ id' از طریق دروازه → خدمات → رویدادها.
حجم مدیریت نشده - استفاده از نمونه برداری/trrottling و سهمیه بودجه.
نقطه پایانی جهانی بدون مناطق - استفاده از منطقه سازی و اقامت داده ها.
21) واژه نامه (کوتاه)
OpenTelemetry (OTel) یک استاندارد باز برای trails/metrics/logs است.
Outbox - انتشار معاملات رویدادهای دامنه.
DLQ - صف پیام های «شکسته».
نمونه برداری - انتخاب بخشی از رویدادها برای کاهش حجم.
اقامت داده ها - ذخیره داده ها در حوزه قضایی مورد نظر.
22) خط پایین
تله متری به خوبی طراحی شده است در مورد ترتیبات، نه فقط «ارسال سیاهههای مربوط»: طرح های دقیق، شناسایی توافق، حفظ حریم خصوصی به طور پیش فرض، حمل و نقل قابل اعتماد، مشاهده و صرفه جویی در هزینه. با پیروی از این مقاله، شما یک جریان ثابت از رویدادهای آماده برای تجزیه و تحلیل، انطباق و یادگیری ماشین با SLO های قابل پیش بینی دریافت می کنید.