pinpoint客户端使用变量传参数

avatar 2020年5月8日20:27:05 评论 1,747 次浏览

在kubernetes中,添加pinpoint-agent,为了区分不同的环境使用pinpoint-agent,我们首先需要定义一个基础镜像,在这个基础镜像中需要把pinpoint-agent加到基础镜像中,并且pinpoint-agent中不能设置collector,只能根据不同的环境在启动应用的时候把collector服务的ip作为一个参数添加进去,这样每次使用时,针对镜像的操作不需要修改。我们这里在tomcat和kubernetes中分别测试,先在tomcat中举例一下:

tomcat环境

我的pinpoint服务已经搭建好了,这里只把tomcat的配置修改一下,我们先把pinpoint-agent的信息修改成一个变量,这里注意,一定不能使用默认的pinpoint-agent,默认的的是127.0.0.1,如果使用默认的就会出现访问到127服务上了,请求超时,这里的请求是配置文件中的优先级比传参数的优先级要高。

[root@www.wulaoer.org wulaoer]# vim pinpoint-agent/pinpoint.config 
#
# Pinpoint agent configuration
#

###########################################################
# Collector server                                        #
###########################################################
#profiler.collector.ip=10.211.55.202
profiler.collector.ip=collector

然后修改一下tomcat的配置信息,在tomcat配置中相比以前增加了一个-Dprofiler.collector.ip参数,这里的ip是一个变量和上面配置的一致就是指定到collector服务的ip地址。

[root@www.wulaoer.org wulaoer]# vim pinpoint-test/bin/catalina.sh 

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/apps/work/soft/pinpoint-agent01/pinpoint-bootstrap-1.8.5.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=collector"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=test9527"

这是我们使用的tomcat配置,看上去区别不是很大,下面我们使用jar包来测试一下,我创建了一个jar包,可以参考:https://www.wulaoer.org/?p=1154 上面配置后需要把collector指向collector服务的ip地址,在/etc/hosts文件中即可。

[root@www.wulaoer.org ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.28.30.6 pingrpc

10.0.0.1 collection

[root@www.wulaoer.org wulaoer]#java -javaagent:/root/wulaoer/pinpoint-agent/pinpoint-bootstrap-2.0.2.jar -Dpinpoint.agentId=2222 -Dpinpoint.applicationName=test9527 -Dprofiler.collector.ip=collector -jar demo-0.0.1-SNAPSHOT.jar

同样不需要修改,直接执行,下面我们使用脚本请求一下jar文件。

[root@www.wulaoer.org ~]# for i in `seq 1 10000`;do curl http://10.211.55.36:8080/hello;done

docker环境

上面的方法可以参考一下https://www.wulaoer.org/?p=1187 的方法,如果在k8s上做的话,先测试一下,我这里做了一个镜像,镜像中已经把客户端添加到镜像中了,我先用镜像创建一个容器,然后在容器上直接启我的jar包。

[root@www.wulaoer.org ~]# docker run -it -p8080:8080 --rm b8bfcd1f7ef2 /bin/bash
[root@f775c2fff271 /]# cd data/
[root@f775c2fff271 data]# ls
pinpoint-agent demo-0.0.1-SNAPSHOT.jar 
[root@f775c2fff271 data]# vim /etc/hosts
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2      f775c2fff271
10.0.0.1    collector
[root@f775c2fff271 data]# java -javaagent:/data/pinpoint-agent/pinpoint-bootstrap-2.0.2.jar -Dpinpoint.agentId=2222 -Dpinpoint.applicationName=test9527 -Dprofiler.collector.ip=collector -jar demo-0.0.1-SNAPSHOT.jar

这样在docker中设置完成,我们可以使用上面的方法测试一下,我自己测试的没有问题。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: