上一篇文章咱們搭建了基於SkyWalking分佈式跟蹤環境,今天聊聊使用SkyWalking監控咱們的微服務(DUBBO)java
假設你有個訂單微服務,包含如下組件spring
網絡拓撲圖以下
數據庫
生產者的關鍵代碼apache
@Service public class OrderServiceImpl implements OrderService { @Autowired protected OrderMapper orderMapper; @Override public OrderVO getById(long id) { OrderVO orderVO = new OrderVO(); Order order = orderMapper.selectById(id); BeanUtils.copyProperties(order,orderVO); return orderVO; } }
消費者的關鍵代碼瀏覽器
@RestController public class OrderController { @Reference(retries = 0) private OrderService orderService; @GetMapping("/order/{id}") public OrderVO getOrder(@PathVariable long id){ return orderService.getById(id); } }
使用 javaagent
啓動生產者網絡
-javaagent:E:\訊飛開發工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-provider -Dskywalking.collector.backend_service=192.168.136.129:11800
app
-javaagent:E:\訊飛開發工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-provider2 -Dskywalking.collector.backend_service=192.168.136.129:11800
分佈式
啓動消費者
-javaagent:E:\訊飛開發工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-consumer -Dskywalking.collector.backend_service=192.168.136.129:11800
ide
模擬請求
在瀏覽器訪問http://localhost:9090/order/1184489161562816511
,屢次調用使負載生效;修改訂單id參數,讓調用覆蓋不一樣的數據庫spring-boot
效果查看
訪問skywalking監控地址http://192.168.136.129:8080/
查看監控效果
儀表盤
網絡拓撲圖
錯誤日誌
Trace查詢
這部分咱們先看下調用鏈的原理:
正是因爲TraceID如此重要,因此咱們但願這個調用鏈的TraceID能輸出在日誌文件中,一旦觀察到有異常調用,咱們在日誌分析平臺直接搜索TraceID便可將關聯的日誌所有檢索出來,大大提升咱們解決問題的效率。
引入日誌包log4j2
```
```
引入SW工具包
<!--SW trace 跟蹤--> <dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm-toolkit-log4j-2.x</artifactId> <version>6.4.0</version> </dependency>
修改日誌顯示格式 log4j2.xml
%d [%traceId] %-5p %c{1}:%L - %m%n
啓動應用,觀察控制檯
剛啓動時候獲取不到TraceID,因此TID顯示爲N/A,啓動完成後調用請求再次觀察控制檯,發現全部鏈路上的日誌都打上了TraceID。
很簡單的幾步就讓你的微服務加上了調用鏈監控,你還不趕忙試試?
相關文章:
基於SkyWalking的分佈式跟蹤系統 - 環境搭建
SpringBoot2.1.9+dubbo2.7.3+Nacos1.1.4構建你的微服務體系
請關注我的公衆號:JAVA日知錄