6.3 監控、日誌與可觀測性#
上線之後:看不見的問題#
軟體部署上線(6.1、6.2 節)只是開始。真正的考驗在於——系統跑起來之後,你「看不看得見」它發生什麼事。 許多最棘手的問題(效能退化、間歇性錯誤、使用者悄悄流失)都發生在「你沒在看的角落」。
可觀測性(Observability) 就是「讓系統的內部狀態可以被外部觀察與理解」的能力。它建立在三大支柱之上:指標(Metrics)、日誌(Logs)、追蹤(Traces)——常被稱為「觀測的三大支柱」。
三大支柱#
1. 指標(Metrics):數值化的健康狀態#
指標是「一段時間內可彙總的數值」,用來回答「系統現在健康嗎」:
- 吞吐量(Throughput):每秒請求數(RPS)
- 延遲(Latency):回應時間的分佈(p50、p95、p99)
- 錯誤率(Error Rate):失敗請求的比例
- 資源使用:CPU、記憶體、磁碟、網路
- 業務指標:訂單數、活躍使用者、轉換率
指標的特點是「聚合成數字、能連續監控」——你能用儀表板(Dashboard)即時觀看數字變化,並設定「超出閾值就警報」的規則。例如「p99 延遲超過 1 秒就警報」。
2. 日誌(Logs):逐筆事件的紀錄#
日誌是「逐筆事件的文字/結構化紀錄」,用來回答「出了什麼事、那時刻發生什麼」:
2026-09-09 10:00:01 ERROR order=12345 "資料庫連線逾時"
2026-09-09 10:00:02 WARN order=12346 "重試付款 (第 2 次)"
好的日誌應該:結構化(JSON)、有上下文(訂單 ID、使用者 ID)、有層級(DEBUG/INFO/WARN/ERROR)、不含敏感資料(見 13 章)。日誌是「事後調查」的主要工具——錯誤發生後,靠日誌還原現場。
3. 追蹤(Traces):一次請求的完整旅程#
當系統是分散式(多服務、多容器)時,一次請求會跨越很多服務。追蹤把「同一次請求」流經的所有服務串起來,形成一條「旅程」記錄,回答「這次請求卡在哪裡、花了多少時間在哪個環節」。
[GET /orders/12345] 整體 340ms
├─ API Gateway 15ms
├─ 訂位服務 120ms ← 這裡最慢
│ └─ 資料庫查詢 90ms
└─ 會員服務 180ms
追蹤的目的是定位分散式系統的瓶頸與錯誤——沒有追蹤,一次跨服務請求出問題,你根本不知道該查哪個服務(呼應 3.2 節「分散式系統難以知道哪裡壞了」)。
三者如何分工#
| 支柱 | 問的問題 | 使用時機 |
|---|---|---|
| 指標 | 系統現在健康嗎?你在惡化嗎? | 即時監控、趨勢、警報 |
| 日誌 | 出界時那一刻發生什麼? | 事後調查、除錯 |
| 追蹤 | 這次請求卡在哪個服務? | 分散式瓶頸與錯誤定位 |
一個實用的串聯:指標告訴你「p99 開始飆升(有問題)」,追蹤帶你找到「會員服務變慢了」,日誌讓你看「會員服務的資料庫查詢為何逾時」。三者互補,構成完整的「看得見」能力。
儀表板、警報與 SLO#
有了三大支柱的資料,還需要「人看得懂、且會被動地通知」的機制:
- 儀表板(Dashboard):把指標視覺化成圖表,讓團隊一眼掌握健康狀態
- 警報(Alerting):指標/條件達成時,自動通知相關人員(1 週 7 天 24 小時都有人在處理)
- SLO / SLI:SLI(服務水準指標,如可用性 99.9%)、SLO(服務水準目標,如「每月可用性 ≥ 99.9%」)。有了量化的 SLO,團隊能判斷「服務是否達到我們承諾的使用者體驗」,並決定該投入多少心力在可靠性。
為什麼 SLO 重要:它把「可靠性」從模糊的「要穩定一點」變成「明確的數字目標」。沒有目標,你無法判斷「現在這樣夠不夠好」,也無法理性取捨「該加功能還是該修可靠性」。
從監控到可觀測性#
「監控(Monitoring)」與「可觀測性(Observability)」常被混用,但其實略有不同:
- 監控:對「已知的、我們懷疑可能出問題的」指標持續量測與警報
- 可觀測性:更廣的能力——能對「事先不知道、沒預期到的」問題進行探查,靠的是豐富的日誌、追蹤與上下文,讓你能「事後提出任意問題」
成熟系統兩者都要:用監控盯住已知風險,用可觀測性探索未知問題。尤其在 AI 時代,系統行為更複雜、更難預測,「能不能探查未知問題」的能力更加重要。
AI 時代的可觀測性#
AI 對可觀測性的影響也是雙向的:
AI 增加了觀測的難度:AI 系統的行為非確定且複雜(第二篇、第 11 章),除了傳統的指標,還需要觀測 Agent 的決策軌跡——它看了什麼上下文、呼叫了哪些工具、每一步的輸出為何。沒有「軌跡(Trace,Agent 層級)」的 AI 系統,出錯時根本無法調查(呼應 3.5 節「可評估性」)。
AI 提升了觀測的能力: - AI 協助分析日誌:海量日誌透過 AI 快速摘要、找出異常模式 - AI 自動偵測與自癒:這是下一節(6.4 節)的主題——AI 不只「看」,還能「自動反應」
本章小結#
- 可觀測性讓系統狀態可以被外部觀察與理解
- 三大支柱:指標(Metrics)、日誌(Logs)、追蹤(Traces)
- 指標:健康狀態與趨勢、警報
- 日誌:事後調查
- 追蹤:分散式瓶頸定位
- 搭配儀表板、警報、SLO/SLI形成完整的觀測機制
- 監控盯已知風險,可觀測性探索未知問題
- AI 時代:Agent 需要決策軌跡觀測;AI 也能協助分析與自動化觀測(下節)
想一想#
- 指標、日誌、追蹤三者各適合回答什麼問題?舉一個三者串聯調查的真實場景。
- 為什麼「SLO」能把可靠性的討論從「感受」變成「決策」?
- 你覺得「觀測一個 AI Agent 的行為」需要哪些不同於傳統系統的資料?(提示:決策軌跡)