接入 Agent 流程图

附件下载


附件: 下载地址 提取码: 3bry。附件文件说明如下:

  • DemoAppFile:可以直接部署 Demo应用到您本地机子来快速试用;
  • Agent:部署到您需要压测的应用,如何在应用中加载 Agent,可以直接查看步骤2.3-应用启动加载Agent。
  • JmeterFile:Demo 应用创建压测时所对应的压测脚本和压测数据

Demo应用说明


我们提供3个Demo应用,分别作以下说明:

  • 业务场景: 更新用户id=6的密码;
  • 调用关系:DemoApp3->DemoApp2->DemoApp1->MySQL,其中DemoApp3 是入口应用,DemoApp1 是调用MySQL 的;

前置环境准备

1、Agent 探针配置

1.1、解压Agent

解压Agent到任意目录路径,后续配置App 启动文件(run.sh)时需要用到该 DIR 路径。

1.2 配置探针用户 UserAppKey

UserAppKey是代表当前用户的唯一标记,所以探针也需要和UserAppKey关联绑定。

1)获取用户UserAppKey

登录后点击菜单栏左下角的头像,再点击「系统信息」查看UserAppKey。

2)配置用户UserAppKey

然后把当前的UserAppKey填写到 Agent 的配置文件,路径/opt/pradar-agent/agent/simulator/config,修改simulator.properties文件的user.app.key值为刚刚获取的配置UserAppKey。

1.3、配置日志路径

在路径/opt/pradar-agent/config 下,修改agent.properties文件的simulator.log.path值为所需的日志路径,方便后续问题定位。

1.4、请求防火墙开通 IP

为了安全起见以及避免恶意访问,需要把各应用部署机器的公网 IP 给到我们,待我们在防火墙开通该 IP 地址,才能够在控制台看到相关链路数据。可以把 IP 给到我们与您的对接人,届时会为您开通。

2、修改DemoApp1配置

2.1、修改 DemoApp 1 数据库

用 Vim 命令修改 DemoApp1(rds 应用)目录下rds-mysql-demo-1.0.0.jar的 application.yml配置.

vim rds-mysql-demo-1.0.0.jar

然后输入

? application.yml

回车就可以打开修改了。



修改数据库配置的 jdbc 地址为数据库所在地址,把您的实际数据库账号名改为:root,密码为 shulie@2020,数据库名是trodb,表名是user,可以直接使用附件中的user.sql创建。

2.2、确保有JAVA_HOME 路径

因为要使用JDK,确保JAVA环境变量存在以下路径:

$JAVA_HOME/lib/tools.jar

2.3、修改DemoApp1 启动配置加载Agent

修改 run.sh文件,先复制下面的启动代码,然后按您的实际路径和需要修改:

1)避免应用重复,其中应用名Dpradar.project.name,所有 demo 应用需要按照自己定义的新应用名,避免和其他试用用户重复

2)DIR请填写您的探针包解压的目录

3)确保有步骤2.2配置的 JAVA_HOME路径

4)Dsimulator.delay参数为加载Agent 的时间(单位秒),为了不影响正常业务应用的启动,默认加载Agent时间为延时 5 分钟(即业务应用启动后 5 分钟,Agent 才加载),现在试用 Demo 用的是 10秒;

如果是JDK8及以下使用该配置

DIR="/opt/pradar-agent"
JAVA_OPTS="${JAVA_OPTS} -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar"
JAVA_OPTS="${JAVA_OPTS} -javaagent:/${DIR}/simulator-launcher-instrument.jar"
JAVA_OPTS="${JAVA_OPTS} -Dpradar.project.name=test-rds-rds-mysql-demo-1.0.0"
JAVA_OPTS="${JAVA_OPTS} -Djdk.attach.allowAttachSelf=true"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.delay=10"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.unit=SECONDS"


nohup java  ${JAVA_OPTS} -XX:+PrintGCTimeStamps -Xloggc:gc.log -jar ./rds-mysql-demo-1.0.0.jar &

如果是JDK9以上使用该配置

DIR="/opt/pradar-agent"
JAVA_OPTS="${JAVA_OPTS} -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar"
JAVA_OPTS="${JAVA_OPTS} -javaagent:/${DIR}/simulator-launcher-instrument.jar"
JAVA_OPTS="${JAVA_OPTS} -Dpradar.project.name=test-rds-rds-mysql-demo-1.0.0"
JAVA_OPTS="${JAVA_OPTS} -Djdk.attach.allowAttachSelf=true"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.delay=10"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.unit=SECONDS"

--add-exports java.base/jdk.internal.module=ALL-UNNAMED
-Dsimulator.use.premain=true

nohup java  ${JAVA_OPTS} -XX:+PrintGCTimeStamps -Xloggc:gc.log -jar ./rds-mysql-demo-1.0.0.jar &

执行以下命令启动应用:

sh run.sh

应用启动成功

启动应用之后,可以通过日志查看是否成功加载 Agent,查看日志命令如下:

tail -f nohup.out

如看到下图内容,表示应用成功加载 Agent启动 :

  • Tomcat started on port :8091 启动成功,8091 端口后续在配置 DemoApp2 时用到;
  • license 验证成功,表明 agent 加载成功。
  • 因为试用环境的缘故,需要找我们的对接人,为您分配应用权限,然后才可以在控制台「应用管理」页面看到该应用。后续的应用也是如此操作。

3、修改DemoApp2 配置

