• SkyWalking


    官网:https://skywalking.apache.org/

    下载:https://skywalking.apache.org/downloads/

    Github: https://github.com/apache/skywalking

    文档:https://skywalking.apache.org/docs/main/v8.4.0/readme/

    中文文档:https://github.com/SkyAPM/document-cn-translation-of-skywalking

    Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin/Pinpoint/CAT的设计思路,支持非侵入式埋点。

    是一款基于分布式跟踪的应用程序性能监控系统。

    另外社区还发展出了一个叫OpenTracing的组织,旨在推进调用链监控的一些规范和标准工作。

    SkyWalking 是一个应用性能监控系统,特别为微服务、云原生和基于容器(Docker, Kubernetes, Mesos)体系结构而设计。

    除了应用指标监控以外,它还能对分布式调用链路进行追踪。类似功能的组件还有:Zipkin、Pinpoint、CAT等。

    目前主要的一些 APM (Application Performance Management) 工具有: Cat、Zipkin、Pinpoint、SkyWalking,
     SkyWalking ,它是一款优秀的国产 APM 工具,包括了分布式追踪、性能指标分析、应用和服务依赖分析等。

    监控维度可以分为节点资源监控(CPU、内存、带宽、磁盘)、应用探活监控(探活心跳)、应用服务能力监控(自动化回归测试)、应用服务性能监控等(全链路追踪),本文主要对比全链路追踪中常使用的Zipkin、Pinpoint、SkyWalking和CAT。

    一、全链路追踪工具

    1、Zipkin
      Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。
    2、Pinpoint
      韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。
    3、SkyWalking
      本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前已加入Apache孵化器。
    4、CAT
      大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具。

    二、工具对比

    对比项ZipkinPinpointSkyWalkingCAT
    实现方式 拦截请求,发送(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/hdfs

     

    cat 

    由大众点评开源,基于Java开发的实时应用监控平台,包括实时应用监控,业务监控 。 集成方案是通过

    代码埋点的方式来实现监控,比如: 拦截器,注解,过滤器等。   对代码的侵入性很大,集成成本较高。

    风险较大。 

    支持技术栈: 

    • dubbo
    • spring mvc ,spring aop ,springmvc-url
    • spring boot
    • mybatis
    • log4j , logback
    • playframework
    • http请求

    zipkin

    由Twitter团队开源, Zipkin是一个分布式的跟踪系统。它有助于收集数据需要解决潜在的问题在市微服架构的时机。它管理数据的收集和查找 . 

    该产品结合spring-cloud-sleuth使用较为简单, 集成很方便。  但是功能较简单。 

    支持技术栈: 

    • spring cloud

          以上是结合spring-cloud-sleuth支持的技术栈

    pinpoint

    由韩国团队naver团队开源,针对大规模分布式系统用链路监控,使用java写的工具。灵感来自短小精悍,帮助分析系统的总

    体结构和内部组件如何被调用在分布式应用提供了一个很好的解决方案。

    使用java探针字节码增加技术,实现对整个应用的监控 。 对应用零侵入

    支持技术栈: 

    • Tomcat 6+, Jetty 8/9, JBoss 6, Resin 4, Websphere 6+, Vertx 3.3+
    • Spring, Spring Boot (Embedded Tomcat, Jetty)
    • HTTP Client 3.x/4.x, HttpConnector, GoogleHttpClient, OkHttpClient, NingAsyncHttpClient
    • Thrift, Dubbo
    • mysql, oracle, mssql, cubrid,PostgreSQL, maria
    • arcus, memcached, redis, cassandra
    • MyBatis
    • DBCP, DBCP2, HIKARICP
    • gson, Jackson, Json Lib
    • log4j, Logback

    skywalking 

    2015年由个人吴晟(华为开发者)开源 , 2017年加入Apache孵化器。 

    针对分布式系统的应用性能监控系统,特别针对微服务、cloud native和容器化(Docker, Kubernetes, Mesos)架构, 其核心是个分布式追踪系统。

    使用java探针字节码增加技术,实现对整个应用的监控 。 对应用零侵入

    支持技术栈

    • Tomcat7+ , resin3+, jetty
    • spring boot ,spring mvc
    • strtuts2
    • spring RestTemplete  ,spring-cloud-feign
    • okhttp , httpClient
    • msyql ,oracle , H2 , sharding-jdbc,PostgreSQL
    • dubbo,dubbox ,motan, gRpc ,
    • rocketMq , kafla
    • redis, mongoDB,memcached ,
    • elastic-job , Netflix Eureka , Hystric

    比较

     catzipkinpinpointskywalking 
    依赖
    • Java 6,7,8
    • Maven 3.2.3+
    • mysql5.6
    • Linux 2.6以及之上(2.6内核才可以支持epoll)
    • Java 6,7,8
    • Maven3.2+
    • rabbitMQ
    • Java 6,7,8
    • maven3+
    • Hbase0.94+
    • Java 6,7,8
    • maven3.0+
    • nodejs
    • zookeeper
    • elasticsearch
    实现方式 代码埋点(拦截器,注解,过滤器等) 拦截请求,发送(HTTP,mq)数据至zipkin服务 java探针,字节码增强 java探针,字节码增强
    存储选择 mysql , hdfs in-memory , mysql , Cassandra , Elasticsearch HBase elasticsearch , H2
    通信方式 http , MQ thrift GRPC
    MQ监控 不支持 不支持 不支持 支持(RocketMQ,kafka)
    全局调用统计 支持 不支持 支持 支持
    trace查询 不支持 支持 不支持 支持
    报警 支持 不支持 支持 支持
    JVM监控 不支持 不支持 支持 支持
    star数 4.5K 7.9K 5.6K 2.8K
    优点 功能完善。 spring-cloud-sleuth可以很好的集成zipkin , 代码无侵入,集成非常简单 , 社区更加活跃。 完全无侵入, 仅需修改启动方式,界面完善,功能细致。

    完全无侵入,界面完善,支持应用拓扑图及单个调用链查询。

    功能比较完善(zipkin + pinpoint)

    缺点
    • 代码侵入性较强,需要埋点
    • 文档比较混乱,文档与发布版本的符合性较低,需要依赖点评私服 (或者需要把他私服上的jar手动下载下来,然后上传到我们的私服上去)。
    • 默认使用的是http请求向zipkin上报信息,耗性能。
    • 跟sleuth结合可以使用rabbitMQ的方式异步来做,增加了复杂度,需要引入rabbitMQ 。
    不支持查询单个调用链, 对外表现的是整个应用的调用生态。
    • 3.2版本之前BUG较多 ,网上反映兼容性较差 . 3.2新版本的反映情况较少
    • 依赖较多。
    文档 网上资料较少,仅官网提供的文档,比较乱 文档完善 文档完善 文档完善
    开发者 大众点评 twitter naver 吴晟(华为开发者) ,目前已经加入Apache孵化器
    使用公司 大众点评, 携程, 陆金所,同程旅游,猎聘网 twitter naver 华为软件开发云、天源迪科、当当网、京东金融
         
     
     
  • 相关阅读:
    camunda用户的一些简单操作
    assets和static
    mongoDB的常用语法
    服务发现和注册和Eureka
    camunda
    Web API系列(三) 异常处理
    Web API系列(二) Filter的使用以及执行顺序
    Web API系列(一):WEB API的适用场景、第一个实例
    WebAPI前置知识:HTTP与RestfulAPI
    【requirejs】JS模块化工具requirejs教程
  • 原文地址:https://www.cnblogs.com/mingforyou/p/15851051.html
Copyright © 2020-2023  润新知