视频学校地址:
https://www.bilibili.com/video/BV12g411c75H?p=82
这里这个all方法部署spring 插件也是不少springmvc插件,skywalking的agent默认是无法拦截的,如果我们要让skywalking拦截,只需要在all方法上面添加一个@Trace注解就可以了
如我们要使用自定义注解,外来浏览器访问/all接口的时候,因为存在requestMapping的注解skywalking是能够拦截得到的,但是访问内部访问了orderService.all()的方法,
这里时候我们要知道orderService.all()的方法执行消耗了多少时间。执行是否存在异常,skywalking是无法拦截道理的,我们要知道业务方案的具体的内部执行过程,我们只需要在orderService.all()的方法上面使用@Trace注解就可以了
orderService.all()的方法上面使用@Trace注解,表示该方法能够被skywalking拦截,此外如果我们还需要得到orderService.all()的方法的返回值,可以使用@Tag注解,key
一般是方法名,value必须是固定的就是returnobj,注意返回的obj对象最好要使用toString方法,这样在skywalking的调用量上面就能够拦截到该方案,并且能够得到该方法的返回值
如果要得到该方案的入场value可以是arg,如下形式
上面的这个@Tags注解,既可以拦截改方法的返回值,也可以拦截改方法的入参,arg[0]小标0表示第一个参数。arg是固定的
效果如下
skywalking的性能分析
我们在哪些场景下面会使用到skywalking的性能分析功能了
我们访问/order/all接口的时候,后端响应非常的慢,如果我们要定位到那句代码执行很慢,就可以使用skywalking的性能分析功能
使用性能分析
第一步,我们要新一个性能分析的任务
上面有几个点需要注意的http://localhost:8000/order/all接口出现性能问题
端点名称是/order/all不是http://localhost:8000/order/all
第二就是最大采样数目5表示,调用http://localhost:8000/order/all必须5次以上,skywalking agent才能监控,所以外部必须调用访问5次
点击分析按钮,能够看到具体的线程堆栈信息,分析那个代码执行最耗时
skywalking的日志框架
GRPCLogClientAppender">
<!-- 日志输出编码 -->
skywalking的告警功能