跟 Backend 04 的分工:本文從 client-side 使用角度說明 Sentry 的 error tracking、performance monitoring 與 session replay — SDK 怎麼埋、error 怎麼分群、release 怎麼追蹤。Server-side 平台治理(告警路由整合、SLI 指標設計、self-hosted vs SaaS 成本治理、跟 OTel 的整合)見 Backend 04 Sentry vendor page

Sentry 的核心是 error tracking — 自動捕獲未處理的例外、提供 stack trace、自動分群(grouping)相同 root cause 的 error。在 error tracking 的基礎上,Sentry 擴展了 performance monitoring(transaction / span)和 session replay(重播使用者操作)。

Error tracking

Sentry 的 error tracking 架構有三個層次:SDK 端的自動捕獲、server 端的 issue grouping 和 UI 端的 issue management。

自動捕獲

Sentry SDK 在各平台註冊全域錯誤處理器(和模組三 自動攔截的機制相同)。捕獲到例外後,SDK 收集 stack trace、breadcrumbs(最近的使用者操作)、device context(OS / browser / device model)和自訂 tags,打包成 event 送到 Sentry server。

Issue grouping

Sentry server 收到 error event 後,用 fingerprinting 演算法判斷這個 error 是否和已有的 issue 相同。預設的 fingerprinting 基於 stack trace 的 frame — 如果兩個 error 的 stack trace 指向同一個位置,歸入同一個 issue。

自訂 fingerprint 讓開發者控制 grouping 邏輯。例如:不同使用者觸發的同一個 API error 可能有不同的 stack trace(因為 call site 不同),但 root cause 相同 — 自訂 fingerprint 把它們歸入同一個 issue。

Issue management

每個 issue 有狀態(unresolved / resolved / ignored)、指派(誰負責修復)、趨勢(這個 issue 的發生頻率是上升還是下降)。Sentry 的 UI 提供 issue 列表、趨勢圖、影響範圍(影響多少使用者)。

Performance monitoring

Sentry 的 performance monitoring 用 transaction 和 span 模型(和 OpenTelemetry 的 trace / span 概念相同)。

Transaction 代表一個完整的操作(頁面載入、API 請求處理)。Span 是 transaction 內的子操作(database query、外部 API 呼叫)。Transaction 和 span 的 duration 構成操作的時間分佈。

Performance monitoring 的價值是發現「慢」的問題 — P95 回應時間超過閾值、特定 span 佔了 transaction 80% 的時間。和 error tracking 互補:error 告訴你「什麼壞了」,performance 告訴你「什麼慢了」。

Session replay

Session replay 錄製使用者的操作過程 — DOM 變化、滑鼠移動、點擊事件 — 在 Sentry UI 中重播。開發者可以看到「使用者在觸發 error 之前做了什麼操作」。

Session replay 的實作是 DOM snapshot + mutation recording。記錄的是 DOM 結構的變化(非螢幕錄影),在重播時重建 DOM。資料量比錄影小很多,但仍然是所有 Sentry 功能中資料量最大的。

隱私考量:session replay 會看到使用者輸入的內容(除非做 masking)。Sentry 提供 privacy configuration 控制哪些元素被 mask(輸入框、敏感資料區域)。

自架方案和 Sentry 的差距

功能自架方案Sentry
Error 捕獲SDK 自動攔截SDK 自動攔截(相同)
Issue grouping手動 grep 分群自動 fingerprinting + 自訂規則
趨勢分析手動計數自動趨勢圖 + 告警
Performancemetric 事件 + 手動分析Transaction / span + 自動 P95
Session replayDOM recording + 重播 UI

Sentry 的核心價值在 issue grouping 和趨勢分析 — 把大量 error event 歸類成可管理的 issue 列表,自動追蹤每個 issue 的趨勢。自架方案用 grep 做不到自動 grouping。

下一步路由