1.介绍Pinpoint

Pinpoint 是一个APM(Application performance management)工具,相对于其他APM工具(例如ZipKin)有一个强大的优势,那就是应用程序无需修改一行代码就能直接使用,例如Java程序直接使用Pinpoint提供的Java agent(jar包)就能使用。目前Pinpoint直接Java/PHP/Python三种语言,未来可能会支持更多语言,开源社区极其活跃,版本迭代比较快。

 
Pinpoint的优势

除了上面谈到的对用户代码无嵌入外,Pinpoint还有以下优势:

1.强大的UI

UI会自动识别程序的调用关系并且绘制图表,支持的组件多,例如Tomcat/Jetty/JBoss/Thrift/Kafka/Mysql等等。

2.调用链信息全

除了能看到调用关系及每一级耗时外,还能看到每一级的参数及SQL。

3.高性能

在JVM字节码层做处理,程序的性能损耗小于3%。

Pinpoint架构

由Pinpoint官方给出的架构图我们可以看出,Pinpoint Agent负责采集用户程序的信息 通过 网络将信息发给服务端 Pinpoint Collector,Pinpoint Collector将数据持久化到Hbase中,前端Web UI从Hbase中读取数据展示给用户。是一个标准的C/S分布式架构,选中Hbase的原因想必是为了支持海量数据。
 

2.安装

如果测试环境,可以一键使用别人封装好的docker镜像进行启动,网上有很多docker-compose启动的,比较麻烦,里面服务独立容器启动的,封装好的镜像可以一键启动

  docker run -it -d --name=pinpoint  --net=host 271760513/pinpoint:2.3.3

要注意--net=host 模式,不能有端口冲突

完事打开ip:8080,则启动成功

3.对接spring-boot

1.下载pinpoint的agent

Release v2.3.3 · pinpoint-apm/pinpoint · GitHub

https://github.com/pinpoint-apm/pinpoint/releases/download/v2.3.3/pinpoint-agent-2.3.3.tar.gz

2.解压修改配置文件

如果端口没有通过docker映射的话,只需要改一个ip就行

profiles\release\pinpoint.config

profiler.transport.grpc.collector.ip=192.168.1.27

profiler.collector.ip=192.168.1.27

#采样率 全采样
profiler.sampling.rate=1

3.修改spring-boot项目的jvm参数

-javaagent:D:\pinpoint-agent-2.3.3\pinpoint-bootstrap-2.3.3.jar
-Dpinpoint.applicationName=imgbd-admin
-Dpinpoint.agentId=imgbd-admin-local

修改对应的路径和applicationName即可

4.启动项目

请求接口即可在pinpoint的web查看到调用链

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