AWS 監控與疑難排解
John Q. Martin
Principal Consultant
從你的追蹤資料自動產生:無需手動設定

一眼判讀:綠色=正常 · 橙色=延遲 · 紅色=停止

開啟服務地圖時,先找不是綠色的部分。
點任一節點可看:回應時間分佈、HTTP 狀態分解、錯誤類型。

API Gateway (50ms)
-> OrderService (50ms)
-> PaymentService (100ms)
-> External API (200ms)
Total: 400ms
External API=總延遲的 50%
比較替代路徑:
OrderService -> DynamoDB
Total: 120ms (快)


Query 1 (10-30ms)
-> Query 2 (30-50ms)
-> Query 3 (50-70ms)
-> Query 4 (70-90ms)

Get user list (10-20ms)
Get user 1 details (20-30ms)
Get user 2 details (30-40ms)
... ×100 sequential queries
修正:批次查詢、預先載入(eager loading)
修正:批次請求、訊息佇列、快取

修正:設定預置並行、最佳化初始化
Service A [Error]
-> Service B [Timeout 5s]
-> Service C [Timeout 5s]
-> Database [Timeout 5s]
相同的逾時區塊沿追蹤階層往下堆疊
修正:逾時、斷路器、後援機制

比較群組:
response_time > 1000ms,依持續時間排序
# 高延遲警示
aws cloudwatch put-metric-alarm \
--alarm-name HighLatency \
--metric-name ResponseTime \
--namespace AWS/XRay \
--statistic Average \
--period 300 \
--threshold 1000 \
--comparison-operator GreaterThanThreshold
# 高錯誤數警示
aws cloudwatch put-metric-alarm \
--alarm-name HighErrorCount \
--metric-name ErrorCount \
--namespace AWS/XRay \
--statistic Sum \
--period 300 \
--threshold 50 \
--comparison-operator GreaterThanThreshold
AWS 監控與疑難排解