詳見中文官方文檔:
https://github.com/SkyAPM/document-cn-translation-of-skywalking/blob/master/docs/zh/8.0.0/setup/service-agent/java-agent/Setting-override.md
詳見英文官方文檔:
https://github.com/apache/skywalking/blob/master/docs/en/setup/service-agent/java-agent/Setting-override.md
配置覆寫
預設情況下,SkyWalking為agent提供了
agent.config
配置檔案。
配置覆寫意味着使用者可以通過系統屬性或agent選項覆寫配置檔案中的配置。
系統屬性
使用
skywalking.
+ 配置檔案中的配置名 作為系統屬性的配置名來覆寫配置檔案中的值。
-
為什麼需要這個字首?
因為agent系統屬性是和目标應用共享的,加字首是為了避免沖突。
-
例子
通過下面的系統屬性覆寫
。agent.application_code
-Dskywalking.agent.application_code=31200
agent選項
在JVM參數的agent路徑後面添加選項。
-javaagent:/path/to/skywalking-agent.jar=[option1]=[value1],[option2]=[value2]
-
例子
通過下面的配置覆寫
。agent.application_code、logging.level
-javaagent:/path/to/skywalking-agent.jar=agent.application_code=31200,logging.level=debug
- 特殊字元
如果在選項或選項值中有分隔符(
,
或者
=
),應該用引号包起來。
-javaagent:/path/to/skywalking-agent.jar=agent.ignore_suffix='.jpg,.jpeg'
系統環境變量
-
例子
通過下面的配置覆寫
和agent.application_code
。logging.level
# The service name in UI
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
# Logging level
logging.level=${SW_LOGGING_LEVEL:INFO}
如果
SW_AGENT_NAME
環境變量在你的作業系統中已存在,并且,它的值為
skywalking-agent-demo
,那麼這裡的
agent.service_name
的值将會被覆寫為
skywalking-agent-demo
, 否則, 它将會被設定成
Your_ApplicationName
。
另外,占位符嵌套也是支援的,比如
${SW_AGENT_NAME:${ANOTHER_AGENT_NAME:Your_ApplicationName}}
。 在這種情況下,如果
SW_AGENT_NAME
環境變量不存在,但是
ANOTHER_AGENT_NAME
環境變量存在,并且它的值為
skywalking-agent-demo
, 那麼這裡的
agent.service_name
的值将會被覆寫為
skywalking-agent-demo
, 否則, 它将會被設定成
Your_ApplicationName
。
覆寫優先級
agent選項 > 系統屬性(-D) > 系統環境變量 > 配置檔案