分布式系统快速接入 pinpoint1.8.3 指南
欢迎访问我的 GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
关于 pinpoint
pinpoint 是一款调用链跟踪工具,目前最新版是 1.8.5,官方 GitHub 地址:https://github.com/naver/pinpoint
构造用于实战的分布式环境
今天的实战会先准备一个简单的分布式环境,里面有两个 SpringBoot 应用,以及 mysql、redis,再加上部署 pinpoint 的服务器,一共用到了五台机器,如下表所示:
整体架构如下图所示:
以上应用更多详情请参考《立即可用的实战源码(springboot+redis+mybatis+restTemplate)》
上述服务的源码可以在 GitHub 下载,可以直接从 GitHub 下载完整的 demo 工程源码,地址和链接信息如下表所示:
这个 git 项目中有多个文件夹,本章的应用在 pinpoint185demo 文件夹下,如下图红框所示:
配置 host
为了后续配置方便,将以下内容写入上述五台电脑的 /etc/hosts 文件中,这样所有的配置文件都可以用 hostname 来表示了:
版本信息参考
操作系统:CentOS Linux release 7.7.1908
docker:Community 19.03.2
docker-compose:1.24.1
springboot:2.0.5.RELEASE
mysql:5.7.27
redis:5.0.6
部署 pinpoint
登录 pinpoint 主机;
登录 pinpoint 主机;
装好 docker 和 docker-comose,可以参考《一行命令安装docker和docker-compose(CentOS7)》
装好 git 客户端: **yum install git -y
执行以下命令会先下载材料再按照 docker-compose.yml 的编排启动所有容器:
控制台提示如下:
此处由于要下载大量文件,并且还要下载 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 这三个配置,修改成以下的值:
重新启动 service-a 服务,假设原有的启动命令是 java -jar service-a-1.0-SNAPSHOT.jar ,现在改为:
如上所述,一共增加了三个参数:
SpringBoot 应用接入 pinpoint(service-b)
service-b 的配置方式和 service-a 的一样,注意启动参数要改成 service-b 有关的,以下是 service-b 的启动命令:
制造一些请求,用于观测数据
接下来制造一些请求,让 service-a 和 service-b 执行业务代码,我这里用的是 Postman,它提供了自动发起重复请求的功能,如下图:
接下来打开 Runner Window,如下图:
按照下图进行设置,即可向 service-a 持续发起请求:
pinpoint 的监控功能
打开 pinpoint 页面,可以看到 service-a、service-b 的监控数据已经有了:
用鼠标对右上角的请求量进行框选,可以查看请求的详情:
如下图,可以详细的看到每个请求内部的执行情况:
另外还能观察机器的整体情况:
至此,一个典型的 Java 分布式系统接入 pinpoint1.8.3 的实战就完成了,如果您正在考虑通过 pinpoint 来监控系统查看调用链情况,来希望本文能够给您一些参考;
友情提示
在整个实战过程中,以下小坑请注意跳过:
关闭各个机器的防火墙;
关闭 pinpoint 机器的 swap;
欢迎关注 InfoQ:程序员欣宸
版权声明: 本文为 InfoQ 作者【程序员欣宸】的原创文章。
原文链接:【http://xie.infoq.cn/article/e476f61b1b9c13c08006c1709】。文章转载请联系作者。
评论