GH GambleHub

KPI基础设施和药房

为什么需要它

基础设施的KPI将稳定性的"感觉"转换为可测量的目标,并管理工作的风险和重点。正确的指标将技术SLI与业务成果(转换,时间到钱包,LTV)联系起来,并允许计划开发,负载和创新份额与可靠性。

基本概念: SLI、SLO、SLA和错误预算

SLI(服务级别指标)-可测量的质量指标:成功查询的百分比、p95延迟、每间隔药房。
SLO(服务级别目标)是SLI(例如"成功≥ 99的目标。在30天内达到9%")。
SLA(协议)是带有罚款/贷款的外部承诺。始终是SLO的派生,但不等于SLO。
错误预算='1 − SLO'。这是度量窗口中"不间断"的最大允许比例。用于风险发布和实验决策。

示例:
  • SLO可用99。30天内95%→预算错误0。05% ≈ 21.6分钟"不间断"在日历月。

四个"黄金"信号和其他信号

1.潜伏期(p50/p90/p95/p99,尾巴比平均水平更重要)。
2.错误(5 xx/timeout/业务错误)。
3.流量/吞吐量(RPS/QPS,MBps)。
4.饱和度(CPU/RAM/IO/FD/连接/GC/配额)。
另外:冷启动,队列/beclog,调度时间,SLO合规性。

针对不同服务类型的SLI模型

HTTP/API

可用性: "(成功的2xx/3xx −逻辑错误)/(所有查询)"

潜伏期:成功查询的"p95";热点路线的目标。
质量:具有"audience/scope"的查询比例正确(没有authZ错误)。

队列/asinchron

消息处理时间:p95端到端≤ N秒。

Backlog: 中位数

交付错误:≤ Z ppm。

DB/缓存

操作的潜在性:p95 get/put/commit。
饱和:连接池使用,高速缓存的命中率。
错误:timeouts,deadlocks,eviction storms。

CDN/静态

Hit Ratio:目标级别≥;降解→起源负荷增加。
POP可用性:Anycast布局,故障由邻居补偿。

付款(业务SLI)

Time-to-Wallet p 95,存款/提款成功率%,PSP故障率。

可用性和"aptime"计算"

服务的可用性="成功查询/所有查询"(最好不是"药房分钟")。
基础架构节点的替代方桉:"处于绿色状态的时间/窗口时间"。
日历窗口:28-31天,滚动窗口:过去30/90天。
工作时间/关键窗口:对于backoffice,可以按计划视为aptime(例如,当地时间08:00-22:00)。

依赖项组成(简化): 如果服务A取决于B和C,则独立故障:
  • "可用性(A) ≈ Av (B) × Av (C) × Av (A'B, C)"-在边界上设置SLO很重要。

SLO集示例(样本)

Gateway API: 可用性≥ 99。95%/30d;p95 latency ≤ 120毫秒;错误≤ 0。2%.

Checkout/Payments: 存款成功≥ 98.5%/30d;Time-to-Wallet p95 ≤ 90 с;PSP-timeouts ≤ 0.3%.

数据库: p95读≤ 10毫秒;p95 write ≤ 25毫秒;replica lag p95 ≤ 150 мс.

现金: 命中率≥ 85%;eviction storms = 0/30д.

付款: p95处理≤ 5枚地雷;frod falls阳性≤ 0。3%.

错误预算和变更管理

如果错误预算在窗口中间之前耗尽了50%+-将引入"冻结"间距/发布,重点放在稳定上。
如果预算支出缓慢,则可以加速实验/金丝雀。
预算消耗通过"release_id"链接到特定的发布/事件。

Alerting: 如何不"晚上打电话"是徒劳的

Alerta仅通过SLO降解和生命症状,而不取决于每个指标。
多窗口、多燃烧率:短窗口(5-15分钟)+长窗口(1-6小时)。
示例:"Burn rate 14 × 5分钟6 × 1小时"→呼叫页面。
非P1信号的安静时钟;责任路由(ownership)。

Dashbords和可视化实践

SLO面板:服务合规性,剩余预算,依赖图。
Latency面板:p50/p90/p95/p99,路线/tenant/国家/ASN分解。
错误面板:代码/原因,与版本/fichflags相关。
Capacity面板:CPU/RAM/IO/network/FD/连接、趋势和预测。
业务面板:转换,时间到钱包,存款/结算,保护影响(WAF/antibot)。

事件、MTTR和验尸程序

反应KPI:
  • MTTD(检测),MTTA(吸盘),MTTR/MTTC(恢复/遏制),未及时发生RCA事件的百分比。
  • 花花公子:谁在升级如何启用菲奇弗拉格/块,如何回滚发布,与企业的沟通。
  • Mortem (blameless):事实、时间线、根本原因(那些/过程)、行动:立刻/长期、回归测试、对SLO的影响。

性能、饱和度和降解

