GH GambleHub

SLO、SLA和可靠性监控

(部分: 技术和基础设施)

简短摘要

SLO是内部质量目标,SLA是对客户的外部义务,SLI是我们如何衡量质量的。在iGaming中,关键SLI:API和支付可用性,p95/p99关键路由潜伏期,时间到钱包(TTW),付款转换,游戏启动以及队列度量。可靠性管理围绕错误预算,多燃烧的警报,清晰的发布门以及带有注释的视觉仪表板进行构建。

1)术语和区别

SLI(服务级别指示器)-可测量的指示器(例如,每个时间窗口成功查询的比例)。
SLO(服务级别目标)是SLI的目标值(如上所述,"可用性99。在30天内达到9%")。
SLA(服务级别协议)-合同/赔偿义务;基于真实的SLO,但包括法律保留和例外窗口(计划维护,不可抗力)。

规则:首先在内部稳定SLI/SLO,然后才将SLA固定在外部。

2)适用于iGaming的SLI框架

TexSLO

可用性:成功的2xx/3xx/所有请求。
Latency:p95/p99关于关键路由器('/deposit','/bet','/game/init')。
错误:5 x/taymauts的份额。
Aturation/Queues:延迟付款/交易队列。

Business SLI

Payment conversion: `success/attempt`.

TTW p95:从撤回请求到注册的时间。
Game start success:游戏会话,提供程序初始化。
KYC/AML流成功:成功完成路径。

3)错误预算: 如何计算

Error Budget = 1 − SLO.

示例:SLO可用99。9%/30 d ⇒错误预算=0。1%的时间≈ 30天窗口中的43分钟12秒。

对于SLI份额:

success_ratio = success_requests / all_requests error_ratio  = 1 - success_ratio

SLO在滑动窗口(30/7/1天)上计数,在行车记录仪上可见。

使用策略:
  • 快速的"烧毁"预算→ freeze版本,金丝雀停止,正在努力稳定。
  • 预算储备→允许更频繁的更改(可控制)。

4)关键线程的SLO示例

Payments API:

Availability ≥ 99.9%/30d

Latency p95 `/deposit` ≤ 250 ms / 30д

Payment conversion ≥ baseline − 0.3%/24小时

TTW p95(撤出)≤ 3分钟/24小时

游戏API/游戏提供商:
  • Game init success ≥ 99.5% / 7д p95 game init ≤ 600 ms / 7д
Backoffice/报告:
  • Job success ≥ 99%/7d, lag <5 min(峰值窗口分开)。

5)测量: 公式和PromQL(想法)

查询成功:
promql sum(rate(http_requests_total{status=~"2..    3..",service="payments-api"}[5m]))
/
sum(rate(http_requests_total{service="payments-api"}[5m]))
p95潜伏期:
promql histogram_quantile(0. 95,
sum by (le) (rate(http_request_duration_seconds_bucket{service="payments-api",route="/deposit"}[5m])))
TTW p95(事件直方图):
promql histogram_quantile(0. 95,
sum by (le) (rate(ttw_seconds_bucket{flow="withdrawal"}[15m])))
付款转换:
promql sum(rate(payments_success_total[15m])) / sum(rate(payments_attempt_total[15m]))

6)Burn-rate alerta(多窗口)

想法:比较当前预算支出的速度与允许的速度。

SLO 99的示例。9%:

快速燃烧:1小时14 ×预算→ 5-15分钟后佩奇。
慢烧伤:24小时预算6 × →滴答作响,分析原因。

伪规则:
yaml recording rule: job:http:success_ratio — заранее alert: SLOFastBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 14 for: 10m labels: { severity: "page" }

alert: SLOSlowBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 6 for: 1h labels: { severity: "ticket" }

7)Dashbords "SLO卡"和操作员

上层(地图):
  • 服务卡:可用性,p95,Error-rate,Burn-rate,Error Budget的其余部分。
  • 过滤器:"env","region","tenant","version"。
  • 发行注释:Git SHA,类型(金丝雀/蓝绿色),开关时间。

