上一篇文章咱们搭建了基于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日知录