前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用Zipkin追踪Mysql数据库调用链

利用Zipkin追踪Mysql数据库调用链

作者头像
CodeSheep
发布2018-05-22 12:20:33
2.1K0
发布2018-05-22 12:20:33
举报

在前面:微服务调用链追踪中心搭建 一文中我们利用Zipkin搭建了一个微服务调用链的追踪中心,并且模拟了微服务调用的实验场景。利用Zipkin的库Brave,我们可以收集一个客户端请求从发出到被响应 经历了哪些组件、哪些微服务、请求总时长、每个组件所花时长 等信息。本文将讲述如何利用Zipkin对Mysql数据库的调用进行追踪,这里同样借助OpenZipkin库Brave来完成。

Profile
Profile

概述

在前面:微服务调用链追踪中心搭建 一文中我们利用Zipkin搭建了一个微服务调用链的追踪中心,并且模拟了微服务调用的实验场景。利用Zipkin的库Brave,我们可以收集一个客户端请求从发出到被响应 经历了哪些组件哪些微服务请求总时长每个组件所花时长 等信息。

本文将讲述如何利用Zipkin对Mysql数据库的调用进行追踪,这里同样借助OpenZipkin库Brave来完成。


扩展ZipkinTool组件

ZipkinTool是在《微服务调用链追踪中心搭建》一文中编写的与Zipkin通信的工具组件,利用其追踪微服务调用链的,现在我们想追踪Mysql数据库调用链的话,可以扩展一下其功能。

  • pom.xml添加依赖:
  • 在ZipkinConfiguration类中添加MySQLStatementInterceptorManagementBean

添加Mysql数据库访问的微服务

依然继承前文:《微服务调用链追踪中心搭建》,我们改造一下文中的ServiceC这个微服务,在其中添加与Mysql数据库的交互。

  • pom.xml中添加JDBC和Mysql依赖
  • application.properties中添加Mysql连接的配置
  • Controller中添加JdbcTemplate访问数据库的代码

启动Mysql数据库服务

1. 启动Mysql容器

2. 再启动一个Mysql容器,接入其中做一些设置

  • 首先进入mysql命令行
进入Mysql的命令行
进入Mysql的命令行
  • 接下来创建数据库zipkin: 用于存放Zipkin所收集的数据

这里创建了三个数据表。

该Sql文件可以从以下链接获得:https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql/src/main/resources/mysql.sql

Sql脚本执行完成后,可以看到zipkin相关的三个表已经建成:

Zipkin相关的三个表
Zipkin相关的三个表
Zipkin相关的三个表
Zipkin相关的三个表
  • 创建数据库test:用作测试数据库

这里插入了一条数据用于实验。

创建test数据库并插入一条数据
创建test数据库并插入一条数据

启动zipkin服务


启动Mysql数据库访问的微服务(即ServiceC)

在浏览器中输入:localhost:8883/mysqltest,如果看到以下输出,就可以证明数据库调用操作已经成功了!

数据库调用操作已经成功
数据库调用操作已经成功

Zipkin追踪数据库调用实际实验

打开Zipkin Web UI,点击服务名下拉列表能看见已经成功识别了Mysql数据库调用服务

成功识别Mysql数据库调用服务
成功识别Mysql数据库调用服务
  • 选中mysqlservice后,点击Find Traces

可以看到 首次查询 Mysql的调用链追踪信息,有很多

首次查询Mysql所产生的Traces信息
首次查询Mysql所产生的Traces信息

随便点开某一个查看:

随机查看某一个具体的Trace信息
随机查看某一个具体的Trace信息
  • 接下来浏览器中再次输入:localhost:8883/mysqltest

目的是再次触发Mysql的调用,然后再次Find Traces,可以看到追踪数据类似下图:包含两次Mysql的query动作:

两次Mysql的query动作
两次Mysql的query动作

点开第一个query查看,其实际上是在 尝试连接Mysql数据库

第一个query详情
第一个query详情

点开第二个query查看,发现这里才是 实际查询业务

第二个query详情
第二个query详情

从图形化界面上可以清楚地知道每个阶段的详细步骤与耗时,因此可以用来分析哪个SQL语句执行相对较慢。


后记

本文实验所用源码已经开源,需要的话请 自取

作者一些其他容器化、微服务化方面的文章:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 扩展ZipkinTool组件
  • 添加Mysql数据库访问的微服务
  • 启动Mysql数据库服务
  • 启动zipkin服务
  • 启动Mysql数据库访问的微服务(即ServiceC)
  • Zipkin追踪数据库调用实际实验
  • 后记
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档