在之前的案例中,我們每次部署java應(yīng)用都需要復(fù)制一份agent挖息,修改其中的服務(wù)名稱兽肤,這樣配置非常麻煩。Skywalking作者考慮到這些問題资铡,提供幾種配置方式,通過啟動命令動態(tài)指定服務(wù)名笤休,這樣agent只需要部署一份即可。
Skywalking支持的幾種配置方式:
系統(tǒng)屬性(-D方式)
使用 -Dskywalking. + agent.config 配置文件中的key 即可 政基。例如: agent.config 文件中有一個屬性名為 agent.service_name 闹啦,那么如果使用系統(tǒng)屬性的方式,則可以寫成
語法規(guī)則
-Dskywalking.agent.service_name=skywalkingdemo2
java -javaagent:/opt/skywalking/agent_springbootdemo2/skywalking-agent.jar -
Dskywalking.agent.service_name=你想設(shè)置的值 -
Dskywalking.collector.backend_service=192.168.198.141:11800 -jar
skywalkingspringbootdemo2.jar
代理選項(javaagent方式配置)
在JVM參數(shù)中的代理路徑之后添加屬性即可窍奋。 語法規(guī)則如下:
-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=你想設(shè)置的值 -
Dskywalking.collector.backend_service=192.168.198.141:11800 -jar
skywalkingspringbootdemo2.jar
系統(tǒng)環(huán)境變量
在centos系統(tǒng)中設(shè)置變量:SW_AGENT_NAME的值。
配置文件
agent.config 文件中默認的大寫值江场,都可以作為環(huán)境變量引用挚歧。 例如吁峻,agent.config 中有如下內(nèi)容
agent.service_name=${SW_AGENT_NAME:Your_1 ApplicationName}
這說明Skywalking會讀取名為 SW_AGENT_NAME 的環(huán)境變量。
覆蓋優(yōu)先級
javaagent配置 > 系統(tǒng)屬性 >系統(tǒng)環(huán)境變量 > 配置文件中的值
所以我們的啟動命令可以修改為:
java -javaagent:/opt/skywalking/agent_springbootdemo2/skywalking-agent.jar -
Dskywalking.agent.service_name=你想設(shè)置的值 -
Dskywalking.collector.backend_service=192.168.198.141:11800 -
jarskywalkingspringbootdemo2.jar
或者
java -javaagent:/opt/skywalking/agent_springbootdemo2/skywalkingagent.
jar=agent.service_name=你想設(shè)置的值 -
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