Drill-down:

稳定与金丝雀的比较。
PSP/游戏提供商削减。
移至exemplars (trace_id)和相关登录。
Queue lag和saturation(USE度量)。

8) SLO流程: 网关、冻结、升级

CD中的Gates:仅在执行SLO代理时(可用性,p95,conv)才允许金丝雀促销。
Freeze:使用快速燃烧或零预算余额-停止发行直到恢复。
升级:SEV矩阵(SEV1付款/存款,SEV2游戏,SEV3后缀)。
RCA:无收费分析,测试/限制/ficheflags更新。

9) Data/ML-SLO (适用于推荐者/LLM)

Latency: p95模型响应≤ 300 ms(或tokens/s ≥ N)。
Quality proxy:有效反应/低毒性,分享帮助剂的比例。
Freshness: fich/Data的年龄≤ X小时。
1k事件成本:预算支出。
SLO门集成到模型发行版中(A/B/金丝雀卷轴)。

10)基于SLO的SLA构造

选择保守的SLO作为SLA的基础。
定义例外(计划工作、外部从属提供商、事件法规)。
输入违规级别的补偿(信用/折扣)、报告和验证机制。

11)频繁的错误和反模式

没有SLO,只有"uptime 100%"-不切实际,令人沮丧并隐藏风险。
根据"每个度量标准"而不是burn-rate,Alerta是Alert-fatig和忽略。
SLO的度量/逻辑中PII的混合是合规风险。
基数爆炸:"user_id/session_id"作为标签。
没有发布注释-很难将降级与更改相关联。
不透明的错误预算-团队不明白什么时候"可以"冒险。
SLO与业务无关-技术指标为"绿色",收入为"红色"。

12)实施支票

1.批准基本SLI(可用性,p95/p99, Error-rate, TTW, Conversion)。
2.在30/7/1天的窗口中设置SLO并计入Error Budget。
3.添加记录规则和burn-rate alerta(快速/慢)。
4.构建带有发行注释和canary/stable比较的SLO卡。
5.在CD中打开门:没有SLO-ok-没有促销。
6.输入freeze过程和SEV升级矩阵。
7.将SLO与业务指标(conv、TTW)和支付路线连接起来。
8.对于Data/ML,定义latency/quality/freshness-SLO。
9.定期进行RCA并修订SLO/阈值(季度)。
10.仅在SLO稳定后才记录SLA。

13)"现成"目标的示例(作为开始)

API通用:可用性99.9%/30d;p95 ≤ 250 ms/30d;Error-rate ≤ 0.3%/30d。
Payments: Conversion ≥ baseline − 0.3%/24小时;TTW p 95 ≤ 3分钟/24小时。
Games init: Success ≥ 99.5%/7d;p95 ≤ 600 ms/7d。
Backoffice jobs: Success ≥ 99%/7д;l ≤ ag 5分钟/7 d。
LLM/Reco: tokens/s ≥ N, toxicity viol. ≤ 0.5%/7d, freshness ≤ 6小时。

结果

SLO/SLA方法将可靠性从"比昨天更好"转变为可衡量的学科:透明的SLI,可理解的错误预算,燃烧速度的差异,可理解的行车记录仪以及内置在质量门版本中的。这样的回路使iGaming平台具有可预测的p95/p99,稳定的支付和TTW,这意味着在最热的时间内收入更高,事件更少。

Contact

联系我们

如需任何咨询或支持,请随时联系我们。我们随时准备提供帮助!

Telegram
@Gamble_GC
开始集成

Email — 必填。Telegram 或 WhatsApp — 可选

您的姓名 可选
Email 可选
主题 可选
消息内容 可选
Telegram 可选
@
如果填写 Telegram,我们也会在 Telegram 回复您。
WhatsApp 可选
格式:+国家代码 + 号码(例如:+86XXXXXXXXX)。

点击按钮即表示您同意数据处理。