一益咬、 前言
很多公司都會搭建自己的錯誤監(jiān)控系統(tǒng)戳护。我自己想嘗試搭建監(jiān)控系統(tǒng)嚎货,源于我們公司內(nèi)部小程序線上報錯,不能及時定位問題虑凛,剛好看到有博文在推薦sentry
,于是我饒有興趣去關(guān)注它碑宴。
二、注冊服務(wù)
- 在官網(wǎng)上注冊服務(wù)
- 搭建自己的服務(wù)
1桑谍、在官網(wǎng)上注冊服務(wù)
1)注冊個人或公司信息
依照個人或公司需求填寫如上信息延柠。因為我是個人項目測試,填寫的是自己相關(guān)的信息
2)創(chuàng)建項目
創(chuàng)建之后會有個快速的指導(dǎo)
我這里是react
項目锣披,在index.jsx
的文件里面輸入,直接拷貝過來即可
3)根據(jù)指導(dǎo)的提示贞间,測試錯誤
return <button onClick={methodDoesNotExist}>Break the world</button>;
4) 驗證錯誤贿条,會看到控制臺已經(jīng)發(fā)送sentry請求了
打開sentry后臺就可以看到錯誤已經(jīng)上報了
2、自己搭建服務(wù)(docker)
要求
Docker 17.05.0+
Compose 1.23.0;
最小的儲存空間
2400RMB
其實方法很簡單的增热。就是git clone
倉庫整以,然后./install.sh
,這個步驟很耗時間,因為它依賴非常多钓葫。如果順利的話悄蕾,安裝成功直接運行
docker-compose up -d
sentry-onpremise啟動成功
打開localhost:9090
就可以和在官網(wǎng)上一樣
安裝的時候可能會報票顾,我還給官網(wǎng)提了一個issue础浮。提完之后發(fā)現(xiàn),已經(jīng)有類似的issue了https://github.com/getsentry/onpremise/issues/490
Connection to Kafka failed
解決辦法就是
docker-compose down
docker volume rm sentry-kafka sentry-zookeeper
docker volume rm sentry_onpremise_sentry-kafka-log sentry_onpremise_sentry-zookeeper-log
./install
最后我順利跑起來了奠骄。公司的話可以叫運維在服務(wù)器上部署豆同,記住至少需要2.4G
的空間和依賴于docker
三、上傳sourceMap到sentry
上傳sourceMap的目的是為了出錯含鳞,能夠方便具體定位到哪行源代碼
官網(wǎng)了提供了幾種方式
我這里用了sentry-cli
,所以下面演示用sentry-cli
1)安裝sentry-cli
npm i -g @sentry/cli
sentry-cli -V 查看版本
2) 登錄拿到Auth Tokens
sentry-cli
默認(rèn)是連接到senty.io
,如果想要連接自己的輸入影锈,則
sentry-cli --url https://myserver.invalid/ login
之后打開
3)在自己的根目錄下新建~/.sentryclirc
- mac的
~
代表/user/你的用戶名
- 建議用vim創(chuàng)建比較方便
vim ~/.sentryclirc/
i 鍵進入插入模式
esc 退出插入模式
:wq! 保存并退出
:q! 不保存退出
將auth token
拷貝過來,其他同時也需要配置
[auth]
token=7c44fb0b77b7430b93cdad42cd8f5ad6386fcc8d7dd6477e86b48c7aa490d793
[defaults]
url=https://sentry.io/
org=116e23a13af3
project=nanlan-blog
之前我糾結(jié)的org和project到底怎么查看蝉绷,后面查了一些資料鸭廷。
在Organzation Settings
的General Settings
里面查看org
在
Project Settings
的General Settings
里面查看project
4) 上傳
- 上傳的時候創(chuàng)建一個
release
名字 - 然后使用
upload-sourcemaps
上傳,后面的url是本地的url
,即是打包后build
或者dist
文件加下面的js - 默認(rèn)是以
.map
或者.js
的文件熔吗,你可以更改擴展名 - 最終發(fā)布
這里有個坑辆床。當(dāng)時我一直上傳不上去,忘記什么問題了。 我是這么上傳的
sentry-cli --log-level=debug releases files v1.0.2 upload-sourcemaps ./build --rewrite
./build
是自己本地打包的文件夾
上傳成功
記住免費是的40MB
在release
菜單下面桅狠,根據(jù)剛剛設(shè)置的release
名字讼载,可以查看Artifacts
下面有剛剛上傳的文件
官網(wǎng)有這種寫法
sentry-cli releases files VERSION upload-sourcemaps . --url-prefix '~/scripts'
- --url-prefix是線上的url
- ~是你網(wǎng)站的域名,比如
http://localhost:9000
以下來自官方的截圖
有個問題中跌,到現(xiàn)在還沒有解決咨堤,就是出錯之后我并沒有定位到源碼的位置,不知道為啥
release
是對的
四漩符、設(shè)置時區(qū)
篇(二)會解決上一個問題(目前還在看)一喘,以及
- 上報的規(guī)則
- 區(qū)分環(huán)境
- 與
git commit
關(guān)聯(lián) - ...
才疏學(xué)淺,有什么意見或建議提出來嗜暴,相互交流