3.1、修改 DemoApp2下zk和rds 地址

  1. 本 demo 应用使用到了 ZK 服务,所以需要提前装好 ZK 服务。
  2. 然后用 Vim 命令修改DemoApp2(provider) 目录下egg-provider-0.0.1-SNAPSHOT.jar的application.yml配置, ZK地址为装好 ZK 服务的机器地址。
  3. 修改调用的rds 地址,rds地址和端口要跟 DemoApp1 启动成功的端口地址一致。

3.2、 修改DemoApp2 启动配置加载 Agent

修改 run.sh文件,先复制下面的启动代码,然后按您的实际路径和需要修改:

其他应用也是如此操作接入,其中应用名Dpradar.project.name,要按照自己定义的新应用名

如果是JDK8 及以下使用该配置

DIR="/opt/pradar-agent"
JAVA_OPTS="${JAVA_OPTS} -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar"
JAVA_OPTS="${JAVA_OPTS} -javaagent:/${DIR}/simulator-launcher-instrument.jar"
JAVA_OPTS="${JAVA_OPTS} -Dpradar.project.name=test-egg-provider-0.0.1-SNAPSHOT"
JAVA_OPTS="${JAVA_OPTS} -Djdk.attach.allowAttachSelf=true"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.delay=10"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.unit=SECONDS"

nohup java  ${JAVA_OPTS} -XX:+PrintGCTimeStamps -Xloggc:gc.log -jar ./egg-provider-0.0.1-SNAPSHOT.jar &

如果是JDK9以上使用该配置

DIR="/opt/pradar-agent"
JAVA_OPTS="${JAVA_OPTS} -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar"
JAVA_OPTS="${JAVA_OPTS} -javaagent:/${DIR}/simulator-launcher-instrument.jar"
JAVA_OPTS="${JAVA_OPTS} -Dpradar.project.name=test-egg-provider-0.0.1-SNAPSHOT"
JAVA_OPTS="${JAVA_OPTS} -Djdk.attach.allowAttachSelf=true"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.delay=10"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.unit=SECONDS"

--add-exports java.base/jdk.internal.module=ALL-UNNAMED
-Dsimulator.use.premain=true

nohup java  ${JAVA_OPTS} -XX:+PrintGCTimeStamps -Xloggc:gc.log -jar ./egg-provider-0.0.1-SNAPSHOT.jar &

执行以下命令启动应用:

sh run.sh

应用启动成功

启动应用之后,可以通过日志查看是否成功加载 Agent,查看日志命令如下:

tail -f nohup.out

4、修改DemoApp3配置

4.1、修改 DemoApp3 目录zk地址

然后用 Vim 命令修改DemoApp3(consumer) 目录下egg-consumer-0.0.1-SNAPSHOT.jar的 application.yml配置文件的 zk地址。

4.2、修改DemoApp3 启动配置加载 Agent

修改 run.sh文件,先复制下面的启动代码,然后按您的实际路径和需要修改:
如果是JDK8 及以下使用该配置

DIR="/opt/pradar-agent"
JAVA_OPTS="${JAVA_OPTS} -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar"
JAVA_OPTS="${JAVA_OPTS} -javaagent:/${DIR}/simulator-launcher-instrument.jar"
JAVA_OPTS="${JAVA_OPTS} -Dpradar.project.name=test-egg-consumer-0.0.1-SNAPSHOT"
JAVA_OPTS="${JAVA_OPTS} -Djdk.attach.allowAttachSelf=true"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.delay=10"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.unit=SECONDS"

nohup java  ${JAVA_OPTS} -XX:+PrintGCTimeStamps -Xloggc:gc.log -jar ./egg-consumer-0.0.1-SNAPSHOT.jar &

如果是JDK9以上使用该配置

DIR="/opt/pradar-agent"
JAVA_OPTS="${JAVA_OPTS} -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar"
JAVA_OPTS="${JAVA_OPTS} -javaagent:/${DIR}/simulator-launcher-instrument.jar"
JAVA_OPTS="${JAVA_OPTS} -Dpradar.project.name=test-egg-consumer-0.0.1-SNAPSHOT"
JAVA_OPTS="${JAVA_OPTS} -Djdk.attach.allowAttachSelf=true"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.delay=10"
JAVA_OPTS="${JAVA_OPTS} -Dsimulator.unit=SECONDS"

--add-exports java.base/jdk.internal.module=ALL-UNNAMED
-Dsimulator.use.premain=true

nohup java  ${JAVA_OPTS} -XX:+PrintGCTimeStamps -Xloggc:gc.log -jar ./egg-consumer-0.0.1-SNAPSHOT.jar &

执行以下命令启动应用:

sh run.sh

应用启动成功

启动应用之后,可以通过日志查看是否成功加载 Agent,查看日志命令如下:

tail -f nohup.out

5、在控制台查看应用

以上配置处理完成后,需要重启各个应用,应用启动成功,找相关支持人员(销售、售前、试用负责人)给予分配应用查看权限,然后进入【应用管理】菜单页,可以看到已接入探针的应用。

6、问题排查

6.1 agen.config.url is not assigned


如果出现以上错误,则要看看各应用的 run.sh启动参数配置是否成功,可能的问题是:
1)JAVA_HOME路径不对
2)DIR 下的 JAR 路径不对

6.2其他错误

如果应用启动不成功,请打包各日志(日志路径在 1.2 配置)上传给相应对接人找开发排查;

文档更新时间: 2021-11-17 19:21   作者:ShuLieOpenSource