1、PinPoint简介
PinPoint是开源在github上的一款APM监控工具,它是由java编写的,用于大规模分布式系统的监控;它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测试的Tomcat中加上3句话,打下探针,就可以监控整套程序了。PinPoint支持的功能比较丰富,可以支持如下几种功能:
- 服务拓扑图:对整个系统中应用的调用关系进行了可视化的展示,单击某个服务节点,可以显示该节点的详细信息,比如当前节点状态、请求数量等
- 实时活跃线程图:监控应用内活跃线程的执行情况,对应用的线程执行性能可以有比较直观的了解
- 请求响应散点图:以时间维度进行请求计数和响应时间的展示,拖过拖动图表可以选择对应的请求查看执行的详细情况
- 请求调用栈查看:对分布式环境中每个请求提供了代码维度的可见性,可以在页面中查看请求针对到代码维度的执行详情,帮助查找请求的瓶颈和故障原因。
- 应用状态、机器状态检查:通过这个功能可以查看相关应用程序的其他的一些详细信息,比如CPU使用情况,内存状态、垃圾收集状态,TPS和JVM信息等参数。
2、PinPoint架构组成
- PinPoint Agent:用于收集应用端监控数据,无侵入式,只需要在启动命令中加入部分参数即可
- PinPoint Collector:数据收集模块,接收Agent发送过来的监控数据,并存储到HBase
- PinPoint Web:监控展示模块,展示系统调用关系、调用详情、应用状态等,并支持报警等功能
- HBase:数据库,用于保存监控数据
3、PinPoint使用说明
3.1.首页
3.2.请求调用栈
长按鼠标左键,框选散点
点击混合视图,可以切到新窗口展示前面三块的整体信息
3.3.服务状态
3.4.链路事务筛选
可以用Filter Transaction Wizard来按照条件搜索,比如说只搜索错误的请求。
选择只查看失败的请求,然后过滤