skywalking监控mysql_基于SkyWalking的分布式跟踪系统 - 微服务监控

本文介绍了如何使用SkyWalking监控DUBBO微服务,包括MySQL数据库的分库分表服务。通过设置javaagent启动生产者和消费者,并模拟请求触发监控。文章还展示了SkyWalking的仪表盘、网络拓扑图、错误日志和Trace查询功能,并讨论了日志集成,提供了一种在log4j2中添加TraceID的方法,帮助提高问题排查效率。
摘要由CSDN通过智能技术生成

上一篇文章我们搭建了基于SkyWalking分布式跟踪环境,今天聊聊使用SkyWalking监控我们的微服务(DUBBO)

服务案例

假设你有个订单微服务,包含以下组件

MySQL数据库分表分库(2台)

生产者(2台) dubbo-provider

消费者 dubbo-consumer

网络拓扑图如下

6f345c68c5117eefed20ad1987965a20.png

生产者的关键代码

@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/查看监控效果

e58cc06cd3a80f0d790250023edf0eb3.png

仪表盘

97258126f01a41e034ef648bcc2a93ca.png

网络拓扑图

3edfcce51ce6a210ae4cf062faf00a1b.png

错误日志

b23d58da9c60d481a494d5c9c6955431.png

Trace查询

日志集成

这部分我们先看下调用链的原理:

请求到来生成一个全局TraceID,通过TraceID可以串联起整个调用链,一个TraceID代表一次请求。

除了TraceID外,还需要SpanID用于记录调用父子关系。每个服务会记录下Parent id和Span id,通过他们可以组织一次完整调用链的父子关系。

要查看某次完整的调用则只要根据TraceID查出所有调用记录,然后通过Parent id和Span id组织起整个调用父子关系。

正是由于TraceID如此重要,所以我们希望这个调用链的TraceID能输出在日志文件中,一旦观察到有异常调用,我们在日志分析平台直接搜索TraceID即可将关联的日志全部检索出来,大大提高我们解决问题的效率。

集成过程(log4j2)

引入日志包log4j2

org.springframework.boot

spring-boot-starter

org.springframework.boot

spring-boot-starter-logging

org.springframework.boot

spring-boot-starter-log4j2

引入SW工具包

org.apache.skywalking

apm-toolkit-log4j-2.x

6.4.0

修改日志显示格式 log4j2.xml

%d [%traceId] %-5p %c{1}:%L - %m%n

启动应用,观察控制台

8c34c5961d950a5fd6fc03c9f5527457.png

刚启动时候获取不到TraceID,所以TID显示为N/A,启动完成后调用请求再次观察控制台,发现所有链路上的日志都打上了TraceID。

5286142ebcea3468b75925a2843d2247.png

很简单的几步就让你的微服务加上了调用链监控,你还不赶紧试试?

请关注个人公众号:JAVA日知录

5d30a40cb15e11361c359e7e97b4138e.bmp

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[基于SkyWalking的分布式跟踪系统 - 微服务监控]http://www.zyiz.net/tech/detail-94620.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值