一个错误监控系统应该做下面这些事情:
当错误发生的时候我们更需要一些辅助信息来帮我们更快的定位错误,比如 JS错误类型、 JS错误信息、JS错误堆栈、JS错误发生的位置以及相关位置的代码;JS错误发生的几率、浏览器的类型,版本号,设备机型等等辅助信息。
配置多个项目如下图:
这个就是你的应用所有的异常:
可以安装一些额外的插件,比如 钉钉机器人、邮件提醒。
MIN_DOCKER_VERSION='1.10.0' //docker -v
MIN_COMPOSE_VERSION='1.17.0' //docker-compose -v
MIN_RAM=3072 # MB //你的内存至少3G
官方在19年的时候提供给了脚本一键生成的方式,仓库在这里onpremise[2]。
git clone https://github.com/getsentry/onpremise
cd onpremise
./install.sh
如果 docker 没有配置国内镜像估计会很慢,提一下配置镜像。
## 有的话就忽略
mkdir /etc/docker
## 没有的直接执行
vim /etc/docker/daemon.json
{
"registry-mirrors" : [
"https://mirror.ccs.tencentyun.com",
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
...
}
中间会有一次让你配置管理员账号密码的过程 下载完毕以后执行。
docker-comose up -d
配置完以后基本上就整个安装过程应该不会有啥大问题,有问题估计是网络问题。
准备
镜像拉取
docker pull sentry
docker pull redis
docker pull postgres
启动
docker run -d --name sentry-redis --restart=always redis ###保证了,异常自动拉起
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry --restart=always postgres
生成唯一秘钥
docker run --rm sentry config generate-secret-key
12345 ###打印出secret-keys,这里最好复制一下,接下来会用到
初始化以及创建Admin
docker run -it --rm -e SENTRY_SECRET_KEY='12345' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade
启动三个服务
### web服务
docker run -d -p 9000:9000 --name my-sentry -e SENTRY_SECRET_KEY='12345' --link sentry-redis:redis --link sentry-postgres:postgres --restart=always sentry
### cropn 服务
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='12345' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron
### work 服务
docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='12345' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
打开
账号密码是刚才创建的管理员的密码:
配置后台地址、预警邮件地址、以及其他的一些功能:
创建项目
这里我们选 javascript 项目名叫 myapp。
然后sentry后台多了个项目, 然后在我们的前端项目里面像下面这样引入:
// 脚本引入
// npm
import * as Sentry from '@sentry/browser';
import { Integrations } from '@sentry/tracing';
Sentry.init({
dsn: 'xxxx',
integrations: [
new Integrations.BrowserTracing(),
],
tracesSampleRate: 1.0,
});
这样整个流程就通了,可以用起来了。
众所周知,我们的线上代码都是被压缩混淆过的。所以就算拿到了错误信息,只能靠猜了,所以要配合 souremap 精准定位错误信息。
准备
npm i @sentry/webpack-plugin -D
然后在根目录下新建 .sentryclirc。
[defaults]
### 你的域名
defaults.url='http://localhost:9000'
### 组织团队名默认是 sentry
org=sentry
### 项目名称
project=myapp
### 步骤1创建的
[auth]
token=1234
配置插件。
const SentryWebpackPlugin = require('@sentry/webpack-plugin');
if (process.env.NODE_ENV !== 'development') { // 注意只在生成环境开启,不然npm run dev也会上传
new SentryWebpackPlugin({
release: Date.now(), // 唯一标识,可以用其他的比如 hash
include: './build', // 要上传的文件夹 有的叫 dist
ignoreFile: '.sentrycliignore', // 可不要
ignore: ['node_modules', 'config-overrides.js'],
configFile: '.sentryclirc' // 默认同级,如果不一样需要用node path模块处理一下
});
}
然后运行 npm run build。
Creating an optimized production build...
> Found 10 release files
> Analyzing 10 sources
> Rewriting sources
> Adding source map references
> Bundled 10 files for upload
> Uploaded release files to Sentry
> File upload complete
恭喜你配置成功了。
主动上报
Sentry.captureMessage('Hello, world!'); // 上报信息
Sentry.captureException(new Error('Good bye')); // 上报异常
Sentry.captureEvent({ // 上报事件
message: 'Manual',
stacktrace: [
// ...
],
});
配置用户信息
Sentry.configureScope((scope) => {
scope.setUser({
...data.userInfo,
time: new Date().toLocaleString()
});
});
当前文章:十分钟快速构建错误监控系统
网站URL:http://www.shufengxianlan.com/qtweb/news23/466023.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联