diff --git a/apm-collector/apm-collector-boot/src/main/java/org/apache/skywalking/apm/collector/boot/config/ApplicationConfigLoader.java b/apm-collector/apm-collector-boot/src/main/java/org/apache/skywalking/apm/collector/boot/config/ApplicationConfigLoader.java index 902006c90..a6d6a1868 100644 --- a/apm-collector/apm-collector-boot/src/main/java/org/apache/skywalking/apm/collector/boot/config/ApplicationConfigLoader.java +++ b/apm-collector/apm-collector-boot/src/main/java/org/apache/skywalking/apm/collector/boot/config/ApplicationConfigLoader.java @@ -109,10 +109,6 @@ public class ApplicationConfigLoader implements ConfigLoader envs = System.getenv(); - for (String envKey : envs.keySet()) { - overrideModuleSettings(configuration, envKey, envs.get(envKey), false); - } } private void overrideModuleSettings(ApplicationConfiguration configuration, String key, String value, @@ -137,7 +133,23 @@ public class ApplicationConfigLoader implements ConfigLoader type = originValue.getClass(); + if (type.equals(int.class) || type.equals(Integer.class)) + providerSettings.put(settingKey, Integer.valueOf(value)); + else if (type.equals(String.class)) + providerSettings.put(settingKey, value); + else if (type.equals(long.class) || type.equals(Long.class)) + providerSettings.put(settingKey, Long.valueOf(value)); + else if (type.equals(boolean.class) || type.equals(Boolean.class)) { + providerSettings.put(settingKey, Boolean.valueOf(value)); + } else { + return; + } + logger.info("The setting has been override by key: {}, value: {}, in {} provider of {} module through {}", settingKey, value, providerName, moduleName, isSystemProperty ? "System.properties" : "System.envs"); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java index 89f7d56f0..27e0cf934 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java @@ -105,14 +105,6 @@ public class SnifferConfigInitializer { } } - Map envs = System.getenv(); - for (String envKey : envs.keySet()) { - if (envKey.startsWith(ENV_KEY_PREFIX)) { - String realKey = envKey.substring(ENV_KEY_PREFIX.length()); - properties.setProperty(realKey, envs.get(envKey)); - } - } - if (!properties.isEmpty()) { ConfigInitializer.initialize(properties, Config.class); } diff --git a/docs/en/Setting-override.md b/docs/en/Setting-override.md index 41770e0d8..2970ad9e4 100644 --- a/docs/en/Setting-override.md +++ b/docs/en/Setting-override.md @@ -7,10 +7,10 @@ _Agent setting override supported since 3.2.5_ ## What is setting override? In default, SkyWalking provide `agent.config` for client, and `application.yml` for server settings. -Setting override means end user can override the settings in these config file, by using system properties, or system environment variables. +Setting override means end user can override the settings in these config file, by using system properties. ## Override priority -System.Env > System.Properties(-D) > Config file +System.Properties(-D) > Config file ## Override ### Agent @@ -21,4 +21,18 @@ Use `skywalking.` + key in config file as system properties and envs key, to ove The agent system properites and env share with target application, this prefix can avoid variable conflict. ### Collector -Use key in config file as system properties and envs key, to override the value. \ No newline at end of file +Use key in config file as system properties and envs key, to override the value. + +Example: +- Setting in `application.yml` +```yaml +agent_gRPC: + gRPC: + host: localhost + port: 11800 +``` + +- Override port to 31200 by system property, add the following line into startup script. +``` +-Dagent_gRPC.gRPC.port=31200 +``` \ No newline at end of file