微服務系統之間的呼叫鏈結可能錯縱複雜,除了系統日誌(Logging)和監控指標(Metrics),鏈結追蹤(Tracing)提供了服務間的關聯索引和鏈結分析的功能。
- 故障定位:描述服務請求的完整邏輯軌跡,定位服務故障的來源及路徑,協助故障排除分析。
- 資料分析:收集服務的性能、延遲和負載等監控指標,輔助用戶資料及服務狀態分析。
- 依賴分析:服務間的依賴關係可視化。
Google Dapper 大規模分散式系統的跟蹤系統
- 系統日誌收集:利用各種語言SDK將鏈結追蹤數據導入訊息佇列。
- 元資料(metadata):紀錄TraceID、SpanID、用戶代碼與時間戳記
- TraceID:於前端注入(Injection) RPC Header中,標記一次完整的服務請求鏈結,用以描繪呼叫拓樸(Topology)和運行序列。
- SpanID:紀錄跨程序(Process)的請求呼叫,一次完整的的服務請求鏈結(TraceID)可能由多個互相呼叫銜接的跨程序請求呼叫(SpanID)組成,視覺化構成樹狀的拓樸圖形。
- 詳細資料:請求參數(Request)、回應結果(Response)與效能指標
- 系統日誌處理:索引服務及分散式儲存
- 元資料(metadata):Elasticsearch
- 詳細資料:HBase
- 鏈結查詢平台:利用索引服務查詢TraceID,利用TraceID查詢儲存於分散式資料庫中的詳細資料。