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

































