From efad1165f5b60acbedb9a50fb15641dc8ae5f80a Mon Sep 17 00:00:00 2001 From: lixin40 Date: Fri, 30 Nov 2018 12:12:05 +0800 Subject: [PATCH] add system env for trace ignore plugin --- .../apm-trace-ignore-plugin.config | 2 +- .../ignore/conf/IgnoreConfigInitializer.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/apm-sniffer/optional-plugins/trace-ignore-plugin/apm-trace-ignore-plugin.config b/apm-sniffer/optional-plugins/trace-ignore-plugin/apm-trace-ignore-plugin.config index acb31c74d..1af1189f9 100644 --- a/apm-sniffer/optional-plugins/trace-ignore-plugin/apm-trace-ignore-plugin.config +++ b/apm-sniffer/optional-plugins/trace-ignore-plugin/apm-trace-ignore-plugin.config @@ -20,4 +20,4 @@ # /path/* Match any number of characters # /path/** Match any number of characters and support multilevel directories # Multiple path comma separation, like trace.ignore_path=/eureka/**,/consul/** -#trace.ignore_path=/eureka/** +#trace.ignore_path=${SW_TRACE_IGNORE_PATH:/eureka/**} \ No newline at end of file diff --git a/apm-sniffer/optional-plugins/trace-ignore-plugin/src/main/java/org/apache/skywalking/apm/plugin/trace/ignore/conf/IgnoreConfigInitializer.java b/apm-sniffer/optional-plugins/trace-ignore-plugin/src/main/java/org/apache/skywalking/apm/plugin/trace/ignore/conf/IgnoreConfigInitializer.java index af8f599ea..b208c6718 100644 --- a/apm-sniffer/optional-plugins/trace-ignore-plugin/src/main/java/org/apache/skywalking/apm/plugin/trace/ignore/conf/IgnoreConfigInitializer.java +++ b/apm-sniffer/optional-plugins/trace-ignore-plugin/src/main/java/org/apache/skywalking/apm/plugin/trace/ignore/conf/IgnoreConfigInitializer.java @@ -24,6 +24,9 @@ import org.apache.skywalking.apm.agent.core.conf.ConfigNotFoundException; import org.apache.skywalking.apm.agent.core.logging.api.ILog; import org.apache.skywalking.apm.agent.core.logging.api.LogManager; import org.apache.skywalking.apm.util.ConfigInitializer; +import org.apache.skywalking.apm.util.PlaceholderConfigurerSupport; +import org.apache.skywalking.apm.util.PropertyPlaceholderHelper; +import org.apache.skywalking.apm.util.StringUtil; import java.io.File; import java.io.FileInputStream; @@ -57,6 +60,18 @@ public class IgnoreConfigInitializer { configFileStream = loadConfigFromAgentFolder(); Properties properties = new Properties(); properties.load(configFileStream); + PropertyPlaceholderHelper helper = + new PropertyPlaceholderHelper(PlaceholderConfigurerSupport.DEFAULT_PLACEHOLDER_PREFIX, + PlaceholderConfigurerSupport.DEFAULT_PLACEHOLDER_SUFFIX, + PlaceholderConfigurerSupport.DEFAULT_VALUE_SEPARATOR, true); + for (String key : properties.stringPropertyNames()) { + String value = (String)properties.get(key); + //replace the key's value. properties.replace(key,value) in jdk8+ + value = helper.replacePlaceholders(value, properties); + if (!StringUtil.isEmpty(value)) { + properties.put(key, helper.replacePlaceholders(value, properties)); + } + } ConfigInitializer.initialize(properties, IgnoreConfig.class); } catch (Exception e) { LOGGER.error(e, "Failed to read the config file, skywalking is going to run in default config.");