GH GambleHub

SLO/SLA和指標

SLO/SLA和指標

1)術語和層次結構

SLI(服務級別指標)-可衡量的指標「用戶如何看待我們」:成功查詢的比例,p95潛伏率,數據新鮮度,成功處理的戰鬥的比例等。

SLO(服務級別目標)是監視間隔(28/30/90天)上的SLI目標值。示例: "99。9%的請求/付款在400毫秒≤完成。"

Error budget — 1 − SLO.在SLO 99下。9%的錯誤預算=0。1%的時間/請求。
SLA(協議)-具有法律意義的服務級別:包括SLO,測量,例外,賠償/罰款。

2)設計原則

癥狀>內部指標。SLI必須反映真實的用戶體驗。
少量關鍵SLI。每項服務有2-5項主要服務:成功,潛伏期,吞吐量/新鮮度,正確性。
覆蓋關鍵路徑。對於每個業務腳本(checkout、login、webhook、ETL下載),均為自己的SLI/SLO集。
嚴格的「成功」語義。不是「代碼200」,而是「用戶按時收到響應,結果驗證」。
外部SLO和內部SLO的分離。內部-嚴格;外部SLA ≤在下面的1-2 9。

3) SLI目錄(參考)

3.1個API/在線服務

成功: 'SLI_success=1 −(5xx+timeout+business_error)/all_requests'

潛伏期: p95/p99 'http_server_duration_seconds'沿路由/方法/租戶

吞吐量: 「RPS」/限制/配額

正確性: 有效響應的比例(簽名、電路、不變量)

3.2 Webhooks/異步交付

交付: T秒和 N ≤中確認的事件百分比

客戶: 訂戶比例無長時間延誤(主訂戶)

3.3 數據/ETL/DWH

新鮮(freshness): 'now − last_successful_ingest_ts'

完整性: 'ingested_rows/ expected_rows'

正確性: 經過質量檢查的記錄比例

Piplines: 截止日期前完成的喬布斯比例

3.4移動/客戶端SDK

客戶成功: 會議比例無致命錯誤

round-trip潛伏期: p95從查詢到渲染

快取熱門: 快取服務的比例(作為表現癥狀)

4)公式和目標示例

