GH GambleHub

遙測和事件收集

1)任命和原則

目標是:
  • 分析、防凍、RG、合規和ML的單一和可預測的事件流。
  • 端到端跟蹤(user/session/request/trace)和可重現性。
  • 最小化PII並滿足隱私要求。

Принципы: schema-first, privacy-by-design, idempotency-by-default, observability-by-default, cost-aware.

2)事件分類

付款: '付款。deposit`, `payment.withdrawal`, `payment.chargeback`.

遊戲: "遊戲。session_start/stop`, `game.bet`, `game.payout`, `bonus.applied`.

自定義: 'auth。login`, `profile.update`, `kyc.status_changed`, `rg.limit_set`.

操作: 'api.request`, `error.exception`, `release.deploy`, `feature.flag_changed`.

合規性: 'aml。alert_opened`, `sanctions.screened`, `dsar.requested`.

每種類型都有所有者(域所有者),方案和SLO新鮮度。

3)計劃和合同

必填字段(最小值):
  • `event_time` (UTC), `event_type`, `schema_version`, `event_id` (UUID/ULID),
  • `trace_id`/`span_id`, `request_id`, `user.pseudo_id`, `session_id`,
`source` (clientserverprovider), `market` (jurisdiction), `labels.`.
示例(JSON):
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"}
}

方案的演變:語義版本;backward-compatible-我們添加不可分割的字段;破解-僅在具有雙重錄制時間段的新版本('/v2')中。

4)工具: 在哪裏和如何

4.1個客戶(Web/Mobile/Desktop)

帶有本地緩沖區的遙測SDK,擊球發送,指數回程。
自動事件:訪問,點擊,塊可見性,網絡活性(TTFB, LCP, CLS), JS錯誤。

ID: 「device_id」(穩定但私有),「session_id」(更新),「user」。pseudo_id`.

「噪音」防護:「event_id」,trottling,client-side采樣。

4.2服務器/後端

Ger/Tracer包裝紙(OpenTelemetry)→域事件的emit。
強制從邊緣/網關到所有下遊服務的「trace_id」。
域事件事務發布的Outbox模式。

4.3供應商/第三方

連接器(PSP/KYC/工作室)與主機電路正常化;轉化適配器。
Payload簽名/完整性檢查,周邊日誌(ingest audit)。

5) OpenTelemetry (OTel)

Traces:每個請求都收到「trace_id」;我們通過「trace_id」/「span_id」鏈接邏輯/事件。

Logs: 使用OTel Logs/轉換器;環境標簽'服務。name`, `deployment.env`.

度量標準:按服務劃分的RPS/latency/error-rate、業務指標(GGR,轉換)。
Collector:單一接收點/緩沖區/導出到Kafka/HTTP/grafic。堆棧。

6) ID和相關性

「event_id」是唯一性和冪等性。
`user.pseudo_id'是穩定的別名(單獨和受限制)。
「session_id」、「request_id」、「trace_id」、「device_id」是端到端分析的必備條件。
API網關和SDK級別的ID一致性。

7)采樣和量控制

規則:按活動類型,按市場,動態(自適應)負載。
準確拍攝的事件:付款/合規/事件-不采樣。
分析事件:10-50%允許在櫥窗中調整權重。
服務器側下載:允許高頻度度量。

8)隱私和合規性

最小化PII:令牌PAN/IBAN/電子郵件;在ingest中→ IP 地理代碼/ASN。
區域化:發送到區域內部(EEA/UK/BR)。
DSAR/RTBF:支持選擇性投影隱藏;法律交易日誌。

保留策略: 按類型劃分的時間表(分析更短,監管時間更長);Legal Hold.

9)運輸和緩存

客戶端→ Edge:HTTPS(HTTP/2/3),「POST/telemetry/batch」(最多100個事件)。

Edge → Sheena: Kafka/Redpanda通過「用戶」參與。pseudo_id`/`tenant_id`.

格式為:JSON(ingest),Avro/Protobuf(總線),Parquet(湖)。
可靠性:帶有jitter、DLQ、poison-pill絕緣的轉發。

Batch規範(簡化):
json
{
"sdk": {"name":"igsdk-js","version":"2. 7. 1"},
"sent_at": "2025-11-01T18:45:12. 500Z",
"events": [ {... }, {... } ]
}

10)可靠性和相容性

