視頻學校地址:
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的告警功能