Headroom:目标资源储备(例如,CPU <70% p95, RAM <75% p95)。
热点:分析关键路线;"p99"比平均值更重要。
Degradation modes:仅缓存,仅读取,对不重要的查询进行滴答作响,"利率限制"/配额。

公式和示例计算

1)按请求可用


availability = (total_requests - error_requests) / total_requests

其中'error_requests'=5xx+timeouts+业务错误(可配置)。

2)错误预算(分钟)


error_budget_minutes = window_minutes (1 - SLO)

示例:30天(43 200分钟),SLO 99。95% → 21.6分钟。

3) Burn rate


burn_rate = observed_error_ratio / (1 - SLO)

如果SLO 99。9%(预算0)。1%),错误1%→ burn_rate=10 ×。

4)复合可用性


A_total ≈ A_gw × A_auth × A_db × A_psp

小跌幅乘以整体A。

测量和排除策略

计划外窗口(事件)-计入。
计划服务窗口-仅在SLA如此明确的情况下才考虑在内;对于SLO,通常不会减去(或单独标记为"planned_downtime")。
合成vs真实用户:具有两个通道(RUM+合成检查)非常有用。

工件示例

KQL/PromQL(想法)

5分钟SLI错误(5 xx+timeouts):
promql sum(rate(http_requests_total{status=~"5..    timeout"}[5m]))
/
sum(rate(http_requests_total[5m]))

p95 latency по route:

promql histogram_quantile(0. 95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, route))

Burn rate 5m/1h:

promql
(
sum(rate(errors_total[5m])) / sum(rate(requests_total[5m]))
) / (1 - 0. 999)

SQL(支付业务SLI)

sql
SELECT date_trunc('minute', finished_at) AS ts,
100. 0 sum((status='SUCCESS')::int)::float / count() AS payment_success_pct,
percentile_cont(0. 95) WITHIN GROUP (ORDER BY EXTRACT(EPOCH FROM (finished_at - started_at))) AS ttw_p95_sec
FROM payments
WHERE finished_at > now() - interval '30 days'
GROUP BY 1 ORDER BY 1;

管理依赖项和级联

团队之间的SLO合同:gateway↔auth↔wallet↔PSP。
Degradation policies:当依赖性下降时,服务进入"简化模式"。
功能横幅:关闭非关键功能,"灰色释放"以减少尾巴。

能力规划与预测

Shchomes。RPS/MBps趋势和事件(锦标赛,比赛,股票)的预测。
通过"黄金路径"进行负载测试,分别针对PSP/付款进行测试。
高峰期股票:目标系数1。3×–2.0 ×预期负载。

SLO/KPI实施支票

1.从客户的角度定义关键的用户路径并谈判SLI。
2.选择SLO目标和窗口(30/90天);计算错误的预算。
3.将指标收集嵌入网关/服务中,规范代码/原因。
4.自定义burn-rate alerta(短+长窗口)、路由和呼叫。
5.可视化SLO合规性,与版本/fichflags相关联。
6.发起"预算与变革"政策和冻结过程。
7.回顾和RCA针对每个过量,回归测试。
8.每季度审查SLO的实际预算使用和业务目标。

典型的错误

通过忽略应用程序错误来测量"按指针计时"。
SLO标有"pro pok"(99。999%),但无法实现,无法解决任何问题。
Alerts通过低级别指标代替自定义症状。
没有成瘾图→不清楚燃烧的地方。
SLO与发行版没有关联→目前尚不清楚是谁"吃掉"了预算。
忽略尾巴p99 →中位数好,但UX VIP用户差。

iGaming/fintech的细节

时间表高峰:比赛/活动/促销活动-提前提高能力,加热缓存/CDN,包括特殊的限制配置文件。
业务SLI:时间到钱包,存款/提款成功,"付款速度"p95;在dashbords的根部。
PSP/合作伙伴:单独的SLO/dashbords按供应商,自动路由切换。
Antibot/antifrod:不要吃掉错误预算-将"合法块"与"技术错误"分开。
监管:日志存储,SLO/SLA计算的可重复性,事件报告。

FAQ

是否需要从SLO中减去计划工作?

通常不是:SLO反映了用户体验。对于SLA,可以规定例外。

为什么p95而不是平均?
中间掩盖了尾巴;UX定义尾巴(p95/p99)。

一个单个SLO可以用于整个产品吗?

需要SLO树:按产品分组,按关键路径/组件分组。

底线

强大的基础架构KPI系统是定制SLI,现实的SLO,错误预算作为变更管理杠杆,智能警报和事件纪律以及RCA。将技术指标与业务指标联系起来,自动化收集和可视化-即使是在高峰时段,基础架构也将变得可预测且可控制。

Contact

联系我们

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

Telegram
@Gamble_GC
开始集成

Email — 必填。Telegram 或 WhatsApp — 可选

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

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