利用哨兵如何实现监控SpringBoot应用

  介绍

利用哨兵如何实现监控SpringBoot应用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

哨兵是一个应用监控系统,可以用于前后端各种技术栈的线上监控和错误分析,这次我们用它来进行弹簧启动项目的线上日志分析实践。

首先需要根据提示在哨兵中创建好项目,项目平台(平台)可以选择弹簧引导或Java者。

哨兵提供了官方的弹簧起动器启动。

& lt; dependency>   & lt; groupId> io.sentry   & lt; artifactId> sentry-spring-boot-starter   & lt; version> 3.1.1   & lt;/dependency>

除此之外,我们还需要配置应用程序。属性,将我们在哨兵中创建的项目密钥(DSN)导入:

哨兵。dsn=https://key@host id

编写我们的控制器,尝试抛出一个简单的异常。

@RestController   公开课HelloController {      @RequestMapping (“/?   公共空白测试(){   把新IllegalArgumentException(“你好world");   }   }

如果之前的配置没有问题,那么我们就可以在哨兵的“问题”面板上面看到这个异常信息。

利用哨兵如何实现监控SpringBoot应用“>,</p> <p>点击这个异常即可查看详细信息。可以看到这个异常的一些基本信息,比如说“用户信息(这里未设置)”,“用户环境”、“标签(标签)”,“调用栈跟踪(加)”,“日志片(面包屑)”,“请求头”,以及一些用户可以自定义的内容(叫做上下文)。</p> <p> <img src= @ Bean   公共SentryUserProvider SentryUserProvider () {   返回()→{//实际的用户信息,可能要通过其他方式获得   用户用户=新用户();   user.setId (“userId");   user.setUsername(“张三“);   user.setEmail (“zhangsan@gmail.com");      返回用户;   };   }

再次触发异常,我们得到了用户信息。

利用哨兵如何实现监控SpringBoot应用“> </p> <p> </p> <p>随着异常信息的增多,我们希望能够筛选出一些特定的异常信息,哨兵提供了“标签(标签)”功能,可以根据标签进行筛选。虽然自带的标签已经够多,但是我们还是希望能够根据业务需求自定义一些,当然哨兵SDK提供了BeforeSendCallback,我们可以借此添加一些标签。</p> <pre类= @ bean   公共SentryOptions。BeforeSendCallback BeforeSendCallback () {   提示返回(事件)→{   event.setTag (“name",“zhangsan");   返回事件;   };   }

可以看到我们的标签已经成功地添加了,点击这个标签可以找到所有含有这个标签的事件。

利用哨兵如何实现监控SpringBoot应用“> </p> <p> </p> <p>我们现有春天的引导业务中可能涵盖了异常处理,大部分异常可能直接作为一个日志的形式记录下来了。当然哨兵也提供了Logback/Log4j2这类日志框架的支持。只需要导入对应的依赖即可,我们这里使用Logback作为例子。</p> <pre类= & lt; dependency>   & lt; groupId> io.sentry   & lt; artifactId> sentry-logback   & lt; version> 3.1.1   & lt;/dependency>

哨兵弹簧引导起动器会自动监测依赖并为我们配置好相应的配置,我们直接就可以用日志代替原有的异常抛出了。

@RestController   公开课HelloController {   私有静态日志记录器=LoggerFactory.getLogger (HelloController.class);      @RequestMapping (“/?   公共空白测试(){   logger.error (“Logback错误!“);   }   }

利用哨兵如何实现监控SpringBoot应用