首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式跟踪工具Pinpoint初探

分布式跟踪工具Pinpoint初探

作者头像
小柒2012
发布2018-05-15 17:38:27
1.5K0
发布2018-05-15 17:38:27
举报
文章被收录于专栏:IT笔记IT笔记

前言

由于工作需要,前段时间抽口研究了一下APM(Application Performance Management)相关技术,无论是收费的还是免费的。由于技术栈的原因,最终还是选择Pinpoint,本文是为了记录Pinpoint详细的搭建过程。

架构图

pinpoint-architecture.png
pinpoint-architecture.png
优点

代码零侵入,运用JavaAgent字节码增强技术,只需要加启动参数即可。

搭建环境

机器

安装

功能

192.168.1.180(8080,9994,9995,9996)

pinpoint+hbase

pinpointweb面板、控制器以及hbase数据库

192.168.1.190

pinpoint-agent+分布式项目

采集分布式项目数据,发送给collector

由于下面使用了Docker环境,相关软件已经上传至映射目录。

工具说明

Pinpoint-Web

将收集到的数据显示成WEB网页形式

Pinpoint-Collector

收集各种性能数据

Pinpoint-Agent

和自己运行的应用关联起来的探针

HBase Storage

收集到的数据存到HBase中

hbase_scripts

Pinpoint初始化数据库

jdk-1.8

Java运行环境

apache-tomcat-8.0

Tomcat运行容器

Docker环境

这里,我们使用Docker进行测试,下载一个纯净版的centos:

docker pull docker.io/centos

创建测试环境:

docker run -it --name pinpoint -v /home/software/:/mnt/app  -p 9901:8080 -p 9994:9994 -p 9995:9995 -p  9996:9996  -p 16010:16010  docker.io/centos

安装JDK

由于oracle官网设置了必须认证才可以下载JDK,这里我们使用事先下载好的JDK8进行安装。

# 解压
tar -xvf jdk-8u131-linux-x64.tar.gz
# 移动路径
mv jdk1.8.0_131/ /usr/java/jdk1.8
# 配置环境变量
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
# 使生效
source /etc/profile

安装Hbase

解压,并放入指定目录:

tar -zxvf hbase-1.2.6-bin.tar.gz

mv hbase-1.2.6/ /usr/local/hbase

配置JDK环境变量位置:

cd /usr/local/hbase/conf/

vi hbase-env.sh

导入以下配置:

export JAVA_HOME=/usr/java/jdk1.8/

修改Hbase的配置信息:

vi hbase-site.xml

指定Hbase存储数据路径,建议为宿机目录:

<configuration>
    <property>
      <name>hbase.rootdir</name>
      <value>file:///mnt/app/hbase_data</value>
   </property>
</configuration>

最后,启动hbase:

cd /usr/local/hbase/bin/

./start-hbase.sh

查看Hbase是否启动成功,如果启动成功的会看到"HMaster"的进程:

[root@c0931ce16a8a bin]# jps
489 Jps
172 HMaster

启动成功以后,我们可以通过以下网址访问:

http://192.168.1.180:16010/master-status

不出意外,应该是这个样子:

HMaster
HMaster

初始化Hbase的pinpoint库:

./hbase shell /mnt/app/hbase_scripts/hbase-create.hbase
[root@c0931ce16a8a bin]# ./hbase shell /mnt/app/hbase_scripts/hbase-create.hbase 
2018-05-09 08:48:25,931 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
0 row(s) in 1.5670 seconds

0 row(s) in 4.2500 seconds

0 row(s) in 4.2440 seconds

0 row(s) in 1.2200 seconds

0 row(s) in 1.2210 seconds

0 row(s) in 1.2220 seconds

0 row(s) in 1.2220 seconds

0 row(s) in 1.2210 seconds

0 row(s) in 1.2260 seconds

0 row(s) in 8.2590 seconds

0 row(s) in 1.2260 seconds

0 row(s) in 2.2270 seconds

0 row(s) in 1.2290 seconds

0 row(s) in 1.2240 seconds

0 row(s) in 2.2340 seconds

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.0430 seconds

登录web,来查看HBase的数据是否初始化成功:

HMaster
HMaster

安装pinpoint

解压Tomcat8,将Tomcat8移动到指定位置:

tar -xvf apache-tomcat-8.0.36.tar.gz

mv apache-tomcat-8.0.36 /usr/local/tomcat8

为了方便省事,我们把pinpoint-web 和 pinpoint-collector 都撸进一个Tomcat中:

mv pinpoint-collector-1.7.2.war  /usr/local/tomcat8/webapps/
mv pinpoint-web-1.7.2.war  /usr/local/tomcat8/webapps/
# 把web重命名以下
mv pinpoint-web-1.7.2.war  pinpoint

启动Tomcat:

./startup.sh

前面的步骤ok,基本不会出现问题,你也可以查看日志是否启动成功:

tail -f catalina.out

最后,访问以下地址:

http://192.168.1.180:9901/pinpoint

3.png
3.png

测试收集

配置Pinpoint-agent

解压Pinpoint-agent:

tar - xvf pinpoint-agent-1.7.2.tar.gz

配置pinpoint.config:

# 这是指pinpoint-collector的地址,默认为127.0.0.1,这里修改为以下
profiler.collector.ip=192.168.1.180

这里需要特别注意的是collector的端口一共有3个。 9994是tcp端口9995,9996是udp端口,要保证这些是通的。初始化创建Docker的时候我们已经做了映射。

普通项目部署

修改应用所在tomcat的/bin/catalina.sh:

# 修改为自己的目录
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/home/software/pinpoint-agent-1.7.2/pinpoint-bootstrap-1.7.2.jar"
# 这里的agentId必须唯一,标志一个jvm
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=myapp"
# applicationName表示同一种应用:同一个应用的不同实例应该使用不同的agentId,相同的applicationName
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=MyTestPP"

保存以后,启动项目即可。

springboot项目部署
nohup java -javaagent:/home/software/pinpoint-agent-1.7.2/pinpoint-bootstrap-1.7.2.jar -Dpinpoint.agentId=itstyle-myapp -Dpinpoint.applicationName=itstyle-MyTestPP -jar myapp.jar &

效果演示

当然,这只是个空统计,并没有进行测试:

pinpoint
pinpoint

参考文章

https://github.com/naver/pinpoint

https://skyao.io/learning-pinpoint/installation/quickstart.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 架构图
    • 优点
    • 搭建环境
      • Docker环境
        • 安装JDK
          • 安装Hbase
            • 安装pinpoint
            • 测试收集
              • 配置Pinpoint-agent
                • 普通项目部署
                • springboot项目部署
            • 效果演示
            • 参考文章
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档