AWS X-Ray


X-Ray

X-Ray 是分散式追蹤(Distributed Tracing) 服務用來分析、除錯 微服務/Serverless 應用中的延遲瓶頸、錯誤鏈、依賴地圖、請求生命週期


X-Ray 解決什麼問題

傳統監控X-Ray
只能看單一服務 log看整條 Request Chain
重要錯誤難追回每個 node 都能 Trace
找不到延遲根源自動顯示瓶頸在哪一段

特別適合 Lambda, API Gateway, ECS, EKS, SQS, DynamoDB, RDS 等


主要功能

功能説明
Service Map自動繪製系統依賴與延遲視圖
Trace View單一 Request 完整路徑
Segments/Subsegments詳細的 API, DB 呼叫鑑識
Annotations/Metadata標籤與 debug 資料
Sampling Rules控制追蹤比例降低成本
Errors/Faults 分析HTTP 4XX/5XX 決策報告

X-Ray 架構概念

AWS Services > TraceHeader > X-Ray SDK(Instrument Code) > X-Ray Daemon/Embedded Agent > X-Ray Service > X-Ray Console(ServiceMap/Traces)


Segment/Subsegments 核心概念

名稱行為
Segment一個服務的頂層追蹤資料
Subsegment服務內部細項(DB, 外部 API, 邏輯)

EX: Lambda Function > Segment 其對內 DynamoDB, S3 > Subsegment


與 Lambda 整合

方法行為
Active Tracing(最常用)自動產生 trace
X-Ray SDK(Python/Node/Java)增加自訂 subsegment

在 Lambda 開 Active Tracing > API Gateway Trace Header 會自動傳遞


Sampling 成本控制

  • 預設: 每秒 1 個請求固定抽樣 + 5% 流量抽樣
  • 可自訂 rules + 不同 service 使用不同 sampling

高流量時強烈建議啟用 Sampling


資訊安全

隱私/加密支援
In-transit encryptionTLS
At-rest encryptionKMS
HIPAA, PCI, FedRAMP支援

X-Ray 預設不會紀錄請求 Body,可手動 Mask Sensitive Data


ServiceMap 範例

Client > API Gateway > Lambda Function > DynamoDB and S3

線條顏色顯示延遲與錯誤率,快速找出瓶頸 例如 DB Call 變慢


常見使用場境

Scenario為何用 X-Ray
Serverless Debug(常見)Lambda Link DB/API 的效能表現根本原因
Microservices Architecture跨 request chain 可視化
高延遲與 Timeout哪一段卡住立刻看到
合規 Audit完整 Request Trace

成本

依照 Trace 儲存量 & API Requests 計價
-> Sampleing 成本控制可以省很多錢


CloudWatch VS X-Ray

CloudWatchX-Ray
Logs + MetricsDistributed Tracing
看指標, 單一服務看整個請求生命週期
NOC-level 監控Developer-level Debug

兩者互補,而不是替代


AWS - X-Ray Insight


X-Ray Insight

自動偵測應用異常行為的分析功能,在 X-Ray Trace 基礎上,找出延遲飆高/錯誤玉突增的問題,並提供 root-cause 分析建議

簡單說

  • X-Ray 分散式追蹤
  • X-Ray Insight 自動異常偵測 & 異常判斷

他能發現哪些問題

Insight 問題說明
Fault5XX/Service Erro 突增
ThrottleAPI Gateway or Service 限流
Latency回應時間長, 瓶頸飆升
Availability無法成功處理 Request

特別適用於 Serverless + Microservices 高複雜度架構


Insight 發生時會顯示什麼

資訊意義
問題起點時間何時開始出現異常
異常資源與節點哪個為服務變慢/出錯
Trace Samples問題請求樣本
Suggested root cause可能的起因

Service Map 也會高亮問題服務


Insight Workflow

X-Ray 收集 traces > 自動建立基本模型(正常行為) > 異常(錯誤率/延遲提高) > Insights triggered > Console/Email 通知

不需要手動設定規則 > 自動學習系統行為


Security & Logging

  • 支援 CloudWatch 統一事件通知(SNS, OpsCenter, PagerDuty)
  • 每次 Insight 都記錄到 CloudTrail(可審計)

CloudWatch Alarm VS X-Ray Insights

CloudWatch AlarmX-Ray Insights
依數據門檻告警自動偵測異常 Pattern
Metrics-basedRequest trace-based
純量資料深度 root-cause(DB call, 外部 service)

Insights = Trace 做智慧告警


Reference

  • AWS - AWS X-Ray concepts
  • AWS - Using X-Ray insights
更新於