2.点击上图中的create project创建好项目,走完系统提示的步骤,直接进入项目的管理控制台,找到项目的client keys,我们的应用中集成sentry就靠它了,先记住这个路径。
创建的项目client keys
3.下面开始进入我们的应用集成sentry客户端,先添加好Maven依赖:
sentry依赖
在你的logback.xml中增加sentry的日志收集:
sentry日志配置
在你的项目resources目录下增加一个sentry.properties,内容如下:
#创建的项目的client keys
dsn=https://f6881f52ad5e49c885c6c55d9af88668@sentry.io/1498731
#应用的包名
stacktrace.app.packages=com.test.sentry
#上报频率 1是全部都上报
sample.rate=1
#运用环境 dev test gamma prod
environment=dev
还差最后一步,在你的应用启动类里面注册一个bean:
sentry注册bean
启动你的项目,制造一个log.error日志或者抛出一个异常,去你的sentry控制台去看看有没有吧~如果能收到异常告警,那么错误列表就会有数据:
错误列表
4.以上就是快速的集成sentry,并将错误信息上报到sentry服务端。接下来的问题是:如何将这个错误信息实时的发送到钉钉群通知开发人员呢?我们去项目下找一个报警设置:
sentry项目报警设置
有没有看见钉钉?没有就是没有钉钉,但是他有一个WEBHOOKS,给我们提供了一个钩子,有了钩子就好办事了,那我们就可以写一个小小的中间件,基本思路就是:当sentry服务端收到错误日志时候给配置的钩子发一条通知,这个钩子接收到告警通知后,把通知再发到钉钉机器人提供的钩子上去,这样不就可以打通sentry和钉钉了么?思路没问题就开始干
5.写一个简简单单的API,接受sentry的通知并发送到钉钉的机器人钩子上去,大家得先了解一下sentry发送的通知数据格式是什么样的,我一开始懒得找文档,直接用HttpServletRequest接收的,然后打印出来,再根据自己需要的字段信息,写了一个简单的请求接受类,然后再看看钉钉机器人的文档(这个就比较好找了,钉钉里面设置机器人的时候都告诉你文档地址了),基本就下面这一点点代码:
API
sentry发送的请求体
发送给钉钉机器人的请求类
6.测试一下效果,制造一个错误日志或者异常信息,看钉钉能否实时收到告警信息:
通过以上步骤,大家的应用就算是成功的集成了sentry并实时的将告警信息通知到钉钉群。上面写的一个简单的中间件大家也可以根据自己的需求发送到不同的平台,比如短信啊、邮件啊或者做更多特定需求的处理。另外,由于用的是在线sentry服务端,而不是自己搭建的sentry服务,每个月只有10K的免费使用量,所以只能用于个人学习实验或者量小的业务,对于大型的业务建议自行搭建sentry服务。