API和基礎架構監控工具
1)原則: 從目標到工具
SLO-first:根據產品目的(登錄、存款、出價)選擇和定制工具,反之亦然。
開放標準:OpenTelemetry(預告片/度量/徽標),Prometheus展覽格式,Loki JSON徽標。
單一上下文:邏輯和度量標準中的「trace_id」/「span_id」;「dashbord → trace → log」鏡頭。
Cost-aware:基數度量,TTL logs, sampling trains-提前。
2)度量: 收集,存儲,可視化
Сбор: Prometheus / Agent-режим (VictoriaMetrics Agent, Grafana Agent, OpenTelemetry Collector).
存儲(TSDB):Prometheus(單個),Thanos/Cortex/Mimir(水平縮放),VictoriaMetrics(CPU/RAM節省)。
可視化:Grafana作為「玻璃面板」。
如何測量API (RED)和基礎架構(USE):- RED: `rate(requests)`, `error_ratio`, `latency p95/p99` по `route`, `method`, `provider`.
- USE: CPU/Mem, file descriptors, connection pools, queue lag, GC pauses.
- k8s: kube-state-metrics, node-exporter, cAdvisor, ingress/gateway exporters.
- БД/кэши: postgres_exporter, mysql_exporter, redis_exporter, kafka_exporter, rabbitmq_exporter.
- 服務市長:Envoy metrics,istio/Linkerd儀表板。
- PSP/внешние: custom exporters (webhook success, PSP success ratio, callback latency).
promql
存款成功(SLI)
sum(rate(ig_payments_requests_total{route="/payments/deposit",status=~"2.."}[5m]))
/
sum(rate(ig_payments_requests_total{route="/payments/deposit"}[5m]))
p95 latency API histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, route))
DB連接池飽和db_connections_in_use/ db_connections_max3) Logi: 搜索、相關性、不可變性
堆棧:OpenSearch/Elasticsearch+Beats/Vector/Fluent Bit或Grafana Loki(存儲起來更便宜,「日誌流」)。
格式:JSON具有標準字段的ts、level、service、env、trace_id、user_pid、route、status、latency_ms'。
做法:掩蓋PII,用於審計的WORM垃圾箱,TTL/ILM政策,通過「env/region/brand」參與。
4)跟蹤: 毫秒丟失的地方
Стек: OpenTelemetry SDK/Collector → Jaeger/Tempo/Honeycomb/New Relic Traces.
采樣策略:100%錯誤,適應「慢速」查詢,1-5%成功。
Теги iGaming: `provider`, `psp`, `risk_decision`, `bonus_id`, `market`, `ws_table_id`.
Debaga的快速配方:從SLO的紅色圖形→問題路線的跟蹤→ PSP/遊戲提供商 → webhook的日誌上的「厚」span。
5)APM平臺: 何時「一合一」
商業解決方案(Datadog,New Relic,Dynatrace,Grafana Cloud)關閉APM,logi,traces,合成,RUM。
優點:實施速度,開箱即用的相關性。缺點:成本/供應商鎖。
混合動力車:OSS(Prometheus+Grafana+Tempo+Loki)上的內核,通過關鍵流量的商業模塊「背向」合成/異位。
6)合成和RUM: 「外部」和「玩家的眼睛」
Синтетика: Checkly, Grafana Synthetic Monitoring, k6 Cloud, Uptrends, Pingdom, Catchpoint, ThousandEyes.
腳本:登錄→存款(sandbox)→遊戲啟動→檢查網絡遊戲。
地理:EU/LatAm/MEA/APAC,移動網絡,ASN混合。
RUM:Web-SDK(TTFB/LCP/CLS),移動SDK;國家/網絡/設備分割。
7) Kubernetes監測表面
Control plane: etcd, API-server (apiserver_request_total, latency), scheduler/controllermanager.- Data plane: kubelet, CNI, ingress/gateway; `PodDisruptionBudget` и эвикшены.
自動軌道:HPA/VPA/群集自動軌跡指標和事件;warm池。
網絡策略:drop/deny事件,DNS延遲。
8)數據庫、隊列、緩存
Postgres/MySQL:復制時間,deadlocks,bloat,WAL,checkpoint duration,taymout。
Kafka/RabbitMQ: consumer lag, rebalances, queue depth, redeliveries.
Redis: evictions, blocked clients, latency percentiles, replice-lag。
PITR/backaps: backup語句任務+dashboard「恢復前時間」。
9)網絡,CDN,WAF,遊戲提供商和PSP
CDN/Edge:按地區劃分的命中率,TTFB,shield命中,「錯過風暴」。
WAF/機器人經理:共享挑戰/區塊,ASN/國家/地區,登錄/存款上的FPR。
遊戲提供者:桌子/插槽啟動時間,工作室故障/定時。
PSP:方法/國家/BIN的成功率/延遲率,3DS/AVS錯誤代碼,成功和延遲的webhooks。
10)警戒和值班
漫遊:Alertmanager → PagerDuty/Opsgenie/Slack。
規則:有癥狀的(SLO)+因果關系(資源)。
Antishum:分組,抑制鏈狀警報,釋放時保持沈默的窗口。
CD中的SLO門:違規時自動暫停/回滾(Argo Rollouts/Flagger AnalysisRun)。
Alertes的示例(簡化):- `login_success_ratio < 99.9% for 10m`
- `p95 /payments/deposit > 0.4s for 10m`
- `db_connections_saturation > 0.85 for 5m`
- `kafka_consumer_lag > 30s`
- `cdn_hit_ratio drop > 15% in 10m (per region)`
11)真正幫助的達什伯德
存款:漏鬥,p95/p99,PSP/BIN/國家/地區的錯誤,webhook延遲。
實時遊戲/WS:連接,RTT, resend/reconnect,供應商錯誤。
健康API: RED按路線、衛星、頂部慢速端口↔跟蹤。
DR面板: repliclag, WAL shipping, synthetic login/deposit from DR region.
安全:WAF,bot得分,401/403異常簽名webhooks。
12)遙測成本管理
基數度量:不要在標簽中包含「user_id」,「route」和「provider」的限制。
Downsampling and Retention Class (7-14天熱,30-90溫暖,冷檔案)。
Logi:事件飛躍-包括采樣/去世;單獨存儲堆棧。
Traces:通過「昂貴」路徑(付款/結算)進行動態采樣。
13)監控中的安全和隱私
從代理到收集器的mTLS;at rest加密。
別名「user_pid」,禁止在日誌中使用電子郵件/電話/文檔。
RBAC/MFA,用於審計的WORM;DPA與第三方監控提供商。
14)與CI/CD和自動售貨機集成
將SLI暴露為CD分析的原始指標。
在度量/logs/trace中發布標簽(「版本」,「rollout_step」)。
自動金絲雀門:deploy只會在綠色SLO下繼續。
15)快速起步(參考)
收集/運輸:OTEL Collector+Prometheus/VM Agent+Fluent Bit。
存儲:VictoriaMetrics/Thanos(度量),Loki/OpenSearch(徽標),Tempo/Jaeger(路徑)。
可視化:Grafana+現成的行車記錄儀k8s/Envoy/Postgres。
合成和RUM:Checkly/k6+Grafana RUM(或商業類似物)。
Alerting:Alertmanager → PagerDuty/Slack;鏈接中的runbooks。
16)實施支票(prod-ready)
- SLO/SLI定義為登錄/存款/利率/提取。
- RED/USE+Business SLI度量標準;單個標簽本體。
- Logi JSON帶有「trace_id」,PII掩碼,WORM用於審核。
[] OpenTelemetry end-to-end;100%誤差采樣。- 來自主要地區+RUM的合成產品。
- Dashbords 「flow存款」,「WS」,「API健康」,「DR」。
- Alerting:SLO癥狀+資源原因;對立面。
- SLO門連接到CD;自動送貨。
- 價值計劃:重建/采樣/基數。
- DPA/安全性:mTLS,RBAC,博客隱私。
二.總結
強大的監控不是一組「優美的圖形」,而是連接系統:RED/USE度量標準,帶有「trace_id」,OpenTelemetry跟蹤,合成和RUM的邏輯,以及嵌入在CI/CD中的行車記錄儀,警報和SLO門。圍繞開放標準收集堆棧,控制遙測成本並標準化標簽本體-然後API和基礎架構的任何問題都將提前顯示,並在玩家註意到之前進行修補。
