從漸強的 LINE Webhook Event 監控,看 LINE 當機事件

2020/11/09 下午 1:33 分左右,LINE 發生了較大規模的當機事件,漸強透過監控系統,第一時間發現問題,也間接從第三方的角度記錄了這場驚魂記。

(圖一)根據時間紀錄的 LINE webhook event 總流量,跟總處理量

漸強實驗室的產品 MAAC 整合了許多 LINE 的功能,其中包括一些發送訊息 API 的串接,跟利用接收 LINE webhook events 的接口,來實現的一些機器人自動回覆功能。

LINE webhook events 是當使用者操作 LINE 的時候 (ex. 加入官方帳號、說話、按 richmenu 或者是傳圖片等等…)時,LINE 伺服器會把這類的事件,傳送到官方帳號有串接 webhook 的伺服器,來讓官方帳號實作一些客製化的機器人應用,而漸強實驗室的 MAAC 上,串接了 200 多家台灣各大品牌的官方帳號,所以 LINE webhook events 對漸強的系統功能來說,是非常重要的一環。

因為許多功能,都倚賴 LINE webhook events 來完成,所以漸強實驗室利用現在被非常廣泛使用在監控系統的 Prometheus ,對 LINE webhook events 做了非常完善的監控機制。實作上主要是搭配 prometheus-operator 生態系在 Kubernetes 叢集上做部署,結合了 Prometheus + Alertmanager + Grafana 的經典組合,做到監控可視化跟事件通知。

到底漸強做了哪些監控呢?

  • 最基本根據時間紀錄的總流量,跟總處理量
  • 根據不同官方帳號所切分的流量
  • 根據不同 webhook event type 所切分的流量
  • 每個 wehbook 挾帶的 events 數量
  • 每個 event 所處理的時間
  • Reply token 過期數量
  • 堆放 event 的 queue 被消化速度

以下貼上根據不同 webhook event type 所切分的流量,跟圖一來觀察這次的當機事件:

(圖二)根據不同 webhook event type 所切分的流量

大家可以觀察到從 13:34 分開始到 13:50 左右,漸強這邊是沒有接到任何 event 的,直到 13:50 分左右恢復,event 才突然噴發一波,然後又回到正常值,此時應該是恢復了一般對話的功能,然後 webhook event 的部分後來又斷斷續續的時有時無,當然詳細的問題可能也是要等 LINE 官方來做宣布,不過經過這次的事件,大家應該也理解到我們依賴 LINE 來作為通訊軟體,影響我們有多深!

其實當時漸強系統處在一個非常清閒的時刻,通常流量大的時候會到上萬 events/min,當時我們發現,系統開始噴出一些 LINE 伺服器因為 API 串接回覆的錯誤,然後 Webhook events 就消失了,工程師們開始著手一些錯誤處理,跟思考 LINE 恢復後,有哪些功能是會受影響的,而我因為負責 Infrastructure 當下發現不是漸強系統出問題後,就開始觀察跟截圖監測系統數據,來跟大家分享我們的監控系統所觀察到的現象。

這邊衷心希望 LINE 的工程師們能夠快點恢復系統穩定,身為一個也要負責管理系統的工程師,管理跟 LINE 串接的行銷平台,在雙十一接近的時刻,真的要皮繃緊一點啊😱。

當然監控系統在漸強不只監控 LINE webhook event,只是剛好跟這次事件有關,即時的監控跟通知可以說是系統中非常重要的一環,可能也是除了鬧鐘以外最常叫醒工程師的東西(誤XD,有一個好的監控系統,對即時問題的發現,跟系統優化都是非常有幫助的,歡迎大家任何問題的話,都可以提出來討論!

最後還是辛苦了 LINE 的工程師們,非常快速的就把通訊的功能恢復!

--

--