Logo GH

可觀察性和遙測

(部分: 技術和基礎設施)

簡短摘要

可觀察性是回答「為什麼如此有效?」的能力?"沒有發布新法案。在iGaming中,這是至關重要的:高峰錦標賽,支付高峰,多區域性和負責任的賭博/PII要求。Basis是由通用ID和標準(OpenTelemetry)結合在一起的度量,徽標,跟蹤和SLO合同,防噪和成本控制。

1)可觀察性框架: 它由什麼組成

度量(按時間計數):RED/USE,商業KPI,SLI。它存儲在TSDB中。
Logi (文本/JSON中的事件):審計、錯誤、業務事實、安全。
跟蹤:通過服務查詢路徑、潛伏期、延遲原因。
配置文件:CPU/內存/eBPF流,heap/lock扭曲。
RUM和合成:實際用戶(web/app)+機器人驗證。
遙測目錄:電路,PII策略,保留時間,成本標簽。

2)信號分類學和原理

RED для API: Rate, Errors, Duration.

用於基礎架構的USE: Utilization, Saturation, Errors (CPU、磁盤、網絡、隊列)。
SLI/SLO:可測量的指標(例如,成功查詢/全部,p95 latency),可訪問性目標(例如,"99。9%在30天內"),錯誤預算→過程觸發器。
高密度:標簽應該在切口(區域/tenant/提供商)中有用,但不要爆炸TSDB。

3)標準與端到端相關性

OpenTelemetry (OTel):用於度量、日誌和跟蹤的單個SDK/協議。
標識符為:'trace_id','span_id','correlation_id','player_id'(化名),'payment_route'。
ID流量:輸入網關→所有微服務→ 付款/PSP → 隊列/jobs → logi/度量/span。

示例: 相關標題


traceparent: 00-<trace_id>-<span_id>-01 x-request-id: <correlation_id>

4)度量: 什麼以及如何衡量

命名/標簽

`service="payments-api"`, `env="prod"`, `region="eu-west"`, `tenant`, `provider="pspX"`.

Prometheus示例

prometheus
RED http_requests_total{service="api",route="/deposit",method="POST",status="200"}
http_request_duration_seconds_bucket{service="api",le="0. 25",route="/deposit"} 1234 http_request_errors_total{service="api",route="/deposit"}

USE cpu_utilization_ratio{node="n1"} 0. 71 queue_depth{queue="withdrawals"} 128

Бизнес payments_success_total{psp="X",currency="EUR"} 4521 payment_conversion_ratio{route="pspX"} 0. 948

直方圖和exemplars

存儲潛伏直方圖(native-histograms/ β uckets),並用「trace_id」 綁定exemplar以從「慢速垃圾桶」跳到特定軌道。

5) Logi: 結構化和安全

只有JSON(銷售中沒有「自由形式」)。

Поля: `timestamp`, `severity`, `service`, `trace_id`, `correlation_id`, `player_id_hash`, `event`, `amount`, `currency`, `ip_hash`.

PII掩蔽/哈希,敏感性的單獨索引/保留。
Logs piplines:解析→規範化→富集(geo/ASN) → PII編輯→索引。

JSON事件的示例

json
{
"ts":"2025-11-05T10:42:31Z",
"sev":"ERROR",
"service":"payments-api",
"event":"psp_timeout",
"trace_id":"9c5e...e2",
"route":"pspX",
"duration_ms": 3100,
"attempt":2,
"player_id_hash":"p:1b7f...",
"pii_redacted":true
}

6)跟蹤: 時間丟失的地方

Spains:輸入請求,提供商呼叫(PSP/遊戲提供商),DB/緩存,服務間RPC。

屬性: 'db。system`, `net.peer.name`, `messaging.system`, `psp.route`, `game.provider`.

Sampling:
  • 基於音量的頭(概率),
  • 基於tail(根據條件:錯誤,p95+,VIP段),
  • guaranteed-keep 用於支付/PII關鍵。

7)前部和移動的可觀察性

RUM:TTFB,FCP/LCP/CLS/INP,JS錯誤,網絡和SPA漫遊。
碰撞報告:符號,去混音,法案版本,設備/OS。
合成:入場/存款/投註方案;地理分布式檢查。

8) SLO、SLI和錯誤預算

SLO示例(偽YAML)

yaml service: payments-api sli:
- name: availability expr: sum(rate(http_requests_total{status=~"2..    3.."}[5m]))
/ sum(rate(http_requests_total[5m]))
- name: latency_p95 expr: histogram_quantile(0. 95, rate(http_request_duration_seconds_bucket[5m]))
targets:
availability: "99. 9%/30d"
latency_p95: "<=250ms/30d"
error_budget_policy:
fast_burn: 5% for 1h -> page, freeze deploy slow_burn: 20% for 24h -> incident, improvement plan

根據錯誤預算而不是「每個指標」進行排序。
預算燒毀時的凍結程序:限制發行/金絲雀。

9)無噪音的Alerting

