热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

APMpinpoint(分布式集群环境下的性能监控)

[官方参考](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配置文件如下:

    《APM-pinpoint(分布式集群环境下的性能监控)》 image.png
    需要修改collection配置文件(pinpoint-collector-1.5.2/WEB-INF/classes/pinpoint-collector.properties)如下:

《APM-pinpoint(分布式集群环境下的性能监控)》 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.applicationNameCATALINA_OPTS 参数里去。

4.效果图

访问 :http://192.168.1.49:28080/

《APM-pinpoint(分布式集群环境下的性能监控)》 首页.png

右上角的小蓝点代表每次访问,选中可以查看详情如下

《APM-pinpoint(分布式集群环境下的性能监控)》 请求栈.png
《APM-pinpoint(分布式集群环境下的性能监控)》 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中的数据也要清理掉……


推荐阅读
  • 本文详细介绍了 Apache ZooKeeper 的 FileTxnLog 类中的 setPreallocSize 方法,并提供了多个实际应用中的代码示例。通过这些示例,读者可以更好地理解如何在不同场景下合理设置日志文件的预分配大小。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
  • window下kafka的安装以及测试
    目录一、安装JDK(需要安装依赖javaJDK)二、安装Kafka三、测试参考在Windows系统上安装消息队列kafka一、安装JDKÿ ... [详细]
  • Zookeeper面试常见问题解析
    本文详细介绍了Zookeeper中的ZAB协议、节点类型、ACL权限控制机制、角色分工、工作状态、Watch机制、常用客户端、分布式锁实现、默认通信框架以及消息广播和领导选举的流程。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文详细介绍了 Java 中的 org.apache.hadoop.registry.client.impl.zk.ZKPathDumper 类,提供了丰富的代码示例和使用指南。通过这些示例,读者可以更好地理解如何在实际项目中利用 ZKPathDumper 类进行注册表树的转储操作。 ... [详细]
  • Hadoop发行版本选择指南:技术解析与应用实践
    本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ... [详细]
  • ZooKeeper集群脑裂问题及其解决方案
    本文深入探讨了ZooKeeper集群中可能出现的脑裂问题,分析其成因,并提供了多种有效的解决方案,确保集群在高可用性环境下的稳定运行。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 如何构建基于Dubbo协议的示例项目
    本文详细介绍了构建基于Dubbo协议的示例项目的步骤,包括环境搭建、服务接口定义、服务实现、配置文件设置及客户端调用等环节,旨在为初学者提供一个清晰的学习路径。 ... [详细]
author-avatar
adfa3sd5f6a
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有