免費適用于個人開發(fā)者的異常監(jiān)控服務(wù):sentry
隨著一些云服務(wù)的發(fā)展與興起,應(yīng)用部署及上線的成本越來越低,甚至可以實現(xiàn)零成本部署。本系列文章將介紹如何使用薅羊毛的方式來搭建各個項目。
目前,首先更新在博客中,見: https://shanyue.tech/no-vps/
在以前的章節(jié)中,我們可以使用免費的云服務(wù)來完成一個弱存儲的前端應(yīng)用
- 使用 Vercel (或 Netlify) 部署前端應(yīng)用
- 使用 Vercel Serverless Function (或其它 Serverless 方案) 部署簡單的后端 API
此時,尚缺一個異常報警系統(tǒng),可以用 Sentry 搞定。Sentry,官網(wǎng)
「至于登錄 Sentry,直接使用 Github 登錄即可?!?以下對 Sentry 的使用做一個簡單的介紹。
術(shù)語
基本屬于為以下兩個
- Event: 應(yīng)用端每次觸發(fā)異常,就是一次 Event,會上報到 Sentry 中
- Issue: Sentry 把同一位置觸發(fā)的異常聚合在一起就是 Issue,「在 Sentry 中以 Issue 為主要單位分析問題」
多想一步:Sentry 如何把 Event 聚合成 Issue,即如何確認(rèn)多個 Event 都是在同一位置觸發(fā)的?
上報
作為一個專業(yè)的異常上報服務(wù),Sentry 支持各式各樣的語言,如下所示:
- Javascript
- Go
- Python
- Ruby
- Java
基本上適用于 Serverless 運行時的語言都可以接入 Sentry,這是一個振奮人心的好消息。
關(guān)于各大語言及框架可如何接入,直接參考官方文檔 Sentry Supported Platforms (opens new window)[1],最簡答最基本的方式就是直接捕捉異常并上報。
- try {
- aFunctionThatMightFail();
- } catch (err) {
- Sentry.captureException(err);
- }
報警 (Alert)
報警規(guī)則 (Alert Rule)
如以下是常見卻容易被忽略的報警規(guī)則
- 當(dāng)只有生產(chǎn)環(huán)境下的 Issue 才會觸發(fā)報警
- 當(dāng)只有異常級別大于 Error 才會觸發(fā)報警
當(dāng)然,你也可以個性化定義一些 Alert Rule
Create Alert Rule
報警方式
當(dāng)出現(xiàn)問題時如何受到通知?
這當(dāng)然不能夠一直忙等待空輪詢,否則過于耗費精力。當(dāng)然要使用發(fā)送郵件這類通知類型的方式了,除了郵件外還有其他的不過需要集成到 Sentry 中。
- 發(fā)送郵件
- 釘釘消息 (需集成)
- 手機(jī)短信 (需集成)
- 手機(jī)電話 (需集成)
分析
1. 第一次/最后一次報錯
- First Seen: 第一次報錯時間有助于捕捉到該異常發(fā)生的版本號
- Last Seen: 最后一次報錯時間決定這個異常是否已解決,或者是否還需要解決
報錯時間
2. 獲取到 Release
Release 就是版本號,這個需要在代碼中手動配置。通過 Release 可以
- 快速推斷出出現(xiàn)問題的 Commit,并指定給對應(yīng)的提交者
- 對該 Release 出現(xiàn)的問題進(jìn)行聚類
Release
Original URL[2]
Reference
[1]Sentry Supported Platforms (opens new window):
https://docs.sentry.io/platforms/
[2]Original URL:
https://shanyue.tech/no-vps/sentry.html
本文轉(zhuǎn)載自微信公眾號「全棧成長之路」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系全棧成長之路公眾號。