使用 AWS X-Ray 的分散式追蹤與結構化日誌
在 AWS 上部署應用程式
Dunieski Otano
Amazon Web Services Solutions Architect
大家找不到的慢請求
有一個請求花了 4 秒
各服務各自的日誌看起來都正常
沒有人看得到完整路徑
分散式追蹤能解決什麼
一個請求會觸及
多個服務
只有日誌無法呈現
端到端路徑
追蹤(trace)
把整個請求串起來
清楚看到時間花在哪裡
Segments、Subsegments 與 Service map
Segment
:單一服務完成的工作
Subsegment
:Segment 內的單位,如資料庫呼叫
Service map
:所有 Segment 的可視化圖
每個節點都顯示延遲與錯誤
Annotations 與 metadata 的差異
Annotations
已索引的鍵值,可
篩選
用在你要搜尋的欄位,如客戶等級
Metadata
額外細節,
未索引
可附加作為脈絡,但不能用來搜尋
用 trace ID 關聯日誌
每個追蹤都有唯一的
trace ID
在你的
結構化日誌
中加入 trace ID
從慢速追蹤跳到對應的日誌行
日誌與追蹤合為一體化調查
讀 service map 尋找瓶頸
先看
service map
,不是日誌
找出
延遲
最高的節點
鑽研進它的
追蹤時間軸
最長的 segment 就是嫌疑犯
跨完整請求的追蹤
API Gateway、Lambda 與下游呼叫都會被
追蹤
各自把
segment
加入同一個追蹤
一個 trace ID 連結日誌與 segments
每個請求都有端到端可視性
一起來練習吧!
在 AWS 上部署應用程式
Preparing Video For Download...