# 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 encryption TLS
At-rest encryption KMS
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

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

兩者互補,而不是替代


# AWS - X-Ray Insight


# X-Ray Insight

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

簡單說

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

# 他能發現哪些問題

Insight 問題 說明
Fault 5XX/Service Erro 突增
Throttle API 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 Alarm X-Ray Insights
依數據門檻告警 自動偵測異常 Pattern
Metrics-based Request trace-based
純量資料 深度 root-cause (DB call, 外部 service)

Insights = Trace 做智慧告警


# Reference

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