写点什么

分布式系统快速接入 pinpoint1.8.3 指南

作者:程序员欣宸
  • 2022-10-29
    广东
  • 本文字数:3037 字

    阅读完需:约 10 分钟

分布式系统快速接入pinpoint1.8.3指南

欢迎访问我的 GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

关于 pinpoint

构造用于实战的分布式环境

  • 今天的实战会先准备一个简单的分布式环境,里面有两个 SpringBoot 应用,以及 mysql、redis,再加上部署 pinpoint 的服务器,一共用到了五台机器,如下表所示:





  • 这个 git 项目中有多个文件夹,本章的应用在 pinpoint185demo 文件夹下,如下图红框所示:

配置 host

  • 为了后续配置方便,将以下内容写入上述五台电脑的 /etc/hosts 文件中,这样所有的配置文件都可以用 hostname 来表示了:


192.168.121.143 mysql192.168.121.144 redis192.168.121.146 service-a192.168.121.147 service-b192.168.121.148 pinpoint
复制代码

版本信息参考

  1. 操作系统:CentOS Linux release 7.7.1908

  2. docker:Community 19.03.2

  3. docker-compose:1.24.1

  4. springboot:2.0.5.RELEASE

  5. mysql:5.7.27

  6. redis:5.0.6

部署 pinpoint

  • 登录 pinpoint 主机;

  • 登录 pinpoint 主机;

  • 装好 docker 和 docker-comose,可以参考《一行命令安装docker和docker-compose(CentOS7)》

  • 装好 git 客户端: **yum install git -y

  • 执行以下命令会先下载材料再按照 docker-compose.yml 的编排启动所有容器:


git clone https://github.com/naver/pinpoint-docker.git; \git checkout 1.8.5; \cd pinpoint-docker; \docker-compose pull && docker-compose up -d
复制代码


  • 控制台提示如下:


