使用 Slack Incoming Webhook 為 Express 應用程式建立警報通知
有時候我們可能需要檢查應用程式的錯誤日誌,來確認錯誤的發生原因。Slack 作為團隊內部的溝通工具非常方便,其 Incoming Webhooks 提供 API 可以直接向 Slack Channel 發送訊息。本文將介紹如何使用 Slack Incoming Webhooks API 為 Express 應用程式提供即時的錯誤警告通知服務。
Using Slack’s Incoming Webhooks API
為了使用 Slack 的 Incoming Webhooks API,我們需要以下幾個步驟:
- 請至 Incoming WebHooks 頁面,如果尚未登入 Slack ,請點選
Sign in to install
。 - 點選
Add Configuration
,可以選擇既有的 Channel,也可以選擇 create a new channel 。然後按下Add Incoming WebHooks integration
。 - 設置 Incoming WebHooks ,選項很多,可依個人喜好進行配置。最重要的是取得
Webhook URL
。完成後請點選Save Settings
。
到這裡,我們的設定就已經完成了,您可以從官方的 Slack API 文件查看詳細的使用說明。
Sending Express Server Error to Slack
Express 目前是 Node.js 使用最廣泛的 Web 開發框架,這裡就不多做介紹。為求方便,我已經實作 express-error-slack 模組,使用方式非常簡單,只要掛上 middleware ,設定剛剛從 Slack 上取得的 Webhook URI
即可,以下是一個簡單的範例:
1 |
|
啟動 Express Server 後,只要發生 Http Status 4xx 或 5xx 的錯誤,就會將錯誤的 call stack 以及 request log,立即發送至所設定的 Slack Channel。以下為結果範例:
4xx
5xx
如果使用上有任何問題及想法,歡迎 Pull Request 或者聯繫我。
更新:新增一個 option.skip
的可選自訂函式,以便決定是否忽略錯誤或將錯誤發送至 Slack。
References
本部落格所有文章除特別聲明外,均採用 CC BY-SA 4.0 協議 ,轉載請註明出處!