Pinpoint源码解析(一)

Pinpoint 是用 Java 编写的APM(应用性能管理)工具,用于大规模分布式系统。在Dapper之后,Pinpoint提供了一个解决方案,以帮助分析系统的总体结构以及分布式应用程序的组件之间是如何进行数据互联的。

安装agent是无侵入式的

对性能的影响最小(只增加约3%资源利用率)

支持的模块:

JDK 6+

Tomcat 6/7/8, Jetty 8/9

Spring, Spring Boot

Apache HTTP Client 3.x/4.x, JDK HttpConnector, GoogleHttpClient, OkHttpClient, NingAsyncHttpClient

Thrift Client, Thrift Service

MySQL, Oracle, MSSQL, CUBRID, DBCP, POSTGRESQL

Arcus, Memcached, Redis

iBATIS, MyBatis

gson, Jackson, Json Lib

log4j, Logback

构建要求:

JDK 6 installed

JDK 8 installed

Maven 3.2.x+ installed

JAVA_6_HOME environment variable set to JDK 6 home directory.

JAVA_7_HOME environment variable set to JDK 7+ home directory.

JAVA_8_HOME environment variable set to JDK 8+ home directory.

架构

Pinpoint源码解析(一)_第1张图片

相关截图:

Pinpoint源码解析(一)_第2张图片
Pinpoint源码解析(一)_第3张图片
Pinpoint源码解析(一)_第4张图片

Pinpoint的特点如下:

分布式事务跟踪,跟踪跨分布式应用的消息

自动检测应用拓扑,帮助你搞清楚应用的架构

水平扩展以便支持大规模服务器集群

提供代码级别的可见性以便轻松定位失败点和瓶颈

使用字节码增强技术,添加新功能而无需修改代码

安装探针不需要修改哪怕一行代码及trace server端部署简单,支持hdfs存储

具有简单的阀值触发报警功能

移植性比较强的,会比较讨人喜欢(相比cat)

插件化功能可扩展(https://github.com/naver/pinpoint/wiki/Pinpoint-Plugin-Developer-Guide)

你可能感兴趣的:(Pinpoint源码解析(一))