本文共 2987 字,大约阅读时间需要 9 分钟。
常见开源产品
cat, zipkin, pinpoint , skywalking
cat
CAT(Central Application Tracking)基于Java开发的实时监控平台,主要包括移动端监控,应用侧监控,核心网络层监控,系统层监控等。CAT是一个提供实时监控报警,应用性能分析诊断的工具。
由大众点评开源,基于Java开发的实时应用监控平台,包括实时应用监控,业务监控 。 集成方案是通过代码埋点的方式来实现监控,比如: 拦截器,注解,过滤器等。 对代码的侵入性很大,集成成本较高,风险较大。
整体架构:
特点:
- 异步化传输数据,不太影响正常业务
- 实时监控
- 轻量,部署简单
- 嵌入简单
- 有问题跟踪报表
- 消息树形化
- 日志不落地本地磁盘,较少IO,但很消耗网络资源
- 监控消息,按照分业务传输数据,如业务场景,时间等要求传输数据
- 有报警机制
- 可能复杂的消息存储和消息ID查询看起来麻烦,需要建立查询索引(目前不考虑这个东东)
- 消息队列异步化发送
- 开源(这个最重要)
支持技术栈:
- dubbo
- spring mvc ,spring aop ,springmvc-url
- spring boot
- mybatis
- log4j , logback
- playframework
- http请求
详见:
zipkin
由Twitter团队开源, Zipkin是一个分布式的跟踪系统。它有助于收集数据需要解决潜在的问题在市微服架构的时机。它管理数据的收集和查找 . 该产品结合spring-cloud-sleuth使用较为简单, 集成很方便。 但是功能较简单。
整体架构:
Transport是zipkin对外提供的接口,目前有HTTP、Kafka、Scribe三种。
- HTTP:采用json格式,接口定义见https://github.com/openzipkin/zipkin-api
- Kafka:分布式发布订阅消息系统
- Scribe:Facebook的日志收集系统https://github.com/facebook/scribe
支持技术栈:
- 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
详见:
比较
cat | zipkin | pinpoint | skywalking | |
---|---|---|---|---|
依赖 |
|
|
|
|
实现方式 | 代码埋点(拦截器,注解,过滤器等) | 拦截请求,发送(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) |
缺点 |
|
| 不支持查询单个调用链, 对外表现的是整个应用的调用生态。 |
|
文档 | 网上资料较少,仅官网提供的文档,比较乱 | 文档完善 | 文档完善 | 文档完善 |
开发者 | 大众点评 | naver | 吴晟(华为开发者) ,目前已经加入Apache孵化器 | |
使用公司 | 大众点评, 携程, 陆金所,同程旅游,猎聘网 | naver | 华为软件开发云、天源迪科、当当网、京东金融 |
转载地址:https://lemonstone.blog.csdn.net/article/details/85241034 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!