分布式链路追踪Skywalking部署应用

Skywalking部署以及远程应用

背景

最近公司项目在做性能压测,想自己先分析一下项目各个接口耗时调用,以及接口的调用链路,方便分析问题优化项目应用。

市面上的链路追踪工具对比

目前市面上使用较多的工具有 ZipkinPinpointSkyWalkingCAT,下面做一个对比

对比项 Zipkin Pinpoint SkyWalking CAT
实现方式 拦截请求,发送(HTTP,mq)数据至zipkin服务 java探针,字节码增强 java探针,字节码增强 代码埋点(拦截器,注解,过滤器等)
接入方式 基于linkerd或者sleuth方式,引入配置即可 javaagent字节码 javaagent字节码 代码侵入
agent到collector的协议 http,MQ thrift gRPC http/tcp
OpenTracing 支持 不支持 支持 不支持
颗粒度 接口级 方法级 方法级 代码级
全局调用统计 不支持 支持 支持 支持
traceid查询 支持 不支持 支持 不支持
报警 不支持 支持 支持 支持
JVM监控 不支持 不支持 支持 支持
UI功能 ** ***** **** *****
数据存储 ES/mysql/Cassandra/内存 Hbase ES/H2/mysql mysql/hdfs

为什么选择Skywalking

  • 首先Skyworking是开源的APM系统产品
  • 支持Java、.Net、Node.js 等探针,数据存储支持 MySQL、ElasticSearch
  • 文档比较齐全,社区比较活跃, 支持多语言探针。同时,还支持很多框架,比如 Dubbo、gRPC、SOFARPC等等
  • 使用java agent探针技术,对代码无侵入
  • 支持trace-id与log4j的支持,可以将tid于日志进行结合,根绝tid来搜索相关日志,快速定位问题。

应用部署

  1. 搭建以及部署Skyworking

    这里不做赘述,直接查看官方文档进行部署即可https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/#

  2. spring boot 启动使用

    java -jar xxxxxx/agent/skywalking-agent.jar -jar demo.jar
    
  3. 访问http://localhost:8080

分布式链路追踪Skywalking部署应用_第1张图片

容器部署(docker)

  1. 先找到apache-skywalking-apm-bin/agent文件夹

  2. 复制到/data/server/agent

  3. 修改agent/config/agent.config

    新版本找到collector.backend_service修改为ip:11800

    collector.backend_service=ip:11800
    
  4. 挂载agent目录

    docker run -m 8G --name demo -v /data/server:/data/server -p 8082:8082 -itd demo:1.0
    
  5. 修改启动命令

    java -javaagent:/data/server/agent/skywalking-agent.jar -jar -Dserver.port=8082 -Duser.timezone=GMT+08  demo.jar
    

这样不管是怎么部署都可以将日志上报到skywalking的服务器上,进行统一日志的查看

分布式链路追踪Skywalking部署应用_第2张图片

你可能感兴趣的:(工具使用,分布式链路追踪,skywalking,docker)