作者:adfa3sd5f6a | 来源:互联网 | 2024-10-10 14:13
[官方参考](https:github.comnaverpinpointblobmasterdocinstallation.md”pinpoint官方文档”)中文文档参考环境要求:
[官方参考](https://github.com/naver/pinpoint/blob/master/doc/installation.md” pinpoint 官方文档”)
中文文档参考
环境要求:jdk1.6+
1. 安装hbase(v1.1.5)
wget http://mirrors.hust.edu.cn/apache/hbase/1.1.5/hbase-1.1.5-bin.tar.gz
直接解压然后 运行bin下面的start-hbase.sh(如果没有配置过jdk环境变量,需要配置hbase-env.sh中的jdk path)
2.安装pinpoint(v1.5.2)
直接下载web、collector和agent的包
wget https://github.com/naver/pinpoint/releases/download/1.5.2/pinpoint-web-1.5.2.war; wget https://github.com/naver/pinpoint/releases/download/1.5.2/pinpoint-collector-1.5.2.war; wget https://github.com/naver/pinpoint/releases/download/1.5.2/pinpoint-agent-1.5.2.tar.gz
将web和collector分别放到web容器下,最好两个容器,我将web的端口设为28080,collector的端口设为18080,
如果hbase和web,collector在同一台机器,不需要任何配置,默认会去读本地的hbase zookeeper。
若agent与collction分布在不同的机器,需要修改agent配置文件如下:
image.png
需要修改collection配置文件(pinpoint-collector-1.5.2/WEB-INF/classes/pinpoint-collector.properties)如下:
image.png
3.集成到应用
将agent放到app所在的服务器,然后再启动参数中加入
比如我现在用的是dubbo服务(最新的pinpoint已经支持了dubbo)
java -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar -Dpinpoint.agentId=$AGENT_ID -Dpinpoint.applicatiOnName=$APPLICATION_NAME
备注: AGENT_PATH:agent存放的位置,VERSION:我用的是1.5.2, AGENT_ID :自定义。就是一个唯一标识,APPLICATION_NAME:自定义 如果是tomcat的话修改
catalina.sh,添加
-javaagent,
-Dpinpoint.agentId,
-Dpinpoint.applicationName 到
CATALINA_OPTS 参数里去。
4.效果图
访问 :http://192.168.1.49:28080/
首页.png
右上角的小蓝点代表每次访问,选中可以查看详情如下
请求栈.png
transaction详情.png
选中其中的某个transaction,可以看到完整的java stack,甚至包括执行的sql语句,多么完美的apm工具!
(友情提醒:不建议使用pinpoint的quickstart,不然你都不知道到底发生了什么,出现问题,很难定位。)
遇到的坑
1、目前使用的版本只能支持到jdk1.7 需要在path中建JAVA_7_HOME这个环境变量
2、我将hbase当中的测试数据全部清除后, 然后调用被监控的接口,然后前端总是不显agent的application信息,然后去查询agentinfo表,确实没有数据,但是,agentStatus当中的表都有了数据,只有agentInfo表怎么都没有数据….折腾半天原来被监控的服务需要重启,才能将agent信息重新注册到hbase中。。。。。。
3、清除了hbase的data文件之后,通过hbase的list命令返回为空库,但是重新初始化pinpoint的表结构时,提示:表已存在,,,,,很奇怪,最后发现,虽然删除了hbase的表数据,但是hbase的表都注册到zk中了,所以需要把zk中的数据也要清理掉……