由于公司目前有200多微服务,微服务之间的调用关系错综复杂,调用关系人工维护基本不可能实现,需要调研一套全链路追踪方案,初步调研之后选取了skywalking和pinpoint进行对比;

选取skywalking和pinpoint对比的原因是:两者都使用探针(agent)技术进行信息采集,集成到项目内时不用修改业务代码,避免造成后期难以推进的问题;

以下是进行的一些维度的对比,主要从功能性需求和非功能性需求方面做参考:

功能性需求对比

  skywalking pinpoint 备注

支持协议

Java, C#, PHP, Node.js

java,php

 

ui

两种ui相类似,sw服务信息加载速度会快一些

扩展性

都可自定义plugin,使用探针,都可以进行扩展,据说sk扩展性更好

存储

支持各种类型存储,es,mysql,h2等

只支持hbase

 

警告

config/alarm-settings.xml设置警告规则

需要额外引入mysql发送警告

 

jvm监控

都包含,pinpoint相对更全面一些,从页面查看比较类似

跟踪粒度

需要使用对应的插件,可以到方法级,展示sql,每个方法调用的时间

服务监控

skywalking支持的维度有:CPU使用率,SLA,RT,CPM(Call Per Minutes)

Pinpoint支持的维度有:CPU使用率,Open File Descriptor,数据源,活动线程数,RT,TPS。

pinpoint更多

 

过滤追踪

都是用ant风格,sw有对应的插件,更灵活

性能损耗

性能损耗sw少于pinpoint

支持中间件

1.支持开源web容器

2.RPC框架支持更多

3.mq,多支持rocketMQ

4.不支持mssql和mariadb

5.redis支持Jedis,Redisson,Lettuce

1.支持几乎所有web容器,

2.少于sw

4.RDBMS/nosql,好于sw

5.不支持redisson

6.不支持log4j2

公司当前使用的resin

和karaf容器两个是否支持

对代码的侵入性

无侵入

无侵入

 

非功能性需求对比

 

skywalking

pinpoint

是否需要修改代码

不需要

不需要

相关文档

官网文档比较全,支持中文,apache支持

英文文档

社区

社区活跃,发起人是中国人

韩国人开发,活跃程度类似

发布方式

使用jar包,start.sh脚本启动

使用war包,依赖web容器

github start 数 9.1k 8.8k

skywalking对国产软件的支持好于Pinpoint;

Pinpoint的优势在于:追踪数据粒度非常细、功能强大的用户界面,以及使用HBase作为存储带来的海量存储能力。

skywalking的优势在于:非常活跃的中文社区,支持多种语言的探针,对国产开源软件非常全面的支持,以及使用es作为底层存储带来的强大的检索能力,并且skywalking的扩展性以及定制化要更优于Pinpoint

从整体上来讲,在进行演示和讨论的时候,大家普遍认为,skywalking的界面比较现代化一些,pinpoint的功能更为强大;

其他一些方面提出的问题,待近期补充:

后边需要继续调研的点:

1.对公司现有技术栈,两种方案的支持情况;

2.扩展性及如何进行扩展,扩展之后可以做哪些内容;

3.采样率如何配置

4.保存时间

5.采样的策略

6.agent开发方法

7.数据是否有遵循标准

8.nginx是否支持

另外,再讨论的过程中,提到了一些问题,

有同事提出是否可以用这个工具定位线上的具体都某一次请求的问题?

答案是否定的,因为全链路追踪的定位是展示整体服务调用的拓扑图,能够从宏观描述服务请求链路中哪个环节比较慢,给开发者提供优化程序的一个方向;

对于性能消耗,大家也有一些不同的看法,有的业务方,对于20%的性能损耗是不敏感的,但是对于当前线上已经负载比较高,且经常有线上问题的系统,还需要性能消耗方面的调研;

