上一篇文章咱們搭建了基於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
啓動生產者bash
-javaagent:E:\訊飛開發工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-provider -Dskywalking.collector.backend_service=192.168.136.129:11800
微信
-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
app
模擬請求
在瀏覽器訪問http://localhost:9090/order/1184489161562816511
,屢次調用使負載生效;修改訂單id參數,讓調用覆蓋不一樣的數據庫分佈式
效果查看
訪問skywalking監控地址http://192.168.136.129:8080/
查看監控效果
這部分咱們先看下調用鏈的原理:
正是因爲TraceID如此重要,因此咱們但願這個調用鏈的TraceID能輸出在日誌文件中,一旦觀察到有異常調用,咱們在日誌分析平臺直接搜索TraceID便可將關聯的日誌所有檢索出來,大大提升咱們解決問題的效率。
引入日誌包log4j2
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
複製代碼
引入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日知錄