iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0
Build on AWS

亞馬遜熱帶雨林生存日記系列 第 21

Day 21: 使用AWS SNS設計文章發佈通知—如何搭配CloudWatch Metrics和Dashboard追蹤系統問題 (上)

  • 分享至 

  • xImage
  •  

昨天在講如何用 API Gateway 和 Lambda 設計和實作文章發佈通知系統,今天要拿這個系統當範例,來聊聊可以怎麼使用 CloudWatch 的 Metrics 和 Dashboards 協助 debug 系統上線後可能發生的問題,有哪些指標可以協助 debug 。

CloudWatch Metics and Monitor

為了可以模擬系統上線的真實情境,這篇文章會使用 JMeter 產生 10 個 thread 連續呼叫發佈文章的 API ,模擬很多人在同時發文的情境。

在設定好 JMeter 並開始執行後,可以看到居然出現了不少的 500 Internal Server Error

這時候第一時間也許可以先到 API Gateway 查看 Dashboard 。

然後發現 API Gateway 確實回傳了不少 5xx error

翻出之前畫的系統架構圖,可以知道 API Gateway 後面接的是 Lambda ,猜測出現 500 Internal Server Error 會不會是 Lambda 的程式碼沒寫好在搞鬼呢?!

接下來可以到 Lambda 的 Console 查看 Monitor ,觀察 Error count and success rate 這個 metrics ,如果是程式碼有問題,那 Error count 不太可能是 0 。

在看了一下 Throttles 這個 metrics , 發現居然不少到 Lambda 的 Request 被 Throttled 掉!懷疑是不是 Lambda Provision 的數量不夠!

Configuration 確認 Concurrency ,可以看到 Reserved concurrency 只有 2 ,扛不住一次被 10 個左右的 Request 暴打!

這邊只是一個簡單的 5xx 問題,當然正式上線的系統會有更多複雜的情境,會需要更多的 metrics 協助 debug ,如果只能在不同 Service 之間跳來跳去,尋找不同 metrics 查問題,似乎非常不方便!這時候就可以善用 CloudWatch 的 Dashboard 抓出需要的 metrics 一起觀察這些指標,明天再來聊聊這一塊!


上一篇
Day 20: 使用AWS SNS設計文章發佈通知—如何搭配 API Gateway 和 Lambda 設計系統
下一篇
Day 22: 使用AWS SNS設計文章發佈通知—如何搭配CloudWatch Metrics和Dashboard追蹤系統問題 (下)
系列文
亞馬遜熱帶雨林生存日記23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言