APM监控 OPM监控 apm监控工具_应用监控工具


简介

Pinpoint是一款全链路APM监控工具,基于Google的Dapper论文进行的实现,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能。

功能

  • 服务拓扑图:自动检测应用拓扑,帮助你搞清楚应用的架构。对整个系统中应用的调用关系进行了可视化的展示,单击某个服务节点,可以显示该节点的详细信息,比如当前节点状态、请求数量等
  • 实时活跃线程图:监控应用内活跃线程的执行情况,对应用的线程执行性能可以有比较直观的了解
  • 请求响应散点图:以时间维度进行请求计数和响应时间的展示,拖过拖动图表可以选择对应的请求查看执行的详细情况
  • 请求调用栈查看:对分布式环境中每个请求提供了代码维度的可见性,可以在页面中查看请求针对到代码维度的执行详情,帮助查找请求的瓶颈和故障原因。
  • 应用状态、机器状态检查:通过这个功能可以查看相关应用程序的一些详细信息,比如CPU使用情况,内存状态、垃圾收集状态,TPS和JVM信息等参数。
  • 分布式事务跟踪,跟踪跨分布式应用的消息
  • 水平扩展以便支持大规模服务器集群
  • 提供代码级别的可见性以便轻松定位失败点和瓶颈
  • 使用字节码增强技术,添加新功能而无需修改代码

架构组成



APM监控 OPM监控 apm监控工具_docker_02



Pinpoint 主要由 3 个组件外加 Hbase 数据库组成,三个组件分别为:Agent、Collector 和 Web UI。

  • Agent组件:用于收集应用端监控数据,无侵入式,只需要在启动命令中加入部分参数即可
  • Collector组件:数据收集模块,接收Agent发送过来的监控数据,并存储到HBase
  • WebUI:监控展示模块,展示系统调用关系、调用详情、应用状态等,并支持报警等功能

安装

git clone https://github.com/naver/pinpoint-docker.gitcd pinpoint-docker#如果网络不好,可能需要多执行几次docker-compose pull && docker-compose up -d

访问

flink页面:http://localhost:8081/pinpoint页面:http://localhost:8079/

下载探针

地址

找到和Collector组件匹配的版本,下载,我下载的是pinpoint-agent-1.8.3.tar.gz。

tar -zxvf pinpoint-agent-1.8.3.tar.gz

#修改ip为你自己的Collector组件ip

vim pinpoint.config

profiler.collector.ip=127.0.0.1

给应用配置探针

// 如果你在多台机器上部署了应用程序,那么就需要在多台机器上部署Agent组件// ${pinpointPath}是agent组件存放的路径// 在java启动命令中加入如下参数-javaagent:${pinpointPath}/pinpoint-bootstrap-1.8.3.jar-Dpinpoint.applicationName= // 在pinpoint上显示的名字-Dpinpoint.agentId= // agent唯一标识

实例1

java -javaagent:/Users/neal/repo/tools/pinpoint-docker/tools/pinpoint-bootstrap-1.8.3.jar -Dpinpoint.applicationName=userservice -Dpinpoint.agentId=userservice1 -jar userservice-0.0.1-SNAPSHOT.jar

实例2

java -javaagent:/Users/neal/repo/tools/pinpoint-docker/tools/pinpoint-bootstrap-1.8.3.jar -Dpinpoint.applicationName=userservice -Dpinpoint.agentId=userservice2 -jar userservice-0.0.1-SNAPSHOT.jar

手动请求下这两个实例的接口,刷新Pinpoint页面,如下图



APM监控 OPM监控 apm监控工具_docker_03