资讯专栏INFORMATION COLUMN

实践应用性能管理工具使用系列一:Pinpoint代码编译安装

IT那活儿 / 530人阅读
实践应用性能管理工具使用系列一:Pinpoint代码编译安装
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!


01

近期因客户现场需求,需要利用Pinpoint对应用的性能及jvm指标进行监测。
Pinpoint 是一款开源的 APM(Application Performance Management/应用性能管理)工具,通过跟踪分布式应用之间的调用来提供解决方案,以帮助分析系统的总体结构和内部模块之间如何相互联系。
  • Pinpoint Collector: 接收pinpoint agent 采集过来性能数据,如tracing数据 ,jvm数据等,接收数据协议支持grpc/thrift;
  • Pinpoint Web :web管理界面;
  • Pinpoint Agent :在jvm 上加入agent 代理方式对应用性能数据做采样监测,并将数据上传给collector;
  • HBase : 存储采集上来的性能数据。


02

以安装pinpoint 最新稳定版本2.3.3 为例,主要是分为如下几种方式
  • 方式一:快速安装

    通过下载官方稳定版本自带编译包进行下载安装,适用于不对pinpoint进行二次开发使用的场景,参考文档https://github.com/pinpoint-apm/pinpoint/blob/v2.3.3/doc/quickstart.md

  • 方式二:编译部署
    基于pinpoint 源代码进行编译部署,适用于对pinpoint  进行二次开发,

    https://github.com/pinpoint-apm/pinpoint/blob/v2.3.3/doc/installation.md

  • 方式三:容器部署
    利用docker-compose命令实现一键部署运行pinpoint 环境,无需多带带部署相关组件,参考文档 https://github.com/pinpoint-apm/pinpoint-docker


03

本文介绍的是通过编译方式实现pinpoint 最新稳定 v2.3.3 版本安装
3.1 下载源代码
git clone -b v2.3.3 https://github.com/pinpoint-apm/pinpoint.git
3.2 安装maven(可选)
https://maven.apache.org/download.cgi
下载解压:tar -xzvf  apache-maven-3.8.4.tar.gz
新增仓库地址:
apache-maven-3.8.4/conf/settings.xml
<mirror>
<id>alimavenid>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<mirrorOf>centralmirrorOf>
mirror>
修改.bash_profile环境变量:
export M2_HOME=/Users/Documents/apache-maven-3.8.4
export PATH=$PATH:$M2_HOME/bin
生效环境变量:
source .bash_profile

3.3 安装jdk

编译pinpoint 需要安装jdk 7/8/9 三个版本,并设置对应的环境变量:
  • JAVA_HOME

    JAVA_HOME 环境变量设置为 JDK 8 主目录,jdk8 小版本无特别要求,尽量使用最新版本。

    jdk下载地址:https://www.oracle.com/java/technologies/downloads/#java8
  • JAVA_8_HOME

    JAVA_8_HOME 环境变量设置为 JDK 8 主目录,JAVA_HOME 与JAVA_8_HOME

    设置成同一个路径。
  • JAVA_7_HOME

    JAVA_7_HOME 环境变量设置为 JDK 7 主目录,版本要求1.7.0_80。

    jdk下载地址:

    https://www.oracle.com/java/technologies/javase/javase7-archive-downloads.html
  • JAVA_9_HOME

    JAVA_9_HOME 环境变量设置为 JDK 9 主目录,版本要求jdk-9.0.4。

    jdk下载地址:

    https://www.oracle.com/java/technologies/javase/javase9-archive-downloads.html

3.4 代码编译
./mvnw install -DskipTests=true
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for pinpoint 2.3.3:
[INFO]
[INFO] pinpoint ........................................... SUCCESS [ 3.692 s]
[INFO] pinpoint-annotations ............................... SUCCESS [ 2.553 s]
[INFO] pinpoint-commons ................................... SUCCESS [ 4.639 s]
。。。。。
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18:09 min
[INFO] Finished at: 2022-05-07T20:37:30+08:00
[INFO] ------------------------------------------------------------------------
如果在编译过程出现 BUILD FAILURE 根据编译过程报错提示找到对应的解决办法, 编译成后会在子模块的target目录下下找到对应的编译包。
错误: 找不到或无法加载主类 org.apache.maven.wrapper.MavenWrapperMain
解决办法:mvn -N io.takari:maven:wrapper
子模块
编译目录
web
web/target/pinpoint-web-2.3.3.jar
collector
collector/pinpoint-collector-2.3.3.jar
agent
agent/target/pinpoint-agent-2.3.3


