行动和管理→事件预测
事件预测
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: 首先自动化哪些活动?
答:安全和可逆性:前端,缓存/降级启用,加那利群岛暂停/滚动,在确认信号时切换提供商。