APM-pinpoint(分布式集群环境下的性能监控)

[官方参考](https://github.com/naver/pinpoint/blob/master/doc/installation.md" pinpoint 官方文档")
中文文档参考

环境要求:jdk1.6+

1. 安装hbase(v1.1.5)

<pre><code>wget http://mirrors.hust.edu.cn/apache/hbase/1.1.5/hbase-1.1.5-bin.tar.gz</code></pre> 直接解压然后 运行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)
<pre><code>java -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar -Dpinpoint.agentId=$AGENT_ID -Dpinpoint.applicationName=$APPLICATION_NAME</code></pre>
备注: AGENT_PATH:agent存放的位置,VERSION:我用的是1.5.2, AGENT_ID :自定义。就是一个唯一标识,APPLICATION_NAME:自定义
   如果是tomcat的话修改catalina.sh,添加-javaagent, -Dpinpoint.agentId, -Dpinpoint.applicationNameCATALINA_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中的数据也要清理掉......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是分布式全链路监控?不懂的同学请自行脑补了,这里不再阐述,目前开源中,比较接近生产应用的是pinpoint,是...
    伦文聚阅读 10,857评论 24 13
  • 一、技术概述 1.1、架构组成 Pinpoint 主要由 3 个组件外加 Hbase 数据库组成,三个组件分别为:...
    我是嘻哈大哥阅读 8,026评论 0 8
  • 当我想研究一门新语言的时候,旁边的声音说你这是在浪费钱?语言专业毕业的朋友劝告你别掉进这个死胡同,因为他自己掌握几...
    赋愁者脸萌阅读 302评论 0 0
  • 出来工作之后,想提笔写点什么吧,好像都不知道该写些什么东西。每天的每天都是两点一线,之前读书还有三点一线的说...
    隔离屋嗰女阅读 264评论 0 2
  • 观点可能会被任何一种错误的种类所破坏。下面这些是错误的种类和各种错误的例子: 1·由于人的本性,错误或出错的倾向在...
    杨秀华阅读 221评论 0 1