多窗口、多燃燒規則:短/長窗口。
重復數據消除/旋轉:按服務/區域/臨界值在呼叫中。
Runbook URL和上下文autobor(最新的deploi,config更改,依賴圖)。
計劃工作期間的安靜時鐘和抑制。

規則示例(PromQL的想法)

promql alert: PaymentsSLOFastBurn expr: slo_error_rate_5m > 2 slo_budget_rate for: 15m labels: { severity="page", service="payments-api" }
annotations:
summary: "SLO fast burn"
runbook: "https://runbooks/payments/slo"

10) Profailing和eBPF

eBPF/profiler: flame graphs CPU/alloc, I/O潛伏期,network drops, Syscall異常。
在p99瓶頸,「jitter」和罕見的懸停中很有用。

11)業務可觀察性(產品和風險)

金融/貨幣化:存款轉換,TTW(時間到錢包),作者./settle,取消/charjbacks。
遊戲活動:重播/剪輯,現場投註份額,提供商的「粘性」。
Antifrod/Abuse:動作速度,設備/IP匹配,相關性。
RG指標:長時間,「dogon」,牛排生長。
業務指標與Technometrics和發行版(annotation events)相關。

12)安全,PII和合規性

數據區:dataset/Logs標簽(「pii=true」,「region=EU」)。
在索引前掩蔽,別名ID。
用於審計的WORM存儲;角色訪問登錄。
保留時間:技術人員/審計/業務不同。
禁止邏輯中的原始秘密;CI中的掃描檢查。

13)成本管理(FinOps)

基數限制:謹慎使用「user_id」,「session_id」。
聚會/重建:熱(7-14天)、溫暖(30-90天)、冷(檔案)。
Sampling Trass(基於尾巴)和downsampling度量。
按標簽「team」,「service」,「tenant」計費:報告「誰在燃燒觀察力」。

14)工具箱(參考堆棧)

度量:度量的Prometheus/lake,Grafana dashbords。
Logi:Loki/ELK;引導規則,引導/解析。
步道:Tempo/Jaeger/OTel收集器;exemplars links by metrics。
合成:Blackbox出口商,瀏覽器機器人。
警報:Alertmanager/聊天集成,呼叫旋轉。
配置文件:eBPF/連續配置文件。

15)示例: 快速實施框架

(a) API的RED出口商(偽代碼):
python from prometheus_client import Counter, Histogram, start_http_server reqs = Counter('http_requests_total','', ['route','method','status'])
lat = Histogram('http_request_duration_seconds','', ['route'])
def handle(req):
with lat. labels(route=req. route). time():
status = app(req)
reqs. labels(route=req. route,method=req. method,status=str(status)). inc()
(b)將trace_id嵌入邏輯中(middleware想法):
go tid:= ctx. Value("trace_id")
logger = logger. With("trace_id", tid)
logger. Info("deposit-accepted", "amount", amt, "route", route)
(c)度量標準中的實例(exemplars):
prometheus http_request_duration_seconds_bucket{..., le="0. 25"} 1023 # exemplar: trace_id=9c5e...

16)流程和操作

單個度量/標簽字典(命名指南)和行車記錄模板。
圖中的自動機釋放註釋。
事件:卡片、時間線、RCA無罪、行動項目。
訓練警報(「遊戲日」):模擬跌落,PSP延遲,緩存過熱。
Runbooks:分步指令和Alert自動通訊。

17)成熟度清單

1.OTel SDK/收集器 →單一的指標/標誌/跟蹤導出。
2.RED/USE通過關鍵API覆蓋所有+SLI/SLO服務。
3.「Trace_id」相關性⇄ ⇄度量(exemplars,jump-links)的邏輯。
4.Alerts使用多重燃燒和符文參考的錯誤預算。
5.RUM+合成「存款/出價/出價」。
6.Profyling(eBPF)在白名單上出售。
7.PII策略:掩蔽、區域、訪問、保留時間。
8.遙測成本財務報告(「團隊/服務」標簽)。
9.「峰值負載準備」:測試計劃,緩存加熱,警報模式。
10.定期進行RCA並修訂SLO/閾值。

18)反模式

沒有結構的「床單」和「trace_id」的日誌。
每個指標的Alerta → alert-fetIg。
沒有正確罐子的直方圖→「扁平」p95。
標簽的無限基數→價值爆炸。
沒有RUM/合成劑是「全部」,用戶則沒有。
將PII與Technologs混合,永久回避。
遙測與商業KPI的隔離是「潛伏期正在下降,收入也在下降」。

結果

強大的可觀察性是產品,SRE,安全性和支付之間的通用語言。通過將OTel之下的度量標準,徽標和軌跡連接起來,引入具有錯誤預算的SLO,使警報智能且成本可管理,您可以獲得一個以前註意到問題的系統,恢復速度更快,並且可以預測地通過流量峰值和錦標賽負載。

Contact

與我們聯繫

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

Telegram
@Gamble_GC
開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

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

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