文章插图
3、Pinpoint 部署网上太多部署文档,这里不详细说明,简要说明下:
文章插图
注意版本要求:
有两种方式启动:
方式一:修改 tomat 目录下 bin/catalina.sh,在 Control Script for the CATALINA Server 加入以下三行代码:
复制代码
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/home/webapps/service/pp-agent/pinpoint-bootstrap-1.6.2.jar"CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=pp32tomcattest"CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=32tomcat"之一行:pinpoint-bootstrap-1.6.2.jar 的位置第二行:agentId 必须唯一, 标志一个 jvm第三行:applicationName 表示同一种应用:同一个应用的不同实例应该使用不同的 agentId, 相同的 applicationName
方式二:SpringBoot 启动
复制代码
java-javaagent:/home/webapps/pp-agent/pinpoint-bootstrap-1.6.2.jar-Dpinpoint.agentId=pp32tomcattest -Dpinpoint.applicationName=32tomcat -jar 32tomcat-0.0.1-SNAPSHOT.jar4、代码注入是如何工作的
文章插图
Pinpoint 对代码注入的封装非常类似 AOP,当一个类被加载的时候会通过 Interceptor 向指定的 *** 前后注入 before 和 after 逻辑,在这些逻辑中可以获取系统运行的状态,并通过 TraceContext 创建 Trace 消息,并发送给 Pinpoint 服务器 。但与 AOP 不同的是,Pinpoint 在封装的时候考虑到了更多与目标代码的交互能力,因此用 Pinpoint 提供的 API 来编写代码会比 AOP 更加容易和*** 。
5、Pinpoint 实战效果演示搭建一个 java 开源项目 jforum,跑在 tomcat 下,使用 jmeter 进行压测,用户 100 个:
服务器图(ServerMap)通过可视化其组件的互连方式来了解任何分布式系统的拓扑 。单击节点将显示有关组件的详细信息,例如其当前状态和事务计数 。实时活动线程图(Realtime Active Thread Chart)实时监视应用程序内的活动线程 。(用了官方图,当时没截图)请求 / 响应散布图(Request/Response Scatter Chart)可视化请求计数和响应模式,以确定潜在问题 。可以通过在图表上拖动来选择事务以获取更多详细信息 。调用栈信息(CallStack)增强分布式环境中每个事务的代码级可见性,识别单个视图中的瓶颈和故障点 。检查器(Inspector)查看应用程序的其他详细信息,如 CPU 使用率,内存 / 垃圾收集,TPS 和 JVM 参数 。
文章插图
6、总结之一:PinPoint 从宏观上看:总体链路、服务总体状态(cpu、内存等等信息),符合【测试角度场景】性能测试调优监控的宏观;第二:Spring Cloud Slueth 需要结合 Zipkin 从微观来看:自身无法单独提供展示,要结合 Zipkin 展示链路问题(并没有服务器总体状态的展示),更多服务器性能状况等信息展示需要定制脚本通过 ELK 收集展示,符合【研发角度场景】性能测试调优监控的微观;
总的来说两者是结合体,要单独使用的话,从测试业务上来看:PinPoint 满足,性能测试调优监控的宏观【测试角度场景】
7、项目场景访问某个 API,后端应用服务产生的一系列链路,为何请求一次有 23 次数据库访问呢?这里就是需要排查的的地方,详细看看 CallTree,找出可优化的 SQL 查询语句 。
文章插图
文章插图
另外,在做性能测试的时候,服务器并发的 IO,PP 不断写入也会产生瓶颈,需要后续解决 。
8、标签库项目简单压测通过 jmeter 对标签库进行简单压测,脚本如下:
文章插图
通过 APM 发现问题如下:
文章插图
pquery.do 的 res 高达 6782ms,需要安排开发进一步排查定位代码问题
文章插图
文章插图
另外一种场景,测试人员无法在页面获取到的信息(有些情况下,测试人员是没有服务器权限),这些是服务底层的异常信息,可以通过 CallTree 来查看 。
9、应用服务接入 APM 后的链路全景蜘蛛网图
推荐阅读
- pop手办是什么 手办是什么
- 九秩是什么意思 怎么理解九秩的意思
- 农历九月初九是什么日子 九月九日是什么日子
- 影影绰绰是什么意思 影影绰绰的意思介绍
- 2022呼和浩特小金话筒奖成绩查询 呼和浩特小金话筒比赛2020
- 公务员选调生是什么意思 公务员选调生说的是什么
- 关于months是什么意思的信息
- 疫情防控四必是什么 疫情防控四必是什么内容
- 众物腾怨的意思是什么 词语众物腾怨什么意思
- 茶百道厚乳版是什么 茶百道厚乳版有什么区别