iT邦幫忙

2026 iThome 鐵人賽

DAY 17
0
IT Operation

地端生成式 AI 平台 SRE 實戰:GPU 資源治理、可觀測性與災難復原系列 第 17 篇

Day 17|Metrics、Logs、Traces 要如何拼成同一個事故

  • 分享至 

  • xImage
  •  

完成「Health Check 不只是 HTTP 200」後,下一個問題是「Metrics、Logs、Traces 要如何拼成同一個事故」能否重跑、否定並留下失敗原因。這就是今天的範圍。

今天要回答的問題

用一次真實或模擬異常,展示三種遙測資料各自能回答什麼,建立最低可用 observability stack。

工程邊界

觀測要能回答「使用者慢在哪一層」

nvidia-smi 很適合確認 GPU 是否存在、VRAM 是否被占用,但很難回答一次請求在 queue、tokenization、prefill、decode、database 或 storage 各花多少時間。營運平台需要把 host metrics、GPU metrics、application metrics、log 與 trace 串起來。

好的告警也不是「GPU 90% 就響」,而是要和服務影響建立關係,例如 P95 latency 超過 SLO 且 queue 持續累積,或錯誤率在特定時間窗內快速上升。

一個可以直接重現的起點

不要讓三種遙測各看各的

Metrics 適合回答「何時開始異常、影響範圍多大」;Logs 適合回答「元件當下說了什麼」;Trace 適合回答「一個請求跨過哪些服務、時間花在哪裡」。應選擇同一次事故,把三種資料放在同一條時間線,避免將三種遙測拆成互不相干的資料。

用 correlation ID 串起遙測

先把「以同一個 correlation ID 串起一次受控 timeout」需要固定的輸入、版本與環境集中在同一份小型測試計畫;函式名稱代表實際工具。

plan = {
    "change": '以同一個 correlation ID 串起一次受控 timeout',
    "fixed": ("input", "version", "environment"),
    "metrics": ('client latency', 'trace spans', 'logs', 'GPU/host metrics'),
}
for round_no in range(1, 4):
    sample = run_once(plan)  # 接上實際壓測或維運工具
    save_sample(round_no, sample)

驗證與落地方式

驗證可從「以同一個 correlation ID 串起一次受控 timeout」開始。先以未施加變更的狀態建立 baseline,再執行目標條件,最後確認服務能回到穩定狀態。三個階段使用相同輸入與觀察時間窗,可降低 warm-up、cache 與背景工作造成的誤判。若測試包含故障或資源壓力,應限定在隔離環境,事先設定停止條件與復原方式。

觀察資料要同時涵蓋使用者體感、服務行為與主機資源。這篇優先比較:client latency、trace spans、logs、GPU/host metrics。單看資源使用率無法代表服務健康;吞吐提高也可能伴隨排隊、錯誤率或尾端延遲惡化。至少重複三輪並保留每輪條件,才能區分穩定趨勢與偶發尖峰。

常見誤判

  • 只看平均值,忽略 P95、錯誤率與恢復時間,容易低估少數使用者遇到的嚴重延遲。
  • 同時更換模型、參數、資料與基礎設施,數字即使改善,也無法判斷真正原因。
  • 只驗證正常路徑,沒有測試容量邊界、依賴失效與復原流程,上線後仍可能在第一個異常點失守。

上線前檢查

確認監控能回答「何時開始、影響多大、哪一層先異常」,並為超時、容量與復原設定可操作門檻。所有門檻都應對應負責人與處置方式;無法觸發行動的數字只適合分析,不適合作為告警。

如何閱讀結果

結果可分成使用者影響、服務訊號與資源訊號三層閱讀。先確認錯誤率與延遲是否超出承諾,再沿時間線追查 queue、依賴與主機資源。若只有 GPU 或 CPU 使用率改變,但使用者指標沒有同步變化,只能視為線索,不能直接宣告根因。

單次測試適合發現風險,不足以證明長期容量。正式採用前還要加入較長時間的穩定性測試與版本回歸,確認重新啟動、流量波動及依賴短暫異常不會改變原本結論。

結果判讀

判讀不只看最大或最漂亮的數字。這一天真正要回答的是:確認能從使用者影響追到故障元件。

如果核心指標改善,但錯誤率、尾端延遲、資源成本或恢復能力變差,這代表取捨,而不是無條件進步。相反地,沒有改善也不是無效結果;至少能排除一條看似合理、實際上不值得增加複雜度的路。

今天的結論

今天的工程判斷是:確認能從使用者影響追到故障元件。無論結果支持或否定原本假設,都必須保留完整條件,才能和下一天的實驗串在一起。

下一篇將處理:告警不是越多越安全:從訊號到可行動告警。


參考資料


上一篇
Day 16|Health Check 不只是 HTTP 200
系列文
地端生成式 AI 平台 SRE 實戰:GPU 資源治理、可觀測性與災難復原 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言