客戶端生成的「event_id」+服務器祖先通過「(event_id,源)」。
服務上的Outbox,線程中的Exactly-Once語義(鍵入狀態+dedupe)。
按鍵內的順序:通過「用戶/會話」進行分期。
時間控制:NTP/PTP,有效漂移(例如≤ 200 ms),服務器上的「received_at」。

11)遙測(TQ)和SLO質量

Completeness: ≥ 99.T後關鍵類型事件的 5%。
Freshness: p95延遲交付至Silver ≤ 15分鐘。

Correctness: 有效方案≥ 99。9%, drop-rate < 0.1%.

Trace coverage:使用「trace_id」的查詢比例≥ 98%。
Cost/GB:按域劃分的ingest/存儲目標預算。

12)可觀察性和dashbords

最小小部件:
  • 按來源和地區分列的Lag ingest (p50/p95)。
  • 按事件類型和市場劃分的完整性。
  • 電路驗證/超額付費錯誤。
  • SDK版本映射和舊客戶端百分比。
  • Web-vitals相關性↔轉換/故障。

13)客戶端SDK: 要求

輕量級footprint,離線緩沖區,延遲初始化。

設置: 采樣,max batch size, max queue age, privacy mods (no-PII).

保護:封裝簽名/反標記,密鑰混淆。
更新:用於禁用嘈雜事件的功能標誌。

14)邊緣層和保護

利率限制,WAF,計劃驗證,壓縮(gzip/br)。
客戶上的Token bucket;反重播(「request_id」,TTL)。
刪除IP和UA →在「原始」付費之外進行標準化/富集。

15)與數據輸送機集成

青銅:不可逆的添加原料payload(用於偽裝)。
Silver:具有重復數據消除/豐富性的標準化表。
黃金:BI/AML/RG/產品展示。
事件和報告之間的Lynedge;轉換版本。

16)客戶質量分析

「安靜的客戶」比率(N小時內沒有事件)。
「風暴」(mass duplicate/burst)異常。
按版本和平臺劃分的「傳統SDK」份額。

17)流程和RACI

R:數據平臺(ingest/總線/驗證程序),App Teams(SDK工具)。

A: Head of Data/Architecture.

C:Compliance/DPO(PII/retention),SRE(SLO/事件)。
I: BI/營銷/風險/產品。

18)實施路線圖

MVP(2-4周):

1.6-8類型的v1+JSON模式事件分類法。

2.SDK (Web/Android/iOS) с batch и sampling;Edge `/telemetry/batch`.

3.Kafka+青銅層;基本的驗證者和去世者。

4.Dashbord ingest lag/completeness, alerta on drop/驗證器。

第二階段(4-8周):
  • OTel收藏,跟蹤相關性;銀規範化和DQ規則。
  • 區域終端(EEA/UK),privacy時尚,DSAR/RTBF程序。
  • SDK版本卡,環輪自動滾動更新。
第三階段(8至12周):
  • Exactly-Once在線程中,Feature Store連接,反屬在線模擬。
  • 電路和驗證器的Rule-as-Code,更改模擬(影響分析)。
  • 成本優化:自適應采樣,Z-order/聚類到湖中。

19)發布前質量檢查表

  • 已填充必填圖域和正確類型。
  • 存在'trace_id'/'request_id'/'session_id'。
  • SDK支持batch、retry、sampling。
  • Edge驗證了電路並限制了付費負載的大小。
  • 包括敏感字段的隱私過濾器和標記化。
  • 設置了SLO/Alerts和dashbords。
  • 域文檔(事件示例,所有者,SLA)。

20)頻繁的錯誤以及如何避免錯誤

原始事件無圖:輸入registry和CI驗證。
無等效性:要求「event_id」並存儲重復數據消除窗口。
PII和分析師的混合:分開mappings,掩蓋字段。
缺少tracing:通過gateway鋪設「trace_id」 →服務→事件。
非管理卷:應用采樣/trottling和預算配額。
全球無區域端點:使用區域化和數據駐留。

21)詞匯表(簡短)

OpenTelemetry(OTel)是預告片/度量/邏輯的開放標準。
Outbox是域事件的事務性發布。
DLQ是「bit」消息的隊列。
采樣-選擇事件的一部分以減少體積。
Data Residency-將數據存儲在正確的司法管轄區。

22)結果

設計精良的遙測是安排,而不僅僅是「發送日誌」:嚴格的方案,協調的標識符,默認的隱私,可靠的運輸,可觀察性和經濟成本。根據這篇文章,您將獲得穩定的事件流,準備使用可預測的SLO進行分析,合並和機器學習。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。