Sentry部署

postgresql初始化

1
2
3
4
postgreSql    createdb -E utf-8 sentry
alter role feteam superuser;
sentry upgrade
sentry config generate-secret-key

supervisor程管理工具

Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程。
通过Supervisor 开启sentry-web、sentry-worker、sentry-cron

1
2
3
4
5
6
7
supervisord  启动Supervisord
supervisorctl stop program_name 停止某个进程
supervisorctl start program_name 启动某个进程
supervisorctl restart program_name 重启某个进程
supervisorctl stop all 停止全部进程
supervisorctl reload 载入最新的配置文件(sentry.conf.py、config.yml),停止原有进程并按新的配置启动、管理所有进程
supervisorctl update 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

原理

Sentry接入

先新建sentry项目

在sentryyy.com的xxx组织下面新建vue项目

建议项目名字跟git上的统一,方便维护

配置index.js

在index.js文件配置

配置FEC

配置fec开启sourceMap,并且注入sentry变量

注意

1
SENTRY_DNS: JSON.stringify('https://a30b93a6aae34215bbecd08c217cbc6a@sentry.yy.com/22')

要替换成你新建工程的dns
如何查看工程的dns

配置gilab-ci

配置gitlab-ci

参数解读

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
variables:
GIT_STRATEGY: none
SENTRY_PROJECT: $CI_PROJECT_NAME  #对应你第一个sentry新建的项目名字
SENTRY_VERSION: $CI_COMMIT_SHA
SENTRY_URL: https://sentry.yy.com/
SENTRY_AUTH_TOKEN: 2778bb1f7633486bb21f4befd9be63e534a26c34916643aabc0dd97ec796e38f # 这个可以改成你的token
SENTRY_ORG: hago #我们组织的名字
before_script:
- npm i -g @yy/dragont-preset-feteam @sentry/cli --unsafe-perm #多安装了@sentry/cli插件
script:
- sentry-cli releases new $SENTRY_VERSION # 新建一个release分支
- sentry-cli releases files $SENTRY_VERSION upload-sourcemaps ./output/assets/js --url-prefix "~/assets/js" --no-rewrite --validate #上传souurceMap到你的release分支,注意--url-prefix 参数要跟你的实际工程对应
- sentry-cli releases finalize $SENTRY_VERSION
- sentry-cli releases files $CI_COMMIT_SHA list
- sentry-cli releases deploys $CI_COMMIT_SHA new -e $CI_COMMIT_REF_NAME
- sentry-cli releases deploys $CI_COMMIT_SHA list
- rm ./output/assets/js/**.map # 最后一步删掉sourceMap,防止代码发到正式环境
- dragont ci

具体跑成功的ci

最后一步,去掉eslint的报错

Eslint配置

实际接入运行情况

每次在master分支上fec o就会新建一个release分支

每个release分支包含上传的sourceMap

每个拦击到的错误