Skywalking 调试环境搭建以及Trace收集流程梳理

在微服务中,由于各个服务交错复杂,链路追踪是必不可少的环节,市面上有很多开源项目,skywalking基于语言探针来实现追踪,针对调研比较,skywalking的探针对吞吐量的影响最小而且可扩展性高,比较适合平台产品的开发。

环境搭建

本次搭建的环境是调试环境,只是针对探针的部署和日志收集的部分搭建,不是skywalking整体的从追踪部署到可视化展示的部分,如果对整体skywalking感兴趣,可以参考官方文档 或者 芋道源码,都有相当不错的入门文档。

前期准备

  • JDK8
  • MAVEN
  • GIT
  • IDEA

从github上 clone 下 目前发布的v7.0.0版本,使用IDEA打开。打开后如下图所示

skywalking_dist.jpg

由于我只关注 探针部署以及日志收集相关功能,因此针对UI界面和日志的协议传输就可以舍弃掉了,如果对这些感兴趣,想部署整套skywalking,可以参考 SkyWalking 6.x 源码分析 —— 调试环境搭建

配置修改

简化配置

  1. 首先我们去掉不需要打包的部分

    打开 apm_webapp模块里的pom文件

    web_pom.jpg

将以下内容注释掉

pom_npm.jpg

保存pom配置。

  1. 查看网络传输协议

    proto.jpg

可以看到我这个文件夹下也没有相关的协议文件,如果没有,在mvn打包的时候会报错,导致打包不通过,因此我们需要回到github上 将这部分文件下载下来 copy到该目录位置。具体地址:skywalking-data-collect-protocol

proto1.jpg

mvn打包

基本配置修改完成之后,我们就可以将源码打包。

使用IDEA中提供的控制台输入mvn命令即可,非常简单。

mvn.jpg

接下来就是漫长的打包过程。

打包完成.jpg

我们可以看到,打包后的所有jar已经被放在了 skywalking-agent的文件夹下。

jar文件.jpg

调试环境测试

这里的环境测试参考 芋道源码的方式 ,我们就简单创建一个springboot项目,然后其目录下引入skywalking,启动的时候加入 skywalking探针配置,在skywalking启动类中加入debugger,看看启动时 是否进入,如果进入,则说明调试环境搭建成功。

  1. 创建一个简单的springboot项目,我这里就创建一个spring cloud gateway 项目。

    sk-springcloudgateway.jpg
  1. 将刚刚打包好的skywalking 项目以module形式导入。

    s
    st1.jpg
st2.jpg
  1. 配置参数启动


    st3.jpg
st4.jpg
st5.jpg
  1. 添加debug位置org.apache.skywalking.apm.agent.SkyWalkingAgent debugger启动即可。

    premain.jpg

Trace数据收集

首先我们需要了解一下这篇博客 微服务链路追踪原理 看懂了这个之后我们可以在看一下 SkyWalking的 插件开发指南 Plugin Development Guide ,了解了 skywalking的 插件机制后,其实我们大体上就可以了解到大体Trace数据可以分为三类。

  • EntrySpan
  • LocalSpan
  • ExitSpan

我们收集的就是这些Span组成的数据。针对追踪的不同场景,选择适合的Span来记录。具体的数据收集流程,我整理了一套流程图,感兴趣的可以根据下面的流程图,自己去debugger一下,就可以理解收集的具体步骤和流程。

trace.jpg

小结

这里主要是我自己在扩展skywalking的时候,遇到的问题和一些知识点的记录,只是记录调试环境的搭建,而不是整个skywalking的部署,如果你想对skywalking的插件和日志收集等其他扩展点进行扩展,相信你这篇文章给你有一点帮助,如果你只是想试探使用以下skywalking,那么参照官方文档是最好的选择。

你可能感兴趣的:(Skywalking 调试环境搭建以及Trace收集流程梳理)