一、pinpoint简述
架构说明:
Pinpoint-Collector:收集各种性能数据
Pinpoint-Agent:和自己运行的应用关联起来的探针
Pinpoint-Web:将收集到的数据显示成WEB网页形式
HBase Storage:收集到的数据存到HBase中
二、部署
2.1准备工作
注:本事部署所符合的情况是用某一台服务器的pinpoint去监控另一台电脑上的服务
注:以下将pinpoint端所在的服务器简述为pp端,项目所在的服务器简述为poj端
2.1.1poj端
需要在poj端准备好pinpoint-agent,版本如下图所示:
参考的下载地址:[Release v2.3.3 · pinpoint-apm/pinpoint · GitHub
1 解压到随意文件夹
2 pinpoint-root.config 配置
1、profiler.collector.ip=192.168.128.128 #配置dokcer容器主机ip
2、profiler.collector.span.port=29996 #配置端容器端口
3、profiler.collector.tcp.port=29994 #配置端容器端口
4、profiler.collector.stat.port=29995 #配置端容器端口
5、profiler.sampling.rate=1 #配置采样率 一定要改成1 别注释掉
6、profiler.transport.grpc.collector.ip=192.168.80.199 #配置dokcer容器主机ip
7、profiler.applicationservertype=SPRING_BOOT #服务类型可以根据自己的配置 (TOMCAT\SPRING_BOOT)我的是boot
8、profiler.transport.grpc.stat.collector.port=9092
9、profiler.transport.grpc.span.collector.port=9093
注:2,3,4,5,7,8,9可直接照搬修改(与启动命令相匹配,启动命令下文给出)
3 配置项目(基于IDEA)
添加VM选项配置
vm配置
代码:
-javaagent:D:\pinpoint\pinpoint-agent-2.3.3\pinpoint-agent-2.3.3\pinpoint-bootstrap-2.3.3.jar
-Dprofiler.transport.grpc.collector.ip=192.168.80.199
-Dprofiler.collector.ip=192.168.80.199
-Dpinpoint.agentId=104
-Dpinpoint.applicationName=Lcqy_service
注:-javaagent 是自己pinpoint-agent所在文件的位置,记得修改
注:ip要修改成pp端对应得ip地址
注:Dpinpoint.agentId和Dpinpoint.applicationName可自行定义,但必须唯一
4 引入依赖
代码:
<dependency>
<groupId>com.navercorp.pinpoint</groupId>
<artifactId>pinpoint-spring-boot-plugin</artifactId>
<version>2.3.3</version>
</dependency>
2.2.2 pp端 (基于centos7虚拟机)
需要在服务器上准备好docker,如果没有安装docker,可以参考:
https://blog.csdn.net/qq_42288638/article/details/103946859
1 执行拉取命令:
docker pull 271760513/pinpoint:2.3.3
拉取完成后执行:
docker images
有版本则表示成功,如下图所示
2 执行启动命令:
docker run -it -d --name=pinpoint -p 28080:8080 -p 16010:16010 -p 29994:29994 -p 29995:29995 -p 29996:29996 -p 9991:9991 -p 9092:9992 -p 9093:9993 -v /etc/localtime:/etc/localtime:ro 1a364f5d4838
命令解释:
-p 28080:8080 -p 16010:16010 -p 29994:29994 -p 29995:29995 -p 29996:29996 -p 9991:9991 -p 9092:9992 -p 9093:9993 这一串命令为暴露容器内端口,避免连接异常
-v /etc/localtime:/etc/localtime:ro 这一串命令是同步容器内时间和虚拟机本身时间,避免网络异常
3 查看容器是否执行成功
执行:
docker ps
有信息则表示启动成功,如下图所示
4 进入容器
执行:
docker exec -it pinpoint /bin/bash
如下图所示即成功
5 查看日志
执行:
cat start_pinpoint.log
结果如下图所示:
注:这两个分别是pinpoint页面启动的网址(上)和hbase页面启动网址(下);<ip> 为服务器的ip地址
6 验证hbase启动成功
浏览器输入上图网址即可
输入网址后如下图所示即表示成功
7 验证pinpoint启动成功
输入网址后如下图所示即表示成功
三、测试
1 启动本地配置好IDEA的项目
2 检查pinpoint页面
如下图所示即表示监控成功
3 测试pinpoint能否检测到服务器内部错误
利用swagger调用写好的错误接口
回到pinpoint页面刷新
可以看到pinpoint确实能具体定位到哪里有问题
至此pinpoint部署搭建测试完成