Pinpoint源码解析(一)

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

安装agent是无侵入式的
【Pinpoint源码解析(一)】对性能的影响最小(只增加约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源码解析(一)
文章图片
相关截图:
Pinpoint源码解析(一)
文章图片
Pinpoint源码解析(一)
文章图片
Pinpoint源码解析(一)
文章图片
Pinpoint的特点如下:

分布式事务跟踪,跟踪跨分布式应用的消息
自动检测应用拓扑,帮助你搞清楚应用的架构
水平扩展以便支持大规模服务器集群
提供代码级别的可见性以便轻松定位失败点和瓶颈
使用字节码增强技术,添加新功能而无需修改代码
安装探针不需要修改哪怕一行代码及trace server端部署简单,支持hdfs存储
具有简单的阀值触发报警功能
移植性比较强的,会比较讨人喜欢(相比cat)
插件化功能可扩展(https://github.com/naver/pinpoint/wiki/Pinpoint-Plugin-Developer-Guide)

    推荐阅读