踩过坑之后回头发现其实很简单,我尽量以简单的文字去描述
sentry部署
官网注册
如果具体应用在公司一般是不推荐的,想了解大概流程可以参考我这篇
公司部署(推荐)
不想学习部署的同学可以直接跳过,实际工作中部署不是我们的活。运维会比较专业,但是我这里还想梳理下部署的流程以及踩的坑。
这个不止一次造运维吐槽过,依赖非常多,而且一不小心还会报错,不过看github更新的还是挺频繁的。如果运维自己用docker部署的话,自己去写dockerFile和docker-compose,工作量非常大的
1、拉取镜像
这个过程非常漫长,如果遇到报错的话,可以去github的issue上面找下。我之前碰到过关于kfaka的问题,在他们的issue中找到了同样的错误。最终输入localhost:9000即可访问
2、邮件配置
拉取成功之后输入localhost:9000即可访问,在config.yml配置邮件信息,这里以企业微信邮箱为例
mail.backend: 'django_smtp_ssl.SSLEmailBackend' # Use dummy if you want to disable email entirely
mail.host: 'smtp.exmail.qq.com'
mail.port: 465
mail.username: ''
mail.password: '1996810jyjJYJ'
mail.use-tls: true
# The email address to send on behalf of
mail.from: '你的邮件地址'
安装了一个插件django_smtp_ssl.安装完毕之后需要在requirements.txt加安装了一个插件django_smtp_ssl.
pip install django-smtp-ssl
之后需要在requirements.txt加上
# Add plugins here
# sentry-dingtalk-new
django-smtp-ssl~=1.0
sentry在应用中怎么使用
在这里遇到的坑就是怎么也收集不了后端报的错误,原来是忘记自己Sentry.captureException这个api了,篇二有提到过sentry有多个api
axios.interceptors.response.use(
(response) => {
return Promise.resolve(response);
},
(error) => {
// 关键是这句
Sentry.captureException(new Error(error));
return Promise.reject(error);
}
);
sentry工作台
篇二我这篇文章中有提到过。这里讲下我在实际应用中用到的遇到的问题以及解决办法,之前提到过,设置警报的规则有这些
那我们现在遇到一个问题就是。某些错误上报只给某些人发送,刚好不是有个
setTagapi,利用起来便是
1、在代码中加入以下代码
Sentry.configureScope(function (scope) {
// 设置tag
scope.setTag("specialError", "specialError");
scope.setUser({
"username": "nanlan",
});
});
Sentry.captureException(new Error(error));
2、选中tag匹配的条件
3、选中发送的动作
总结
这篇文章主要讲了些自己分别在部署(主要是拉取镜像和邮件发送)、业务场景中踩的一些坑(上报不了服务器错误),不同的场景设置不同的警报规则,以后若有什么坑,将随时记录下来