pinpoint全链路追踪工具操作使用

当我们性能测试中发现响应时间不符合要求,或者在功能测试中发现某个接口耗时很长时,可以使用pinpoint观察调用链,找到耗时长的代码行进行优化。

pinpoint是一款开源的APM监控工具,是使用java编写的。它是一款全链路分析工具,功能比较丰富,操作使用如下:

1、登录监控中心(例如:http://192.168.8.42:8079/main

2、在项目选择栏里,先选择项目,如下图,项目名称就是启动时指定的applicationName。【nohup java -jar -javaagent:/home/iotmp/pinpoint-agent-2.3.3/pinpoint-bootstrap.jar -Dpinpoint.agentId=uiautotest214-ID -Dpinpoint.applicationName=uiautotest214 ./autotestserver-0.0.1-SNAPSHOT.jar &

pinpoint全链路追踪工具操作使用

3、查看服务拓扑图:pinpoint对整个系统中应用的调用关系进行了可视化的展示


pinpoint全链路追踪工具操作使用

2、单击某个服务节点,可以显示该节点的详细信息。右边以时间维度进行请求计数和响应时间的展示

pinpoint全链路追踪工具操作使用

展示2天内该服务的请求计数和响应时间,请求总数14501,其中172是存在error的,同时存在很多耗时长的接口

pinpoint全链路追踪工具操作使用

可以查看请求响应时间情况以及平均、最大响应时间

3、鼠标左键框选需要查看的请求,松开左键,就可以查看针对到代码维度的执行详情,帮助查找请求的瓶颈和故障原因


pinpoint全链路追踪工具操作使用

左键框选,松开左键

从图中可以看到,该接口耗时,长达98.281s

pinpoint全链路追踪工具操作使用

从调用栈中可以查看到该接口主要耗时在insertProjectCaseSteps()方法中

pinpoint全链路追踪工具操作使用

查看insertProjectCaseSteps()方法中都有一个插入和修改的sql语句。从而可以给开发提供建议,让开发不要一条条修改和新增,改成批量插入。

注:批量插入SQL执行效率高的主要原因是合并后日志量(MySQL的binlog和innodb的事务让日志)减少了,降低日志刷盘的数据量和频率,从而提高效率。通过合并SQL语句,同时也能减少SQL语句解析的次数,减少网络传输的IO。

pinpoint全链路追踪工具操作使用

4、调用栈中Gap(ms)、Exec(ms)、self(ms)几个耗时的意思:

Gap(ms):从上一个方法的开始到该方法的输入之间经过的时间

Exec(ms):方法调用从入口到出口的持续时间

self(ms):方法调用从入口到出口的持续时间,不包括嵌套方法调用中消耗的时间


pinpoint全链路追踪工具操作使用

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章