一、摘要
简单的说,Pinpoint是一款对Java编写的大规模分布式系统的APM工具,有些人也喜欢称呼这类工具为调用链系统
、分布式跟踪系统
。我们知道,前端向后台发起一个查询请求,后台服务可能要调用多个服务,每个服务可能又会调用其它服务,最终将结果返回,汇总到页面上。如果某个环节发生异常,工程师很难准确定位这个问题到底是由哪个服务调用造成的,Pinpoint等相关工具的作用就是追踪每个请求的完整调用链路,收集调用链路上每个服务的性能数据,方便工程师能够快速定位问题。
二、特点
1,分布式事务跟踪,跟踪跨分布式应用的消息
2,自动检测应用拓扑,帮助你搞清楚应用的架构
3,水平扩展以便支持大规模服务器集群
4,提供代码级别的可见性以便轻松定位失败点和瓶颈
5,使用字节码增强技术,添加新功能而无需修改代码
6,安装探针不需要修改哪怕一行代码及trace server端部署简单,支持hdfs存储
7,具有简单的阀值触发报警功能
8,移植性比较强的,会比较讨人喜欢(相比cat)
9,自定义插件功能(参考https://github.com/naver/pinpoint/wiki/Pinpoint-Plugin-Developer-Guide)
三、为什么用pinpoint
最重要的原因,对代码的零侵入,运用JavaAgent字节码增强技术,只需要加启动参数即可。
四、部署说明
本文的部署方式也适用于最新的1.8.3版。
Pinpoint collctor采集器和web服务部署在pp-server上
pinpoint agent和测试用的项目(tomcat服务)部署在pp-agent上
五、架构及效果
原文:https://www.cnblogs.com/bittliuy/p/11415594.html