在之前的案例中,我们每次部署java应用都需要复制一份agent,修改其中的服务名称,这样配置非常麻烦。Skywalking作者考虑到这些问题,提供几种配置方式,通过启动命令动态指定服务名,这样agent只需要部署一份即可。
Skywalking支持的几种配置方式:
系统属性(-D方式)
使用 -Dskywalking. + agent.config 配置文件中的key 即可 。例如: agent.config 文件中有一个属性名为 agent.service_name ,那么如果使用系统属性的方式,则可以写成
语法规则
-Dskywalking.agent.service_name=skywalkingdemo2
java -javaagent:/opt/skywalking/agent_springbootdemo2/skywalking-agent.jar -
Dskywalking.agent.service_name=你想设置的值 -
Dskywalking.collector.backend_service=192.168.198.141:11800 -jar
skywalkingspringbootdemo2.jar
代理选项(javaagent方式配置)
在JVM参数中的代理路径之后添加属性即可。 语法规则如下:
-javaagent:/opt/skywalking/agent_springbootdemo2/skywalking-agent.jar=
[option1]=[value1],[option2]=[value2],[option3]=[value3]
通过 如下进行 agent.service_name 的覆盖:
java -javaagent:/opt/skywalking/agent_springbootdemo2/skywalkingagent.
jar=agent.service_name=你想设置的值 -
Dskywalking.collector.backend_service=192.168.198.141:11800 -jar
skywalkingspringbootdemo2.jar
系统环境变量
在centos系统中设置变量:SW_AGENT_NAME的值。
配置文件
agent.config 文件中默认的大写值,都可以作为环境变量引用。 例如,agent.config 中有如下内容
agent.service_name=${SW_AGENT_NAME:Your_1 ApplicationName}
这说明Skywalking会读取名为 SW_AGENT_NAME 的环境变量。
覆盖优先级
javaagent配置 > 系统属性 >系统环境变量 > 配置文件中的值
所以我们的启动命令可以修改为:
java -javaagent:/opt/skywalking/agent_springbootdemo2/skywalking-agent.jar -
Dskywalking.agent.service_name=你想设置的值 -
Dskywalking.collector.backend_service=192.168.198.141:11800 -
jarskywalkingspringbootdemo2.jar
或者
java -javaagent:/opt/skywalking/agent_springbootdemo2/skywalkingagent.
jar=agent.service_name=你想设置的值 -
Dskywalking.collector.backend_service=192.168.198.141:11800 -jar
skywalkingspringbootdemo2.jar
例如:
java -javaagent:/opt/skywalking/agent_springbootdemo2/skywalking-agent.jar -
Dskywalking.agent.service_name=skywalkingdemo3 -
Dskywalking.collector.backend_service=192.168.198.141:11800 -jar
skywalkingspringbootdemo2.jar
网友评论