skywalking与pinpoint全链路追踪方案对比相关推荐

  1. skywalking 安装_SkyWalking全链路追踪利器

    随着目前系统架构的复杂度越来越高(中台.微服务),并且线上应用的多级监控覆盖到了通讯.应用处理过程监控并且实现端到端的应用监测,线上性能故障的快速定位修复:而传统的监控分析方式已经无法满足我们的需求, ...

  2. mysql链路跟踪工具_SkyWalking全链路追踪利器

    随着目前系统架构的复杂度越来越高(中台.微服务),并且线上应用的多级监控覆盖到了通讯.应用处理过程监控并且实现端到端的应用监测,线上性能故障的快速定位修复:而传统的监控分析方式已经无法满足我们的需求, ...

  3. go 链路追踪_Golang在七牛全链路追踪中的实践

    1.Go在七⽜牛全链路路追踪中的实践 刘凯 七⽜牛云⼤大数据团队(Pandora)架构师 2.⾃自我介绍 INTRODUCTION • 刘凯,七⽜牛,⼤大数据Pandora团队成员 • 2015年年, ...

  4. 前后端、多语言、跨云部署,全链路追踪到底有多难?

    作者|涯海 全链路追踪的价值 链路追踪的价值在于"关联",终端用户.后端应用.云端组件(数据库.消息等)共同构成了链路追踪的轨迹拓扑大图.这张拓扑覆盖的范围越广,链路追踪能够发挥的 ...

  5. Skywalking全链路追踪使用说明

    1.背景与需求: 随着业务规模的不断增大,系统的复杂度也越来越高,我们的软件架构也进入了分布式的阶段,服务按照不同的维度进行拆分,那么一次请求可能横跨多个服务模块.项目,依赖的中间件也越来越多,其中任 ...

  6. 得物云原生全链路追踪Trace2.0-采集篇

    一.0xcc开篇 2020年3月,得物技术团队在三个月的时间内完成了整个交易体系的重构,交付了五彩石项目,业务系统也进入了微服务时代.系统服务拆分之后,虽然每个服务都会有不同的团队各司其职,但服务之间 ...

  7. 企业如何从 0 到 1 构建整套全链路追踪体系

    简介:本文将分享 ARMS 在全链路追踪领域的最佳实践,分享主要分为四部分.首先,是对分布式链路追踪的整体简介.其次,是对 ARMS 在分布式链路追踪领域的核心能力进行介绍.然后,介绍如何从 0 到 ...

  8. 基于 Istio 的全链路灰度方案探索和实践

    作者|曾宇星(宇曾) 审核&校对:曾宇星(宇曾) 编辑&排版:雯燕 背景 微服务软件架构下,业务新功能上线前搭建完整的一套测试系统进行验证是相当费人费时的事,随着所拆分出微服务数量的不 ...

  9. 全链路追踪竟然如此简单? bytebuddy搭建全链路追踪的demo 附代码

    大家好,我是烤鸭:     最近一直在研究全链路追踪,比如cat.skywalking.zipkin等.     发现 skywalking 是基于bytebuddy 实现的,想自己试着写一下demo ...

最新文章

  1. js数组的sort排序的原理和应用
  2. js执行shell命令的几种方式(Node)
  3. linux怎么重装ssh服务器,Linux平台下安装SSH
  4. mosquitto源码分析(五)
  5. 跟我一起学Vim补全神级插件--YouCompleteMe
  6. Android单机游戏保存进度,安卓游戏存档修改教程 | 手游网游页游攻略大全
  7. PackageInstaller 类安装/卸载应用
  8. linux读取触摸屏事件数据
  9. 最小采样频率计算公式_信号分析基础(五):信号采样与混叠概念
  10. 微信开发工具新版本黑屏的解决办法
  11. Vmware安装Ubuntu20.04
  12. DACAI串口屏使用
  13. 【操作系统习题】假定某多道程序设计系统供用户使用的主存空间为100 KB ,磁带机2台,打印机1台
  14. 无线耳机哪个品牌音质好?2023无线蓝牙耳机音质排行
  15. Flutter Web(一)新建项目和登录页
  16. 武汉理工计算机网络考试,武汉理工大学计算机网络试题及答案.doc
  17. 常见的加密方法与破解思路
  18. pdf编辑器Acrobat Pro DC 2019 for Mac——创建和编辑最智能的PDF!
  19. Github上Stars最多的53个深度学习项目
  20. 在还剩下四分之三的2018里,你还将继续“病变”下去。

热门文章

  1. 关于ibatis的SQL注入。
  2. 【Oracle】设置快速恢复区及reset快速恢复区
  3. DataGridView 控件中DataBind( )方法不能使用的情况的解决方案
  4. cobbler安装4个报错汇总及解决方法:ImportError
  5. Android MVP Presenter 中引发的空指针异常
  6. Python3基础 try-指定except-as reason 捕获打开一个不存在的文件的时候,会产生OSError异常的示例
  7. 深入理解前端跨域问题的解决方案——前端面试
  8. 【开发环境】 irun(ncverilog)无法dump fsdb波形问题解决方法
  9. Postgres无法连接到服务器
  10. 让现有的Git分支跟踪一个远程分支?