可用性(按請求):
  • `SLI_req_avail = 1 − (failed_requests / total_requests)`
  • `SLO_req_avail = 99.95%在30天內→ error budget=0。50%的請求。
可用性(按時間):
  • `uptime = (obs_window − downtime) / obs_window`
潛伏期:
  • "SLO_latency=p95 (route="/pay") ≤ 400 ms在7天的切片中,緩存預熱除外(1%)
數據更新:
  • "SLO_freshness(dataset="orders")在24小時內≤ 10 min'p99。

5)錯誤預算和變更管理

預算(B):「B=1 − SLO」。
預算支出(burn):實際錯誤與允許的比率。

政客:
  • 超支(burn> 1) → fichfries,專註於可靠性。
  • 在burn rate> X中,在短窗口中是事件和引腳。措施。
  • 計劃:沖刺對可靠性的比例與過去的燃燒有關。

6) Alerting: 燃燒率和多窗口規則

想法:捕捉快速泄漏和緩慢漂移。

示例(SLO 99。9%,預算0。1%):

關鍵:「1小時預算的2%」(快速火災)。
警告:「6小時預算的5%」(爬行退化)。

規則:
  • 快速事件的短窗口(一分鐘至一小時)。
  • 趨勢的長窗口(6-24小時)。
  • 潛伏期:p99>閾值≥5分鐘,帶有懸浮抑制以及與步道外胚層的關系。
表達式示例(邏輯):

error_ratio_5m = errors[5m] / requests[5m]
error_ratio_1h = errors[1h] / requests[1h]
burn_5m     = error_ratio_5m / error_budget_fraction burn_1h     = error_ratio_1h / error_budget_fraction alert_critical if burn_1h > 14 and burn_5m > 14 alert_warning  if burn_6h > 6 and burn_30m > 6

7)多範圍(multi-tenant)和細分

SLI/SLO按租戶/計劃/地區計算,否則中位數將「吸引」失敗。
統計意義的最小事件數(guard-rails)。

SLA的票價可能會有所不同(例如"Pro 99。9%, Free 99.5%»).

8)與可觀察性和跟蹤的關系

SLI度量標準是從直方圖/計數器到exemplars →過渡到「不良」軌跡。
Logi是原因的來源:時間限制,業務錯誤代碼,限制。

對於數據-鏈接到線程: 「哪個喬巴延遲了新鮮度量。」

9)合同和SLA

SLA的內容:
  • SLI/測量方法/窗口定義。
  • 例外(計劃工作,不可抗力)。
  • 事件和通信程序(狀態頁面,RFO/RCA)。
  • 賠償(服務信貸)和請求順序。
  • 管轄權,有效期,審查條件。
建議:
  • 永遠不要公開承諾SLO比架構和操作實踐所允許的更嚴格。
  • 分離內部SLO和外部SLA。

10)成本和優先級

九個的價格沒有線性增長。«99.9% → 99.99%"=不同的體系結構類別(N+1,multizon,資產-資產)。
將SLO置於最有價值的用戶操作上。
控制遙測的成本:按類分解、配額、復制副本和存儲。

11)程序和報告

每周報告:按服務/租戶執行SLO,預算支出,最高原因,改進計劃。
發育後的RCA:與預算相關聯;我們的任務是解決根本原因。
Fichfries:包含/刪除標準。

12)模板(快速啟動)

12.1 SLO卡(示例)


Service: Checkout API
SLI:
success: 1 - (5xx+timeouts+biz_failures)/all latency_p95: p95(http_server_duration_seconds{route="/pay"})
SLO:
success: 99. 95% / 30d latency_p95: ≤ 400ms / 7d
Windows:
primary: 30d rolling secondary: 7d rolling
Burn Alerts:
critical: use 1h/5m > 14 warning: use 6h/30m > 6
Owner: Team Checkout
Tenancy: per-tenant (≥ 1k req/day threshold)
Dashboards: RED + trace exemplars

12.2 「SLO成熟度」表"

級別特點
0沒有SLI,CPU/Memory上的變量
1有SLI,簡單的閾值
2SLO與burn-rate alerts,報告
3多Arand SLO、Fichfries、Capversion按計劃
4端到端SLO (kliyent→bekend→dannyye)、自動還原、金絲雀SLO

13)規則示例(片段)

PromQL-成功/錯誤/潛在性:
promql
Error rate (5xx + timeout) for the sum (rate (http_requests_total{route="/pay",code=~"5. route.    599"}[5m]))
/ sum(rate(http_requests_total{route="/pay"}[5m]))

p99 histogram_quantile latency (0. 99, sum(rate(http_server_duration_seconds_bucket{route="/pay"}[5m])) by (le))
Alerta burn-rate(規則的想法):
promql error_budget_fraction = 0. 001 for 99. 9%
(err_rate_5m / 0. 001 > 14) and (err_rate_1h / 0. 001 > 14) # critical
(err_rate_30m / 0. 001 > 6) and (err_rate_6h / 0. 001 > 6)  # warning
數據更新:
promql
Data order lag (minutes)
(max(time()) - max(last_ingest_ts_seconds{dataset="orders"})) / 60

14)數據和ML SLO(功能)

端到端數據SLO: p99的新鮮度、p99的完整性、故障發生後的「重新設計」時間。
數據合同:預期的方案,數量,截止日期;違反→數據事件。
ML:地獄潛伏期的SLO,相機可用性的SLA,漂移監測(模型質量是一個單獨的主題,在SLA之外)。

15)與安全和隱私的整合

沒有PII/秘密的 SLI標誌;令牌/掩碼。
審核未更改日誌中的SLO/SLA更改和報告出版物。
對於監管途徑(付款/PII),是單獨的,更嚴格的SLO。

16)支票單

啟動服務/fichi之前

  • SLI定義為「成功/潛在/吞吐量/新鮮度」。
  • 設置了SLO和窗口;計算出錯誤預算。
  • 設置了burn-rate alerta(短+長)。
  • RED+exemplars →軌道;Runibook事件。
  • 多方切口和重要性閾值。
  • fichfriz和報告程序。

運營

  • SLO/burn的每周報告,強硬計劃。
  • 在體系結構/負載更改時重新評估SLO。
  • 偶爾的「事件演習」和更新runibook。
  • 控制遙測成本和SLI數量。

17) Runbook’и

Runbook: 快速增長p99/pay

1.Alert r 99>閾值→打開行車記錄板→通過exemplar進入步道。
2.查找狹窄的CLIENT/SERVER-span並比較區域/版本。
3.啟用降級(緩存/限制/後退),通知依賴命令。
4.穩定後-RCA,優化問題,SLO測量更新。

Runbook: 每周預算支出>50%

1.冷凍菲奇,提高可靠性的優先級。
2.錯誤集群:路線/租戶/依存關系。
3.推出修復程序→確認趨勢恢復。
4.回顧和調整標量/閾值。

18) FAQ

Q: 需要多少個SLO?

答:關鍵用戶場景的最低限度:成功+潛伏。其他一切-根據需要。

Q: 什麼是最好的-按時間或按請求提供?

答:根據請求,是更定制的指標。對於網絡組件/infra,時間方便。

問:為什麼p95而不是平均水平?
答:中間隱藏尾巴;用戶感覺到p95/p99。

問:怎麼不把螺母扭得太厲害?
答:從現實的目標(歷史數據)開始,然後隨著成熟而收緊。

相關材料:
  • 「可觀察性:邏輯,度量,跟蹤」
  • 「分布式跟蹤」
  • 「審核和不變日誌」
  • 「網絡手冊交付保證」
  • 「加密In Transit/At Rest」
  • 「數據來源(Lineage)」
Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

Telegram
@Gamble_GC
開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。