AWS X-Ray 是分散式系統的請求追蹤工具。
它可以幫你看出一個請求經過哪些服務、哪裡變慢、哪裡出錯。
1. AWS X-Ray 是什麼?
AWS X-Ray 是用來追蹤應用程式請求流程的服務。 它特別適合用在微服務、Serverless、分散式架構。
當一個請求會經過很多服務時,只看各自的 log 很難找出問題。 X-Ray 可以把請求經過的服務流程串起來,並用圖形化方式呈現。
2. X-Ray 解決什麼問題?
| 問題 | 說明 |
|---|---|
| Log 太分散 | 每個服務都有自己的 log,很難串起來分析 |
| 微服務太複雜 | 一個請求可能經過多個服務,問題不容易定位 |
| 不知道哪裡慢 | 只知道使用者覺得慢,但不知道是哪一段造成 |
| 不知道哪裡錯 | 錯誤可能發生在中間某個服務 |
| 缺少全局視角 | 很難看出整個系統的服務依賴關係 |
3. X-Ray 可以做什麼?
| 功能 | 白話說明 |
|---|---|
| Distributed Tracing | 追蹤一個請求經過哪些服務 |
| Service Graph | 視覺化顯示服務之間的關係 |
| Bottleneck Analysis | 找出哪個服務最慢 |
| Error Tracking | 找出錯誤發生在哪個服務 |
| Request Analysis | 查看單一請求的完整路徑 |
| SLA 檢查 | 確認請求是否在預期時間內完成 |
| Impact Analysis | 判斷哪些使用者受到影響 |
4. 適合使用 X-Ray 的場景
| 場景 | X-Ray 的價值 |
|---|---|
| 微服務架構 | 看清楚服務之間怎麼互相呼叫 |
| Serverless 架構 | 追蹤 Lambda、API Gateway、DynamoDB 等流程 |
| 使用 SQS / SNS | 追蹤非同步流程中的問題 |
| API 回應變慢 | 找出是哪一段造成延遲 |
| 使用者回報錯誤 | 查某一筆 request 的完整路徑 |
| 系統偶發異常 | 找出哪個服務出錯或被 throttling |
5. X-Ray 流程圖
6. CloudWatch Logs vs X-Ray
| 工具 | 主要用途 | 白話理解 |
|---|---|---|
| CloudWatch Logs | 查看單一服務或應用程式的 log | 看每個服務自己寫了什麼紀錄 |
| AWS X-Ray | 追蹤一個請求跨多個服務的完整流程 | 看 request 從頭到尾走過哪些地方 |
7. 實務理解
CloudWatch Logs 看的是 log,X-Ray 看的是 request 的旅程。
如果只是單一程式錯誤,看 log 就可以。 如果一個請求跨很多服務,X-Ray 會更適合。
8. X-Ray 的核心價值
X-Ray 最重要的價值是快速定位問題。
當使用者說系統很慢或功能失敗時,你可以用 X-Ray 看出:
- 請求經過哪些服務
- 哪個服務花最多時間
- 哪個服務回傳錯誤
- 哪裡發生 throttling
- 哪些使用者可能受到影響
9. 關鍵字整理
AWS X-Ray Distributed Tracing Service Graph Troubleshooting Bottleneck SLA Throttling Microservices Serverless Request Trace
10. 最後總結
AWS X-Ray 是用來追蹤分散式系統請求流程的服務。 它可以幫你看出一個 request 從哪裡進來、經過哪些服務、哪裡變慢、哪裡出錯。
當系統變成微服務或 Serverless 架構時,X-Ray 可以補足單看 log 不容易追查問題的缺口。
沒有留言:
張貼留言