【关注公众号“SRE运维部落”,回复“pinpoint”与您分享钉钉二次开发代码】一、简介Pinpoint是一条全链条路径分析工具提供非侵入式调用链监控、方法执行详情查看、应用状态信息监控等功能。基于GoogleDapper论文的实现类似于另一个开源的全链路分析工具Zipkin,但与Zipkin相比,它提供了更多的非侵入式和代码维度监控等特性。2.主要功能服务拓扑图:为整个系统中的应用程序的调用关系进行可视化。点击一个服务节点,可以显示该节点的详细信息,比如当前节点状态、请求数等。实时活跃线程图:监控应用中活跃线程的执行情况,并且可以有一个更直观的了解应用程序的线程执行性能。请求响应散点图:在时间维度上展示请求计数和响应时间。拖拽图表选择对应的请求,查看执行详情。请求调用堆栈视图:是的分布式环境中的每个请求都提供代码维度的可见性。可以在页面查看请求到代码维度的执行详情,帮助找到请求失败的瓶颈和原因。应用状态、机器状态查看:通过该功能可以查看相关应用的其他详细信息,如CPU使用率、内存状态、垃圾回收状态、TPS和JVM信息等参数。三、架构组成Pinpoint主要由3个组件加上Hbase数据库组成。这三个组件是:Agent、Collector和WebUI。HBase(用于存储)Agent组件:用于采集应用端监控数据,非侵入式,只需要在启动命令中添加一些参数Collector组件:数据采集模块,接收Agent发送过来的监控数据,存储到HBaseWebUI中:监控显示模块,显示系统调用关系、调用详情、应用状态等,并支持告警等功能。四、部署安装(一)常用安装方法1、在网上百度下载别人制作的war包进行部署。调试监控,但不允许二次开发配置监控预警。二、拉取官方代码gitclonehttps://github.com/naver/pinpoint-docker.git安装步骤:1、HBase搭建HBase集群——ApacheHBase运行./hbase-start创建HBaseSchemas——在hbaseshell上执行/scripts/hbase-create.hbase初始化数据库2.构建Pinpoint(仅在从源代码构建时需要)ClonePinpoint-gitclone$PINPOINT_GIT_REPOSITORY将JAVA_6_HOME环境变量设置为JDK6主目录。将JAVA_7_HOME环境变量设置为JDK7+主目录。将JAVA_8_HOME环境变量设置为JDK8主目录。将JAVA_9_HOME环境变量设置为JDK9主目录。将JAVA_HOME环境变量设置为JDK主目录。注意:不是开玩笑,必须同时安装四个版本的jdk,其中五个必须设置javahome环境变量,而且必须是jdk,不能是openjdk!!!!!!!!!!!!!!!!!!!!!!(10.7.xxx.xx服务器已经安装了这个环境,如果需要打包pinpoint可以自己使用)在pinpoint根目录下运行mvninstall-Dmaven.test.skip=true3.PinpointCollector部署pinpoint-collector-$VERSION.war到web容器配置pinpoint-collector.properties,hbase.properties。启动容器4.PinpointWeb部署pinpoint-web-$VERSION.war到web容器配置pinpoint-web.properties,hbase.properties。启动容器5.PinpointAgent解压缩/移动pinpoint-agent/到方便的位置($AGENT_PATH)。设置-javaagent:$AGENT\_PATH/pinpoint-bootstrap-$VERSION.jarJVM参数,以便将agent附加到java应用程序,并设置-Dpinpoint.agentId和-Dpinpoint.applicationName命令行参数,以上述设置启动java应用程序(二)安装参考文档1.https://skyao.gitbooks.io/lea...2。https://naver.github.io/pinpo...四、使用规范(一)服务地址1.【http://10.7.xxx.xx:8085】没有相关账号密码,二次开发即可稍后进行(2)使用操作仪表板:对应用程序节点的服务、端点和实例进行细粒度监控。图标显示可以监控数据库数据源的sql、iqps等常用参数。拓扑图:各种图应用实例的全局展示,各种高层上行跟踪:接口层面的监控精细度告警:可进行20多种监控数据告警,可配置钉钉邮箱用于项目二次开发.文档,说明很详细,无代码入侵,支持log4j,log4j2,logbackhttps://github.com/naver/pinp..._feature_guide.mdtraceid可以在项目日志中添加,用于日志查询时跟踪链接,便于故障定位。例如:使用logback修改配置pinpoint-agent/pinpoint.configprofiler.logback.logging.transactioninfo=true修改项目配置logback.xml
