美文网首页
第二节 链路监控

第二节 链路监控

作者: 农民工进城 | 来源:发表于2022-01-05 14:28 被阅读0次

    链路监控主要有:cat, zipkin, pinpoint , skywalking 4个开源组件

    1、Zipkin

    1.1 简介

    Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。

    1.2 架构
    image.png

    ZipKin可以分为两部分,一部分是zipkin server,用来作为数据的采集存储、数据分析与展示;zipkin client是zipkin基于不同的语言及框架封装的一些列客户端工具,这些工具完成了追踪数据的生成与上报功能,架构如下:

    Zipkin Server主要包括四个模块:

    • Collector 接收或收集各应用传输的数据
    • Storage: 存储接受或收集过来的数据,默认存储在内存,也可以存储到mysql或es等数据库中
    • API(Query):负责查询Storage中存储的数据,提供简单的 API接口获取数据
    • Web UI:方便用户直观地查询和分析跟踪信息

    2、Pinpoint

    2.1 简介

    Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能。基于GoogleDapper论文进行的实现,与另一款开源的全链路分析工具Zipkin类似,但相比Zipkin提供了无侵入式、代码维度的监控等更多的特性。

    2.2 架构
    image.png

    Pinpoint 主要由 3 个组件外加 Hbase 数据库组成,三个组件分别为:Agent、Collector 和 Web UI。

    • Agent组件:用于收集应用端监控数据,无侵入式,只需要在启动命令中加入部分参数即可
    • Collector组件:数据收集模块,接收Agent发送过来的监控数据,并存储到HBase
    • WebUI:监控展示模块,展示系统调用关系、调用详情、应用状态等,并支持报警等功能
    • Hbase:存储监控数据

    3、SkyWalking

    3.1 简介

    本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前已加入Apache孵化器。

    3.2架构
    image.png

    SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面。

    • 探针:基于不同的来源可能是不一样的, 但作用都是收集数据, 将数据格式化为 SkyWalking 适用的格式.
    • 平台后端: 支持数据聚合, 数据分析以及驱动数据流从探针到用户界面的流程。分析包括 Skywalking 原生追踪和性能指标以及第三方来源,包括 Istio 及 Envoy telemetry , Zipkin 追踪格式化等。 你甚至可以使用 Observability Analysis Language 对原生度量指标用于扩展度量的计量系统 自定义聚合分析。
    • 存储: 通过开放的插件化的接口存放 SkyWalking 数据. 你可以选择一个既有的存储系统, 如 ElasticSearch, H2 或 MySQL 集群(Sharding-Sphere 管理),也可以选择自己实现一个存储系统. 当然, 我们非常欢迎你贡献新的存储系统实现。
    • UI: 一个基于接口高度定制化的Web系统,用户可以可视化查看和管理 SkyWalking 数据。

    4、CAT

    大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具

    4.2 架构
    image.png
    • cat-client: 客户端,上报监控数据
    • cat-consumer: 服务端,收集监控数据进行统计分析,构建丰富的统计报表
    • cat-alarm: 实时告警,提供报表指标的监控告警
    • cat-hadoop: 数据存储,logview 存储至 Hdfs
    • cat-home: 管理端,报表展示、配置管理等

    5. 对比

    cat zipkin pinpoint skywalking
    实现方式 代码埋点(拦截器,注解,过滤器等) 拦截请求,发送(HTTP,mq)数据至zipkin服务 java探针,字节码增强 java探针,字节码增强
    存储选择 mysql , hdfs in-memory , mysql , Cassandra , Elasticsearch HBase elasticsearch , H2
    优点 功能完善 spring-cloud-sleuth可以很好的集成zipkin , 代码无侵入,集成非常简单 , 社区更加活跃。对外提供有query接口,更加容易二次开发 完全无侵入, 仅需修改启动方式,界面完善,功能细致。 完全无侵入,界面完善,支持应用拓扑图及单个调用链查询。功能比较完善(zipkin + pinpoint)
    缺点 代码侵入性较强,需要埋点,文档比较混乱,文档与发布版本的符合性较低,需要依赖点评私服 (或者需要把他私服上的jar手动下载下来,然后上传到我们的私服上去) 默认使用的是http请求向zipkin上报信息,耗性能。跟sleuth结合可以使用rabbitMQ的方式异步来做,增加了复杂度,需要引入rabbitMQ 。数据分析比较简单。 不支持查询单个调用链, 对外表现的是整个应用的调用生态。二次开发难度较高 3.2版本之前BUG较多 ,网上反映兼容性较差 。3.2新版本的反映情况较少依赖较多
    文档 网上资料较少,仅官网提供的文档,比较乱 文档完善 文档完善 文档完善
    开发者 大众点评 twitter naver 吴晟(华为开发者) ,目前已经加入Apache孵化器

    相关文章

      网友评论

          本文标题:第二节 链路监控

          本文链接:https://www.haomeiwen.com/subject/ftqccrtx.html