[root@pinpoint ~]# clear[root@pinpoint ~]# git clone https://github.com/naver/pinpoint-docker.git; \> cd pinpoint-docker; \> git checkout 1.8.5; \> docker-compose pull && docker-compose up -d正克隆到 'pinpoint-docker'...remote: Enumerating objects: 34, done.remote: Counting objects: 100% (34/34), done.remote: Compressing objects: 100% (33/33), done.remote: Total 384 (delta 6), reused 13 (delta 1), pack-reused 350接收对象中: 100% (384/384), 244.12 MiB | 1.72 MiB/s, done.处理 delta 中: 100% (185/185), done.Note: checking out '1.8.5'.
You are in 'detached HEAD' state. You can look around, make experimentalchanges and commit them, and you can discard any commits you make in thisstate without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you maydo so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD 目前位于 39b9e1e... [naver/pinpoint#5998] update for release 1.8.5Pulling jobmanager ... donePulling zoo2 ... donePulling taskmanager ... donePulling zoo1 ... donePulling zoo3 ... donePulling pinpoint-mysql ... donePulling pinpoint-hbase ... donePulling pinpoint-web ... donePulling pinpoint-collector ... donePulling pinpoint-agent ... donePulling pinpoint-quickstart ... doneCreating network "pinpoint-docker_pinpoint" with driver "bridge"Creating volume "pinpoint-docker_data-volume" with default driverCreating volume "pinpoint-docker_mysql_data" with default driverCreating pinpoint-flink-jobmanager ... doneCreating pinpoint-docker_zoo3_1 ... doneCreating pinpoint-docker_zoo1_1 ... doneCreating pinpoint-docker_zoo2_1 ... doneCreating pinpoint-hbase ... doneCreating pinpoint-mysql ... doneCreating pinpoint-flink-taskmanager ... doneCreating pinpoint-web ... doneCreating pinpoint-collector ... doneCreating pinpoint-agent ... doneCreating pinpoint-quickstart ... done
复制代码


  • 此处由于要下载大量文件,并且还要下载 docker 镜像,因此建议您耐心等待

  • 启动完成后,执行命令 docker ps -f name=pinpoint-web 查看 web 服务的端口,如下图红框所示,是宿主机的 8079 端口:

  • 访问地址 http://192.168.121.148:8079 ,即可进入 pinpoint 的监控页面,如下图,已经自带了一个 demo 应用,该应用是在 docker-compose.yml 中配置的:

  • pinpoint 服务端已经准备好了,接下来我们将 SpringBoot 应用接入 pinpoint,达到监控和调用链跟踪的效果

SpringBoot 应用接入 pinpoint(service-a)

  • 接下来要在 SpringBoot 应用所在机器上做操作,将应用接入 pinpoint;

  • 下载 pinpoint agent 包,地址是:https://github.com/naver/pinpoint/releases ,要下载的文件如下图红框所示:

  • 登录 service-a 应用所在机器,在 /root 目录下新建文件夹 pinpoint-agent-1.8.5

  • 将刚才下载的 pinpoint-agent-1.8.5.tar.gz 文件放入/root/pinpoint-agent-1.8.5 目录,然后再解压 pinpoint-agent-1.8.5.tar.gz( 注意,是先放入 pinpoint-agent-1.8.5 文件夹再解压 );

  • 打开文件 /root/pinpoint-agent-1.8.5/pinpoint.config ,找到 profiler.collector.ip、profiler.tomcat.conditional.transform、profiler.applicationservertype 这三个配置,修改成以下的值:


profiler.collector.ip=pinpointprofiler.tomcat.conditional.transform=falseprofiler.applicationservertype=SPRING_BOOT
复制代码


  • 重新启动 service-a 服务,假设原有的启动命令是 java -jar service-a-1.0-SNAPSHOT.jar ,现在改为:


java -jar \-javaagent:/root/pinpoint-agent-1.8.5/pinpoint-bootstrap-1.8.5.jar \-Dpinpoint.agentId=192.168.121.146 \-Dpinpoint.applicationName=service-a \service-a-1.0-SNAPSHOT.jar
复制代码


  • 如上所述,一共增加了三个参数:


SpringBoot 应用接入 pinpoint(service-b)

  • service-b 的配置方式和 service-a 的一样,注意启动参数要改成 service-b 有关的,以下是 service-b 的启动命令:


java -jar \-javaagent:/root/pinpoint-agent-1.8.5/pinpoint-bootstrap-1.8.5.jar \-Dpinpoint.agentId=192.168.121.147 \-Dpinpoint.applicationName=service-b \service-b-1.0-SNAPSHOT.jar
复制代码

制造一些请求,用于观测数据

  • 接下来制造一些请求,让 service-a 和 service-b 执行业务代码,我这里用的是 Postman,它提供了自动发起重复请求的功能,如下图:

  • 接下来打开 Runner Window,如下图:

  • 按照下图进行设置,即可向 service-a 持续发起请求:

pinpoint 的监控功能

  • 打开 pinpoint 页面,可以看到 service-a、service-b 的监控数据已经有了:

  • 用鼠标对右上角的请求量进行框选,可以查看请求的详情:

  • 如下图,可以详细的看到每个请求内部的执行情况:

  • 另外还能观察机器的整体情况:

  • 至此,一个典型的 Java 分布式系统接入 pinpoint1.8.3 的实战就完成了,如果您正在考虑通过 pinpoint 来监控系统查看调用链情况,来希望本文能够给您一些参考;

友情提示

  • 在整个实战过程中,以下小坑请注意跳过:


  1. 关闭各个机器的防火墙;

  2. 关闭 pinpoint 机器的 swap;

欢迎关注 InfoQ:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...


发布于: 刚刚阅读数: 3
用户头像

搜索"程序员欣宸",一起畅游Java宇宙 2018-04-19 加入

前腾讯、前阿里员工,从事Java后台工作,对Docker和Kubernetes充满热爱,所有文章均为作者原创,个人Github:https://github.com/zq2599/blog_demos

评论

发布
暂无评论
分布式系统快速接入pinpoint1.8.3指南_Java_程序员欣宸_InfoQ写作社区