改善完前端的頁面,要實作新功能之前,有一些維護事項或是小工作可以先做,因為系統功能逐漸變多,需要加上一些監控機制,讓我們可以即時知道錯誤,及時修復。
今天會介紹如何使用 Sentry
來監控系統。
當網站平台上線後,我們會需要關注幾個重點:
Prometheus
Grafana
來協助收集網路流量、CPU、RAM的使用量,與設置警示。Logger
收集系統的錯誤
error.log
給開發者查閱。Sentry
協助管理錯誤。Sentry 是一個開源的系統錯誤監控軟體,可以嵌入在各種語言各種框架環境之中,提供會員免費的額度與定量空間,協助會員收集錯誤,也可以協助監控系統效能。若是有能力自行管理主機,也能下載原始碼自行部署。
詳細介紹可參考
申請Sentry 帳號
建立組織(Organization)
建立專案(Project)
這裡可以看到多種平台都可以適用,可以依照自身需要,我們就選擇Django。
設定專案名稱
簡易教學
官網會提供簡易的教學,教我們如何使用Sentry,要注意的是每個專案會有一個專屬的DSN,設定同一個DSN,就會由同一個Sentry專案來收集資訊,這點要注意一下。
traces_sample_rate
是要設定效能收集的頻率,生產環境中會調小。
觸發第一個錯誤,並查看錯誤資訊。
官網會教我們觸發一個 1/0 的錯誤
在本地會出現下圖
在Sentry 專案中則會收到Issue
Issue 中會詳細說明錯誤發生的地方,瀏覽器、網站路徑、Cookie、Session等,跟Djano預設的錯誤資訊差不多。
設定環境變數
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration
SENTRY_CLIENT_DSN = os.getenv('SENTRY_CLIENT_DSN')
sentry_sdk.init(
dsn=SENTRY_CLIENT_DSN,
integrations=[
DjangoIntegration(),
],
traces_sample_rate=0.01,
send_default_pii=True
)
安裝與設定Sentry相當簡單,當收集到錯誤時,也會寄信到信箱通知我們,而且會將錯誤資訊紀錄得非常清楚,提供我們非常好的除錯資訊。雖然免費版只能一個人單獨使用,但對於初期的專案來說已經是相當實用。
台南不需要米其林
- 專案網址
- 專案程式碼
- 專案文件與鐵人賽文章
- 參賽團隊 台南巷弄美食獵人