3.5 hbase部署

生产环境建议采用分布式部署方式,测试环境可以采用单机部署方式,本次以单机方式进行部署
版本要求:v2.3.3 官方支持hbase 版本 1.2.x/ 1.4.x/ 2.0.x ,pinpoint 默认使用hbase 1.x版本,如果想使用hbase 2.0.x 版本需要使用hbase2-module模块。
下载地址
https://archive.apache.org/dist/hbase/
https://archive.apache.org/dist/hbase/1.4.14/hbase-1.4.14-bin.tar.gz
1)安装
tar xvf hbase-1.4.14-bin.tar.gz
cd hbase-1.4.14
mkdir   zookeeperdata
mkdir    tmp
mkdir   data
2)修改配置
cd conf
cp hbase-site.xml hbase-site.bak

在hbase-site.xml 里面新增如下内容:

<configuration>
<property>
<name>hbase.rootdirname>
<value>/home/hbase-1.4.14/datavalue>
property>
<property>
<name>hbase.tmp.dirname>
<value>/home/hbase-1.4.14/tmpvalue>
property>
<property>
<name>hbase.zookeeper.quorumname>
<value>192.168.xxx.xxx:2181value>
property>
<property>
<name>hbase.zookeeper.property.dataDirname>
<value>/home/hbase-1.4.14/zookeeperdatavalue>
property>
<property>
<name>hbase.cluster.distributedname>
<value>falsevalue>
property>
configuration>
3)启动
cd  bin
sh  start-hbase.sh

查看进程:jps (存在HMaster)或者ps -ef|grep hbase;

日志查看: . logs/.
4)导入pinpoint表模型
cd bin
./hbase shell hbase-create.hbase

表模型:

https://github.com/pinpoint-apm/pinpoint/blob/v2.3.3/hbase/scripts/hbase-create.hbase
表模型说明:https://github.com/pinpoint-apm/pinpoint/tree/v2.3.3/hbase/scripts
检查表模型是否导入成功:
./hbase shell
hbase(main):003:0> list
TABLE
AgentEvent
AgentInfo
AgentLifeCycle
AgentStatV2
ApiMetaData
ApplicationIndex
ApplicationMapStatisticsCallee_Ver2
ApplicationMapStatisticsCaller_Ver2
ApplicationMapStatisticsSelf_Ver2
ApplicationStatAggre
ApplicationTraceIndex
HostApplicationMap_Ver2
SqlMetaData_Ver2
StringMetaData
TraceV2
15 row(s) in 0.0310 seconds

=> ["AgentEvent", "AgentInfo", "AgentLifeCycle",
"AgentStatV2", "ApiMetaData", "ApplicationIndex",
"ApplicationMapStatisticsCallee_Ver2",
"ApplicationMapStatisticsCaller_Ver2",
"ApplicationMapStatisticsSelf_Ver2", "ApplicationStatAggre",
"ApplicationTraceIndex", "HostApplicationMap_Ver2",
"SqlMetaData_Ver2", "StringMetaData", "TraceV2"]
3.6 启动pinpoint-web
java -Xms1g -Xmx1g -jar -
Dpinpoint.zookeeper.address=192.168.xxx.xxx -
Dhbase.client.port=2181 pinpoint-web-boot-2.3.3.jar --
server.port=8080

说明:

  • pinpoint.zookeeper.address  zk 地址;
  • hbase.client.port  hbase客户端端口;
  • server.port  web 端口,默认为 8080;
  • 日志查看 logs/.
3.7 安装pinpoint-collector
java -Xms1g -Xmx1g -jar -
Dpinpoint.zookeeper.address=192.168.xxx.xxx -
Dhbase.client.port=2181 pinpoint-collector-boot-2.3.3.jar

说明:

  • pinpoint.zookeeper.address  zk 地址;
  • hbase.client.port  hbase客户端端口;
  • 日志查看 logs/.
