從採樣到全可視性:擴展追蹤至萬萬個跨度

可觀測性演進史

網路監測階段

使用SNMP監控硬體狀態(CPU使用率、記憶體等),管理員透過閾值警報進行網路輪詢,奠定基礎監測架構。

服務監測階段

引入主機檢查與服務檢查,透過紅綠燈儀錶板顯示服務狀態,實現服務層級的即時監測。

監測階段

進階儀錶板與深度洞察,透過指標監測服務健康狀態,提升異常檢測能力。

可觀測性階段

整合日誌(Logs)、指標(Metrics)、追蹤(Traces),形成三支柱模型:

  • Logs:說明發生了什麼
  • Metrics:說明發生時間
  • Traces:說明發生位置

擴展至六支柱模型

新增效能剖析(Profiling)、真實用戶監測(Real User Monitoring)、合成測試(Synthetic Testing),提升端到端可視性與主動監測能力。

AI驅動的可觀測性

人工智慧捕捉人類可能忽略的異常,OpenTelemetry標準化數據採集,推動可觀測性進入智能化階段。

調試流程與追蹤價值

典型調試步驟

  1. 接收異常警報(用戶投訴、監測通知等)
  2. 透過Matrix儀錶板尋找異常服務(尖峰/下降/模式變化)
  3. 針對特定服務檢視追蹤數據(Trace)
  4. 分析請求路徑與根因

追蹤的核心價值

  • 提供完整請求路徑可視性
  • 透過時間序列圖(Duration over Time)快速定位異常
  • 紅點(錯誤追蹤)與紫色點(正常追蹤)視覺化差異
  • 高時長追蹤(大點)與低時長追蹤(小點)直觀對比

採樣問題與挑戰

採樣率的矛盾

常見1%採樣率(每100個追蹤僅保留1個),結果可能遺失關鍵錯誤追蹤(針)。例如:10億筆交易/日 → 10億筆追蹤 → 100萬筆採樣追蹤(無錯誤)。

採樣問題的根源

  • 數據體積過大:每日100億筆交易 → 3萬億個跨度(Spans),每個Span約2KB → 累計6PB數據,存儲需求:60臺SSD伺服器/日
  • 處理開銷:跨雲端協調、資料結構管理,影響應用性能

尾部採樣(Tail Sampling)的限制

需保留錯誤/慢速追蹤,但當前大多數廠商不支援或收費昂貴。技術難點包括:

  • 必須完整收集Span至請求結束
  • 跨雲端協調與資料結構管理

解決方案與技術優化

列式儲存(Columnar Storage)

針對同類數據壓縮(如時間戳、字串、數值),壓縮率提升10-20倍。範例:

  • 時間戳使用Delta編碼
  • 字串使用字典編碼
  • 數值使用Bit Packing

概率過濾器(Probabilistic Filters)

Bloom Filter加速Trace ID存在性檢查,節省空間並作為輕量索引。

分區策略(Partitioning)

  • 時間戳分區:快速存取近期數據
  • Trace ID分區:同一Trace ID的Span集中存儲,提升查詢效率與平行處理能力

特殊儲存結構(Special Sharding)

分離錯誤與慢速Span至專用儲存,降低查詢複雜度:

  • 透過Trace ID表 → 關聯Span表 → 直接查詢錯誤Span
  • 查詢效率提升50-100倍

分層儲存架構(Tiered Storage)

  • 熱儲存(0-7天):高性能SSD
  • 溫儲存(8-30天):成本效益HDD
  • 冷儲存(>30天):物件儲存(S3/GCS)
  • 自動化數據遷移:依數據年齡分類,提取錯誤/慢速Span至專用儲存

成本優化策略

針對1%錯誤數據優化儲存,專用儲存結構降低存儲與查詢成本,提升根因診斷效率與MTTR(平均修復時間)。

核心結論

追蹤的價值

提供最高保真度的根因診斷,完整系統狀態可視化。

採樣的風險

過度採樣導致盲點與調試困境,需平衡數據體積與診斷準確性。

技術解決方案

列式儲存 + 智能分片 + 效率索引,降低存儲成本與查詢延遲,提升系統可觀測性與主動監測能力。