行動和管理→事件預測
事件預測
1)為什麼需要它
事件很少「無處爆炸」。在故障發生之前,平臺會發出信號:p99的加速增長,錯誤預算的緩慢倦怠、隊列滯後,特定下遊的撤退增加,以及提供商配額的近似值。對事件的系統預測將反應從「滅火」轉變為「早期幹預」,從而減少了MTTR,改變失敗率和收入損失。
目標是:- 識別預兆模式並自動啟動預防措施。
- 通過向左移動(前事件檢測率)來減少P1/P2比例。
- 將預測嵌入到發布、feilover和capacity搶占過程中。
2)信號圖(lead indicators)
平臺/infra:- p95/p99加速(梯度),「尾巴」延遲,變異增長。
- 隊列/流:「lag」的生長和lag的正導數;HPA最高。
- DB/緩存:'active_conns/max_conns'、'replication_lag'、'evictions'、'cache_hit'。
- 網絡:mTLS/handshake錯誤,5xx/timeout向外生長。
- "outbound_error_rate"/"retry_rate"到特定提供商,"circuit_open","quota_usage> 0。9`.
- 提供商的SLA:計劃窗口,降級。
- 異常負載(活動/比賽),RPS/TPS跳躍,不尋常的區域/頻道混合。
- 隨著p99 →事件準代理的增長,存款/利率轉換下降。
- Burn-rate error預算>閾值(例如,>4 ×在10-15分鐘內)。
- SLO(微降解)作為接近故障的標誌經常發生小幹擾。
3)數據源和展示櫃
在線電視計量學:Prometheus/OTel(度量,徽標,預告片)。
事件事件:tiketa/status/mortema(target的真相)。
計劃/更改事實:版本,ficheflagi,遷移,提供商窗口。
參考:依存圖,配額,所有者。
DWH快照:用於學習/驗證的單元(同步窗口!)。
質量要求:完整性≥99%,TZ小時/分鐘對齊,單個p95/p99定義。
4)預測方法
4.1非參數化/規則(快速啟動)
更改速率的閾值差為:短窗口的「deriv(p99)」,「z-score」。
復合條件:'lag↑+HPA=max+circuit_open(to='PSP-X')'。
SLO-burn-gate: burn-rate> X.
4.2異常檢測
Seasonal baselines(STL/Prophet樣想法),滾動中位數+MAD。
Multivariate:「p99+retry+open_circuit+quota」聯合異常。
更改點檢測:用於趨勢轉變的CUSUM/BOCPD。
4.3個ML模型(超級)
分類「T+K中的事件?」通過特征窗口(例如,在10-30分鐘之前)。
特征:統計,派生,季節性殘余,單熱提供商/地區,發行標誌。
標記:[t, t+K]中的'incident{severity∈[P1,P2]}。
Explainability:SHAP/Permutation importance,用於信任和操作。
4.4 SRE-first混合動力車
→風險評分模型(0-1)→行動政策(ficheflagi/feilover/prescale),HITL受到批評。
5)特征設計(功能工程)
滑動窗口(1/5/15分鐘): mean, p95/p99, std, max, slope.
相對指標:「p99/baseline_1d」,「error_rate_delta」。
隊列仙女:提供者,地區,遊戲/比賽類型,設備通道。
「負載」fichi: RPS, payload size,打開的WS數。
系統:'hpa_desired/max'、'db_conn_ratio'、'redis_evictions> 0'。
事件標誌:「正在發布」,「金絲雀10%」,「提供商窗口」。
6)預測機制和動作
決策鏈:1.每個域每N秒進行一次風險評分(Payments/Bets/Games/KYC)。
2.Alert政策:- 風險≥ 0。8+域所有者頁面→確認信號;
- 0.6–0.8 →警告+準備措施。
- 提前(HPA minReplicas↑),包括緩存,限制重功能;
- 切換到備用提供商/路由;
- 暫停/滾動金絲雀;
- 「狹窄」downstream的後退限制。
4.HITL:個人確認「改變商業行為」級別的措施。
7)融入日常流程
發行版本:金絲雀上的謂詞門(「前/之後」比較和風險評分)。
Feilover:在提供商的風險下自動準備/加熱備用路由。
Capacity:在頭部下降和滯後上升時,「早起」。
警報:單獨的「pre-incident」提要+dashbords中的註釋。
8)可觀察性和達什板
風險概述:跨域和提供商的風險、趨勢、特征貢獻。
Lead Signals: top-N預告片(梯度p99, lag,開放式斷路器)。
Actions&Outcomes:包含的內容,對p95/error的影響,取消的事件。
模型健康:precision/recall/latency, drift特征,自動輔助頻率。
9)預測質量度量
Recall@P1/P2(對重大事件的敏感性)。
Precision(小於「虛假頁面」)。
Lead Time(「事前幾分鐘」的中位數)。
間接贏利率(行動降低風險/成本的案例比例)。
警報致命指數。
漂移得分(統計。特征分布與學習時期的差異)。
默認目標:Recall (P1) ≥ 0。7, Precision ≥ 0.6、Lead Time中位數≥ 8-10分鐘。
10)模型風險管理(ML Ops/Governance)
數據/代碼/工件驗證,可重復性。
冠軍/挑戰者:新模式並行,離線/在線比較。
漂移:PSI/KL發散,自動閾值列表,alert「模型已過時」。
Explainability:對於每個解決方案,存儲特征的重要性和數據引用。
安全/道德:可用性,PII掩蓋,策略自動輔助控制。
11)規則與策略示例
SLO-burn和金絲雀(概念):
policy:
if slo_burn_rate{service="payments"} > 4 for 10m and release_phase in ["canary", "post-deploy_30m"]:
action: pause_release_and_rollback notify: squad-payments
提供商的綜合風險:
risk_psp_x = sigmoid(
1. 2z(outbound_p99_ms) +
1. 5z(outbound_error_rate) +
0. 8z(retry_rate) +
1. 0I(quota_usage>0. 9) +
0. 7I(circuit_open=1)
)
if risk_psp_x > 0. 8 for 5m -> route_to_psp_y + reduce_features
流媒體中的Lag風暴:
if (consumer_lag > 5e6 and deriv(consumer_lag) > 5e4) and hpa_desired == hpa_max:
action: scale_consumers + throttle_producers + enable_batching
12)實施清單(30-60天)
- 事件信號和「真相」目錄(severity,時間線)。
- 關鍵指標(發布前/發布後)的基線和季節性。
- 早期信號規則(梯度p99, lag, burn-rate)。
- Dashbords Risk/Lead Signals/Actions。
- 與HPA提前的ficheflags/canaries整合。
- 一個域上的ML分類器飛行員(例如Payments)。
- HITL政策和自動輔助日誌。
- 模型漂移/健康的質量和差異度量。
13)反模式
「水晶球」:復雜的ML模型,沒有基線和簡單的規則。
沒有可操作性:我們預測「糟糕」,但我們不會自動做任何事情。
忽略季節性/事件日歷(比賽/錦標賽)→虛假警報。
時間區域混合→不正確的指標/事件窗口。
缺乏可解釋性→不信任,命令禁用謂詞。
所有域/地區的單一全球閾值→低精度。
14)域名細節(iGaming)
付款:提供者/配額,「retry_rate」和「circuit_open」的增長→早期的收獲者。
Bets:系數更新延遲,WS粉絲外部的增長→廣播限制。
遊戲/直播:連接激增,工作室限制→ UI/緩存退化。
KYC/AML:webhook延遲,驗證隊列→ HITL和延遲處理。
15)度量標準和Alert的示例(想法)
ALERT PreIncidentRiskHigh
IF risk_score{domain="payments"} > 0. 8 FOR 5m
LABELS {severity="critical", team="payments"}
ALERT LeadSignalP99Slope
IF deriv(api_p99_ms{service="bets"}[5m]) > 15 AND api_p99_ms > baseline_1d 1. 2 FOR 10m
LABELS {severity="warning", team="bets"}
ALERT ProviderEarlyQuota
IF usage_quota_ratio{provider="psp_x"} > 0. 85 FOR 10m
LABELS {severity="info", team="integrations"}
ALERT StreamLagStorm
IF (kafka_consumer_lag{topic="ledger"} > 5e6 AND rate(kafka_consumer_lag[5m]) > 5e4)
AND hpa_desired == hpa_max FOR 10m
LABELS {severity="critical", team="streaming"}
16)預測程序KPI
事件前檢測率(預防/緩解事件的比例)。
事件發生前的Avg Lead Time。
重建為P1/P2平方米/平方米。
MTTR(由於早期上下文而預期↓)。
假警報率/警報率(穩定↓)。
Cost Avoidance(可避免的損失/罰款/覆蓋率評估)。
17)快速啟動(食譜)
1.在p99/lag和SLO-burn上啟用梯度規則;
2.為提供商添加復合條件;
3.將謂詞與ficheflags和prescale連接起來;
4.報告「預測→行動→效果」;
5.一個域中的ML飛行員;在Precision/Recall增長後進行擴展。
18) FAQ
Q: 沒有ML從哪裏開始?
答:季節性基線+梯度+復合規則。這為Recall帶來了顯著的收益,沒有復雜性。
問:如何不淹沒在犯規積極性?
A:組合信號,輸入滯後和確認時間,調整每個域/區域閾值,評估Precision和Alert Fatigue。
Q: 首先自動化哪些活動?
答:安全和可逆性:前端,緩存/降級啟用,加那利群島暫停/滾動,在確認信號時切換提供商。