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。 操作的潛在性:p95 get/put/commit。 Hit Ratio:目標級別≥;降解→起源負荷增加。 Time-to-Wallet p 95,存款/提款成功率%,PSP故障率。 可用性和「aptime」計算" 服務的可用性=「成功查詢/所有查詢」(最好不是「藥房分鐘」)。 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%+-將引入「凍結」間距/發布,重點放在穩定上。 Alerting: 如何不「晚上打電話」是徒勞的 Alerta僅通過SLO降解和生命癥狀,而不取決於每個指標。 SLO面板:服務合規性,剩余預算,依賴圖。 Headroom:目標資源儲備(例如,CPU <70% p95, RAM <75% p95)。 1)按請求可用 其中'error_requests'=5xx+timeouts+業務錯誤(可配置)。 2)錯誤預算(分鐘) 示例:30天(43 200分鐘),SLO 99。95% → 21.6分鐘。 3) Burn rate 如果SLO 99。9%(預算0)。1%),錯誤1%→ burn_rate=10 ×。 4)復合可用性 小跌幅乘以整體A。 計劃外窗口(事件)-計入。 KQL/PromQL(想法) p95 latency по route: Burn rate 5m/1h: 團隊之間的SLO合同:gateway↔auth↔wallet↔PSP。 Shchomes。RPS/MBps趨勢和事件(錦標賽,比賽,股票)的預測。 1.從客戶的角度定義關鍵的用戶路徑並談判SLI。 典型的錯誤 通過忽略應用程序錯誤來測量「按指針計時」。 時間表高峰:比賽/活動/促銷活動-提前提高能力,加熱緩存/CDN,包括特殊的限制配置文件。 是否需要從SLO中減去計劃工作? 通常不是:SLO反映了用戶體驗。對於SLA,可以規定例外。 為什麼p95而不是平均? 一個單個SLO可以用於整個產品嗎? 需要SLO樹:按產品分組,按關鍵路徑/組件分組。 強大的基礎架構KPI系統是定制SLI,現實的SLO,錯誤預算作為變更管理杠桿,智能警報和事件紀律以及RCA。將技術指標與業務指標聯系起來,自動化收集和可視化-即使是在高峰時段,基礎架構也將變得可預測且可控制。DB/緩存
飽和:連接池使用,高速緩存的命中率。
錯誤:timeouts,deadlocks,eviction storms。CDN/靜態
POP可用性:Anycast布局,故障由鄰居補償。付款(業務SLI)
基礎架構節點的替代方案:「處於綠色狀態的時間/窗口時間」。
日歷窗口:28-31天,滾動窗口:過去30/90天。
工作時間/關鍵窗口:對於backoffice,可以按計劃視為aptime(例如,當地時間08:00-22:00)。
SLO集示例(樣本)
錯誤預算和變更管理
如果預算支出緩慢,則可以加速實驗/金絲雀。
預算消耗通過「release_id」鏈接到特定的發布/事件。
多窗口、多燃燒率:短窗口(5-15分鐘)+長窗口(1-6小時)。
示例:「Burn rate 14 × 5分鐘6 × 1小時」→呼叫頁面。
非P1信號的安靜時鐘;責任路由(ownership)。Dashbords和可視化實踐
Latency面板:p50/p90/p95/p99,路線/tenant/國家/ASN分解。
錯誤面板:代碼/原因,與版本/fichflags相關。
Capacity面板:CPU/RAM/IO/network/FD/連接、趨勢和預測。
業務面板:轉換,時間到錢包,存款/結算,保護影響(WAF/antibot)。事件、MTTR和驗屍程序
反應KPI:
性能、飽和度和降解
熱點:分析關鍵路線;「p99」比平均值更重要。
Degradation modes:僅緩存,僅讀取,對不重要的查詢進行滴答作響,「利率限制「/配額。公式和示例計算
availability = (total_requests - error_requests) / total_requests
error_budget_minutes = window_minutes (1 - SLO)
burn_rate = observed_error_ratio / (1 - SLO)
A_total ≈ A_gw × A_auth × A_db × A_psp測量和排除策略
計劃服務窗口-僅在SLA如此明確的情況下才考慮在內;對於SLO,通常不會減去(或單獨標記為「planned_downtime」)。
合成vs真實用戶:具有兩個通道(RUM+合成檢查)非常有用。工件示例
promql sum(rate(http_requests_total{status=~"5.. timeout"}[5m]))
/
sum(rate(http_requests_total[5m]))promql histogram_quantile(0. 95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, route))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;管理依賴項和級聯
Degradation policies:當依賴性下降時,服務進入「簡化模式」。
功能橫幅:關閉非關鍵功能,「灰色釋放」以減少尾巴。能力規劃與預測
通過「黃金路徑」進行負載測試,分別針對PSP/付款進行測試。
高峰期股票:目標系數1。3×–2.0 ×預期負載。SLO/KPI實施支票
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的細節
業務SLI:時間到錢包,存款/提款成功,「付款速度」p95;在dashbords的根部。
PSP/合作夥伴:單獨的SLO/dashbords按供應商,自動路由切換。
Antibot/antifrod:不要吃掉錯誤預算-將「合法塊」與「技術錯誤」分開。
監管:日誌存儲,SLO/SLA計算的可重復性,事件報告。FAQ
中間掩蓋了尾巴;UX定義尾巴(p95/p99)。底線