前言
大家好,以下是我在 COSCUP 2024 所分享的內容,帶大家了解在日常開發之餘,Side Project 也能夠透過 Status Page 來了解監控的重要性,以及如何透過 AI 來初步分析錯誤的發生原因,接著就一起往下看吧!
什麼是 Status Page?
Status Page 是一個專門用來確認與查看系統、服務或是各種應用程式執行狀態的網頁。除了監測狀態,大部分也都能接上各家通知系統,當服務出現狀況時,可以即時通知服務開發者,通常 Status Page 的功能包括:
- 即時狀態:顯示當前服務的執行狀態,大致份為「正常」、「部分中斷」、「完全中斷」…etc
- 歷史記錄:記錄過去的服務中斷事件、維護活動和其他相關事件,更多可以往後推算 SLA、SLO…etc
- 通知:讓用戶訂閱狀態更新通知,透過電子郵件、通訊軟體或其他方式接收通知
使用 Status Page 的優點
- 對內部開發團隊來說,它能即時更新狀態、防止問題擴大、降低維護成本、提高跨團隊的資訊共享和透明度,並節省溝通時間- 對外部客戶來說,狀態頁面能幫助他們確認問題來源、提高對服務的信任度、提供透明度和可追溯性,並減少對客服的依賴
每當服務越來越多時,很多時候都分身乏術,或許大家可以考慮架設一個 Status Page 來監控自家服務,幫忙分攤一些 effort
為什麼要自架 Uptime Kuma?他又是什麼?
Uptime Kuma 是一個開源且能夠自行管理的監控工具,專門用來監控各種網站和服務的可用性。以下簡單列出一些使用 Uptime Kuma 的優點:
- 開源和免費:開源的監控系統,任何人都可以根據自家需求免費使用和調整
- 自主管理:你可以在自己的伺服器上運行 Uptime Kuma,完全掌控數據和配置,確保數據隱私和安全。
- 簡單易用:Uptime Kuma 提供直觀的用戶界面,易於設置和使用,適合各種技術水平的用戶。
- 多種監控選項:支援多種監控類型,包括 HTTP(s)、TCP、Ping、DNS、Push 等,滿足不同的監控需求
- 各種通知管道:如電子郵件、Slack、LINE Messaging API、Webhook…etc,確保重要的狀態變更能夠及時傳達
- 歷史數據和報告:提供詳細的歷史數據和報告,幫助你分析服務性能和可用性
架設建議
很多時候服務都會放在同一家的雲上(ex: Verda, GCP, AWS..),但很多時候發生問題時都會是在不同的網路下發生,為了讓監控上能夠更有說服力,會建議將 Status Page 架設在不同的雲上,即便今天雲發生了任何事件,都不會影響到監控系統。
以我自己來說,個人的 Side Project 都放在 GCP 上,而 Status Page 則是放在 fly.io 上面,如果想試看看可以參考我的 GitHub
如何整合?怎麼讓他人聽懂工程師的語言?
對比我工作經驗,以及周遭朋友的工作上,很多時候工作內容都會透過 LINE 傳來傳去,很多時候除了公司最大的群組之外,另外都會有各式小群組去討論不一樣的事情,因此很多時候需要有個 LINE Bot 自動化消化一些錯誤處理,讓第一線工程師可以趕快滅火,以下快速說明可以如何整合
想像中 Status Page 能幫到的地方
當服務遇到任何問題時
- 先透過 webhook 傳進 LINE Bot Server
- Server 依照相關 log 查詢服務的倉庫裡面是否有囤放其他 log (prometheus, loki, SQL…etc)
- 將相關資料傳送給 Server 去分析 (prompt URL) 並傳到 LINE 群組裡
- 依照嚴重程度決定要轉發到哪個群組
- 分享案例:Error Log 也可以依照嚴重程度決定讓 Bot 自動發到指定群組,普遍會有 1~3 個群組,大的服務有機會到 5 個
- 適時的接上 oncall 系統也是不錯
- 人手一個 LINE,透過 LINE Bot 來推送訊息可以做更多客製化的內容
結論
普遍的 Error log 在網路上通常都會有解法,同等來說 AI 在訓練時應該也都有放入相關的材料,因此依照這些日常系統出現的錯誤來說,都可以透過 AI 有條理的幫忙分析,更直接點可以幫忙 Senior 去教育 Junior 對於錯誤分析的體感,讓團隊對於系統的熟悉程度能夠更快 ✍️
有鑒於最近許多 Vision 的 AI 分析越來越多,個人用起來的體感真的滿不錯,雖然費用不便宜,但各家 AI 也應該都還有免費方案可以用
最後,有些跟資安或是個資的東西其實不適合透過 API 打給雲端廠商,有些開發者應該會被要求要自架 AI model(Gemma || Llama),這時可以透過 GROQ 這個服務測試看看,雖然在串接上還是透過 API 實驗,但至少可以先測測 model 帶來的火力,再決定要不要花時間架起來~
如果以上的內容對你有幫助,歡迎各位分享出去!
在 Fly.io 上架設 Uptime Kuma 監控 Side Project
活動小結
立即加入「LINE 開發者官方社群」官方帳號,就能收到第一手 Meetup 活動,或與開發者計畫有關的最新消息的推播通知。▼
「LINE 開發者官方社群」官方帳號 ID:@line_tw_dev
關於「LINE 開發社群計畫」
LINE 於 2019 年開始在台灣啟動「LINE 開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦 30 場以上的活動。歡迎讀者們能夠持續回來查看最新的狀況。詳情請看: