摘要:本地應(yīng)用回到前端項目中,在添加對應(yīng)的,指定版本后,每次上報的異常就會分類到該版本下。管理目前來說,前端項目基本都會壓縮混淆代碼,這樣導(dǎo)致捕捉到的異常堆棧無法理解。下篇打算寫一下前端異常監(jiān)控的分類,也就是需要監(jiān)控哪些異常,敬請期待
原文首發(fā)于我的個人博客: https://lonhon.top/
之前的《基礎(chǔ)篇》主要介紹了Sentry和基本部署流程,在實際使用過程中你會發(fā)現(xiàn)Sentry受歡迎的原因:除了單純的監(jiān)控異常還有溯源、分發(fā)任務(wù)等一條龍服務(wù)。本篇文章主要講述Sentry中較好的拓展功能,包括:
Release控制,分別處理線上、測試環(huán)境的異常
通過SourceMap直接查看出錯js源碼
報警郵件發(fā)送規(guī)則
Issue關(guān)聯(lián)GITHUB/GITLAB
上篇文章已將Sentry的各種文檔、社區(qū)貼出,本文更多是操作性的東西,代碼、圖片較多。
準(zhǔn)備工作需要安裝Sentry對應(yīng)的命令行管理工具 sentry-cli,方式如下:
npm i -g @sentry/cli
安裝完成后可通過 sentry-cli -V 查看版本。
生成token
點擊Sentry頁面左下角頭像,選擇API后就可以生成token,記得勾選 project:write 權(quán)限。
登錄
$ sentry-cli --url https://myserver/ login
回車后輸入上一步獲得的 token 即可,如果用的Sentry的SaaS可以不指定 url
Release控制在開發(fā)過程中我們希望不監(jiān)控本地環(huán)境下的異常,測試環(huán)境的和生產(chǎn)環(huán)境的異常分離,所以就需要Release來進(jìn)行“異常”的版本控制。
創(chuàng)建Releasesentry-cli releases -o 組織 -p 項目 new staging@1.0.1
這里的 staging@1.0.1 就是我們指定的版本號. -o -p可以通過頁面左上角可以看到。現(xiàn)在我們可以通過創(chuàng)建多個版本號來進(jìn)行異常分類。
同時,也可以通過頁面中"Releases"查看是否創(chuàng)建成功。
回到前端項目中,在config添加對應(yīng)的release,指定版本后,每次上報的異常就會分類到該版本下。
Raven.config(DSN, { release: "staging@1.0.1" }).addPlugin(RavenVue, Vue).install()刪除Release
sentry-cli releases -o 組織 -p 項目 delete staging@1.0.1
注意 刪除某個release時需要將其下的異常處理掉,并將該版本的sourcemap文件清空,完成上面兩步可能還要等待2小時才能刪除,不然會報錯:該版本還有其它依賴。
SourceMap管理目前來說,前端項目基本都會壓縮混淆代碼,這樣導(dǎo)致Sentry捕捉到的異常堆棧無法理解。
我們希望在Sentry直接看到異常代碼的源碼時就需要上傳對應(yīng)的source和map。
1.上傳 SourceMapsentry-cli releases -o 組織 -p 項目 files staging@1.0.1 upload-sourcemaps js文件所在目錄 --url-prefix 線上資源URI
這里需要注意,我們一般會將公共模塊壓縮在vendor.js中,此時可能會出現(xiàn)因為vendor.js.map的文件體積過大導(dǎo)致不能上傳,目前我的做法是不上傳vendor.js和vendor.js.map。
PS: 記得別把map文件傳到生產(chǎn)環(huán)節(jié)了,又大又不安全...
PS: 免費服務(wù)的文件上限為40MB。
2.清空 SourceMap 文件sentry-cli releases files staging@1.0.1 delete --all
也可以選擇在 版本>工件 里點擊一個個辣雞桶進(jìn)行刪除(逃...
3.重要的url-prefix這里的url-prefix可以通過線上看js文件的完整路徑,有可能static不在根目錄下
舉例說明,項目線上資源URI如下:
https://www.baidu.com/asset/js/main.mini.js
我們上傳時文件的url-prefix就應(yīng)該設(shè)置為 "~/asset/js/"
這個坑踩了好幾天才弄明白,反正規(guī)則就是: ~/為網(wǎng)站根目錄,后續(xù)路徑須對應(yīng)source
這個弄好了就能在Sentry上直接看到出錯源碼了:
報警郵件發(fā)送規(guī)則Sentry默認(rèn)會將所有采集到的異常發(fā)送警報郵件,有時我們可能希望只收到某個版本下的警報郵件,這時候就需要刪除默認(rèn)的警報規(guī)則,然后新建自定義規(guī)則。
在項目設(shè)置中找到Alerts,左上角 “New Alert Rule”即可添加設(shè)置報警規(guī)則。
一個比較常規(guī)的規(guī)則引擎,自己配置一下就可以搞定,還是比較簡單。
如不想發(fā)送測試版本的異常,則設(shè)置過濾規(guī)則為 Release : staging 。
Sentry關(guān)聯(lián)項目倉庫后可以直接為該異常創(chuàng)建issue,方便責(zé)任認(rèn)定,順便提高KPI :-)
1.選擇倉庫項目設(shè)置>issue跟蹤 選擇自己所需的倉庫,下面以GITHUB為例
2.關(guān)聯(lián)倉庫點擊上圖中醒目的issue,然后進(jìn)行GITHUB登錄第三方授權(quán),授權(quán)完成后再次點擊“Create New Issue”就會出現(xiàn)下圖了。
3.測試Sentry中創(chuàng)建issue后就可以到我們GITHUB倉庫中查看了,如下
修改sentry-cli默認(rèn)設(shè)置在上面的操作中,大家應(yīng)該發(fā)現(xiàn)每次命令都需要重復(fù)輸入一長串 -o xxx -p xxxx 來指定我們的項目,一點不DRY。
只需要找到當(dāng)前用戶文件夾下的 .sentryclirc 文件添加默認(rèn)組織和項目即可,修改內(nèi)容為如下:
[auth] token=YOUR API TOKEN [defaults] url=服務(wù)器 org=組織 project=項目結(jié)語
以上是自己目前在用的功能,基本涵蓋了常見場景。
當(dāng)然,我還會繼續(xù)挖掘下去,大家遇到問題或者新發(fā)現(xiàn)也可以給我留言,互相交流。
下篇打算寫一下前端異常監(jiān)控的分類,也就是需要監(jiān)控哪些異常,敬請期待~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/107732.html
摘要:是一個日志平臺支持多種語言多種框架在接入的同時也接入了國內(nèi)的相對而言的服務(wù)會比較完善比如上報控制的如果自行搭建可以忽略支持自行搭建服務(wù)當(dāng)然了也很感謝的技術(shù)人員耐心為我解答了幾個問題官網(wǎng)具體接入流程簡單體驗不使用框架注冊登錄創(chuàng)建團隊創(chuàng)建 sentry Sentry是一個日志平臺, 支持多種語言多種框架, 在接入sentry的同時, 也接入了國內(nèi)的fundebug, 相對而言, sentr...
摘要:故而,我們需要在項目出現(xiàn)異常時主動對其進(jìn)行收集上報,分析原因和影響后制定下一步解決方案。所以,我們需要一款成熟的異常監(jiān)控系統(tǒng)來協(xié)助我們。最近在公司項目中部署了,用于項目中異常監(jiān)控,涵蓋了前端后端。 原文首發(fā)于我的個人博客: https://lonhon.top/ 凡事只要有可能出錯,那就一定會出錯 對于任何一個項目而言,本地測試肯定做不到100%覆蓋,而且,我們也不能保證用戶能按照我們...
摘要:我創(chuàng)建了一個名為的項目。錯誤信息查看在后臺找到我們的項目,點擊進(jìn)去就能看到多了一條錯誤信息。它由以下幾部分組成,分別是協(xié)議公鑰私鑰主機路徑一般為空項目。 sentry簡介 Sentry 是一個開源的錯誤追蹤工具,可以幫助開發(fā)人員實時監(jiān)控和修復(fù)系統(tǒng)中的錯誤。其專注于錯誤監(jiān)控以及提取一切事后處理所需的信息;支持幾乎所有主流開發(fā)語言(JS/Java/Python/php)和平臺, 并提供了w...
摘要:對我們來說最大的便利就是利用日志進(jìn)行錯誤發(fā)現(xiàn)和排查的效率變高了。 面臨的問題 程序運行的日志是一個必不可少的東西,可能是一些系統(tǒng)信息,比如?gc 的情況;可能是一些正常的模塊處理信息,比如最近更新的配置;還可能是一些在程序運行中,我們不希望出現(xiàn)的錯誤所帶來的信息。通過日志,可以知道我們的程序是不是在正常地運行,看到錯誤日志,我們還需要利用日志排查錯誤。 我們知道日志如此重要,并樂于記錄...
閱讀 3577·2021-10-15 09:43
閱讀 3498·2021-09-02 15:21
閱讀 2210·2021-08-11 11:23
閱讀 3249·2019-08-30 15:54
閱讀 1940·2019-08-30 13:54
閱讀 3210·2019-08-29 18:35
閱讀 680·2019-08-29 16:58
閱讀 1757·2019-08-29 12:49