上一篇文章我们搭建了基于SkyWalking分布式跟踪环境,今天聊聊使用SkyWalking监控我们的微服务(DUBBO)
假设你有个订单微服务,包含以下组件
网络拓扑图如下
生产者的关键代码
@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
-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
在浏览器访问 http://localhost:9090/order/1184489161562816511
,多次调用使负载生效;修改订单id参数,让调用覆盖不同的数据库
访问skywalking监控地址 http://192.168.136.129:8080/
查看监控效果
仪表盘
网络拓扑图
错误日志
Trace查询
这部分我们先看下调用链的原理:
正是由于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>
%d [%traceId] %-5p %c{1}:%L - %m%n
刚启动时候获取不到TraceID,所以TID显示为N/A,启动完成后调用请求再次观察控制台,发现所有链路上的日志都打上了TraceID。
很简单的几步就让你的微服务加上了调用链监控,你还不赶紧试试?
相关文章:
基于SkyWalking的分布式跟踪系统 - 环境搭建SpringBoot2.1.9+dubbo2.7.3+Nacos1.1.4构建你的微服务体系
欢迎关注我的个人公众号:JAVA日知录