3.8 配置pinpoint-agent
  • 修改pinpoint-agent配置文件:
pinpoint-agent-2.3.3/profiles/release/pinpoint.config
    将collector 指向对应的ip地址:
profiler.transport.grpc.collector.ip=192.168.xxx.xxx
profiler.collector.ip=192.168.xxx.xxx
  • 选择一个需要监测的应用,在jvm参数里面新增pinpoint-agent 配置信息:
JAVA_OPTS="-javaagent:/xx/pinpoint-agent-2.3.3/pinpoint-
bootstrap-2.3.3.jar -Dpinpoint.agentId=192.168.xxx.xxx-8081 -Dpinpoint.app
licationName=snc-datacollection ... "
    重启应用,并且操作一下所监测的应用业务模板,同时查看agent 生成的日志:
/xx/pinpoint-agent-2.3.3/logs/
3.9 查看agent采集性能数据
http://xx.xx.xx.xx:8080  (pinpoint web 端口来源于--server.port 参数指定,默认为 8080)
  • 主页,能看到所监测pinpoint.applicationName名称,说明应用已成功监测
  • 调用链数据,查看代码调用过程,包含调用了哪一些sql:
  • 点击主机Inspector按钮查看jvm监测指标:

本文作者:暨景书(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129383.html

相关文章

  • Mac下使用Docker快速搭建pinpont追踪系统APM

    摘要:下使用搭建分布式追踪系统简介是一个用编写大规模分布式系统性能管理工具,等相关工具的作用就是追踪每个请求的完整调用链路,收集调用链路上每个服务的性能数据,方便工程师能够快速定位问题。 Mac下使用Docker搭建pinpont分布式追踪系统APM 简介 Pinpoint 是一个用Java 编写大规模分布式系统性能管理 APM (Application Performance Manage...

    verano 评论0 收藏0
  • Pinpoint分布式APM安装部署

    摘要:为了方便测试,我们在一台机器上安装所需有的软件部署时间需要的软件及版本软件名称版本号系列当前下载所需软件下载下载针对数据库初始化文件安装基础软件安装详见安装详见初始化数据库登录到服务器中执行以下命令安装修改配置文件 为了方便测试,我们在一台机器上安装所需有的软件 部署时间:2019-03-25 需要的软件及版本 软件名称 版本号 pinpoint系列(web, collec...

    fobnn 评论0 收藏0
  • 服务迁移之路 | Spring Cloud向Service Mesh转变

    摘要:服务网关服务网关涵盖的功能包括路由,鉴权,限流,熔断,降级等对入站请求的统一拦截处理。具体可以进一步划分为外部网关面向互联网和内部网关面向服务内部管理。应用服务应用服务是企业业务核心。到此实际上已经完成服务迁移工作。 导读 Spring Cloud基于Spring Boot开发,提供一套完整的微服务解决方案,具体包括服务注册与发现,配置中心,全链路监控,API...

    rickchen 评论0 收藏0
  • 【推荐】最新200篇:技术文章整理

    摘要:作为面试官,我是如何甄别应聘者的包装程度语言和等其他语言的对比分析和主从复制的原理详解和持久化的原理是什么面试中经常被问到的持久化与恢复实现故障恢复自动化详解哨兵技术查漏补缺最易错过的技术要点大扫盲意外宕机不难解决,但你真的懂数据恢复吗每秒 作为面试官,我是如何甄别应聘者的包装程度Go语言和Java、python等其他语言的对比分析 Redis和MySQL Redis:主从复制的原理详...

    BicycleWarrior 评论0 收藏0
  • 【推荐】最新200篇:技术文章整理

    摘要:作为面试官,我是如何甄别应聘者的包装程度语言和等其他语言的对比分析和主从复制的原理详解和持久化的原理是什么面试中经常被问到的持久化与恢复实现故障恢复自动化详解哨兵技术查漏补缺最易错过的技术要点大扫盲意外宕机不难解决,但你真的懂数据恢复吗每秒 作为面试官,我是如何甄别应聘者的包装程度Go语言和Java、python等其他语言的对比分析 Redis和MySQL Redis:主从复制的原理详...

    tommego 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<