Gitlab与Sentry集成,启用错误跟踪

一、sentry介绍

        当我们完成一个业务系统的上线时,总是要观察线上的运行情况,对于每一个项目,我们都没办法保证代码零BUG、零报错,即便是经历过测试,因为测试永远无法做到100%覆盖,用户也不会总是按照我们所预期的进行操作,在上线后也会出现一些你预料不到的问题,而这种情况下,广大的用户其实才是最好的测试者。当生产环境中产生了一个 bug 时,如何做到迅速报警,找到问题原因,修复后又如何在线上验证?此时我们需要一个高效的错误监控系统。sentry扮演着一个错误收集的角色,将你的项目和sentry结合起来,无论谁在项目使用中报错,sentry都会第一次时间通知开发者,我们需要在系统异常时主动对其进行收集上报,出现了什么错误,错误出现在哪,帮你记录错误,以制定解决方案并进行优化迭代。

二、sentry的安装,这里介绍docker 安装sentry

1.启动一个redis容器

docker run -d --name sentry-redis redis

2.启动一个Postgres容器

docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres

3.生成一个秘钥,用于后面所有sentry容器的握手

docker run --rm sentry config generate-secret-key

4.连接redis,postgres和sentry,运行后自动执行初始化操作

docker run -it --rm -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade

此处需要创建账号和密码,也可以不创建,运行命令

#进入容器内部
docker exec -it my-sentry /bin/sh
#创建用户
sentry createuser

5.启动Sentry server

docker run -d --name my-sentry -p 9000:9000 -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-redis:redis --link sentry-postgres:postgres sentry

6.默认配置中需要Celery,因此启动一个Celery主节点与执行节点(worker节点可按需多启几个

#主节点
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron
#工作节点
docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker

7.访问http://ip:9000进入sentry web管理页面

 三、sentry 创建项目

1.点击添加项目按钮

2.选择项目编程语言类型,填写项目名,分配给哪个team等信息,然后点击Create Project按钮创建项目。

3. 创建auth token

4.选择token生效范围,点击Create Token创建token

 三、Gitlab中启用Error Tracking

1.勾选Active

2.填入Sentry API URL即为sentry 服务器的地址加端口

3.Auth token即为生成的token,点击Connect,然后选择要监控的项目,最后保存

 四、查看监控的结果

现在还是空白的,因为项目中没有使用到Sentry,所以没有结果

五、创建SpringBoot项目

 1.添加依赖到pom.xml文件

<dependency>
	<groupId>io.sentry</groupId>
	<artifactId>sentry-spring</artifactId>
	<version>1.7.30</version>
</dependency>

2.编写配置文件,在resources目录下创建sentry.properties文件,写入dns配置

dns=http://fbb138025aae4bfeae0aef8xxxx9796c@192.168.xx.xx:9020/3

dsn信息要在sentry后台,你创建的那个项目下可以找到

 3.编写配置类

@Configuration
public class SentryConfig {

    @Bean
    public HandlerExceptionResolver sentryExceptionResolver() {
        return new io.sentry.spring.SentryExceptionResolver();
    }

    @Bean
    public ServletContextInitializer sentryServletContextInitializer() {
        return new io.sentry.spring.SentryServletContextInitializer();
    }

}

4.编写几个异常的代码,用来做测试


    @GetMapping
    public void index() {
        throw new NullPointerException();
    }

    @GetMapping(value = "/user")
    public void getUser() {
        throw new IndexOutOfBoundsException("user size=10,req=11");
    }

六、启动项目,测试

1.发送请求

 2.查看sentry后台

3.查看Gitlab Error Tracking

好了,就介绍到这里了,总体来说还是挺简单的,快去学学吧。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值