fix conflicts and test case.
This commit is contained in:
parent
2c1d28f47e
commit
5bc3ccde5e
|
|
@ -16,7 +16,8 @@
|
|||
~
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
|
|
@ -30,11 +31,15 @@
|
|||
|
||||
<name>apm-test-tools</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
|
||||
<properties>
|
||||
<junit.version>4.12</junit.version>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.12</version>
|
||||
<version>${junit.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
|||
|
|
@ -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=${SW_TRACE_IGNORE_PATH:/eureka/**}
|
||||
#trace.ignore_path=${SW_AGENT_TRACE_IGNORE_PATH:/eureka/**}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@
|
|||
~
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>optional-plugins</artifactId>
|
||||
<groupId>org.apache.skywalking</groupId>
|
||||
|
|
@ -29,4 +30,17 @@
|
|||
|
||||
<name>apm-trace-ignore-plugin</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
|
||||
<properties>
|
||||
<ststem-rules.version>1.18.0</ststem-rules.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.github.stefanbirkner</groupId>
|
||||
<artifactId>system-rules</artifactId>
|
||||
<version>${ststem-rules.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -18,28 +18,15 @@
|
|||
|
||||
package org.apache.skywalking.apm.plugin.trace.ignore.conf;
|
||||
|
||||
import org.apache.skywalking.apm.agent.core.boot.AgentPackageNotFoundException;
|
||||
import org.apache.skywalking.apm.agent.core.boot.AgentPackagePath;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import org.apache.skywalking.apm.agent.core.boot.*;
|
||||
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;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import org.apache.skywalking.apm.agent.core.logging.api.*;
|
||||
import org.apache.skywalking.apm.util.*;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author liujc [liujunc1993@163.com]
|
||||
*
|
||||
*/
|
||||
public class IgnoreConfigInitializer {
|
||||
private static final ILog LOGGER = LogManager.getLogger(IgnoreConfigInitializer.class);
|
||||
|
|
@ -47,7 +34,8 @@ public class IgnoreConfigInitializer {
|
|||
private static String ENV_KEY_PREFIX = "skywalking.";
|
||||
|
||||
/**
|
||||
* Try to locate `apm-trace-ignore-plugin.config`, which should be in the /optional-plugins/apm-trace-ignore-plugin/ dictionary of agent package.
|
||||
* Try to locate `apm-trace-ignore-plugin.config`, which should be in the /optional-plugins/apm-trace-ignore-plugin/
|
||||
* dictionary of agent package.
|
||||
* <p>
|
||||
* Also try to override the config by system.env and system.properties. All the keys in these two places should
|
||||
* start with {@link #ENV_KEY_PREFIX}. e.g. in env `skywalking.trace.ignore_path=your_path` to override
|
||||
|
|
@ -60,17 +48,11 @@ 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);
|
||||
PropertyPlaceholderHelper helper = PropertyPlaceholderHelper.INSTANCE;
|
||||
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));
|
||||
}
|
||||
properties.put(key, PropertyPlaceholderHelper.INSTANCE.replacePlaceholders(value, properties));
|
||||
}
|
||||
ConfigInitializer.initialize(properties, IgnoreConfig.class);
|
||||
} catch (Exception e) {
|
||||
|
|
@ -78,13 +60,13 @@ public class IgnoreConfigInitializer {
|
|||
}
|
||||
|
||||
try {
|
||||
overrideConfigBySystemEnv();
|
||||
overrideConfigBySystemProp();
|
||||
} catch (Exception e) {
|
||||
LOGGER.error(e, "Failed to read the system env.");
|
||||
}
|
||||
}
|
||||
|
||||
private static void overrideConfigBySystemEnv() throws IllegalAccessException {
|
||||
private static void overrideConfigBySystemProp() throws IllegalAccessException {
|
||||
Properties properties = new Properties();
|
||||
Properties systemProperties = System.getProperties();
|
||||
Iterator<Map.Entry<Object, Object>> entryIterator = systemProperties.entrySet().iterator();
|
||||
|
|
@ -101,7 +83,6 @@ public class IgnoreConfigInitializer {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Load the config file, where the agent jar is.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -18,22 +18,26 @@
|
|||
|
||||
package org.apache.skywalking.apm.plugin.trace.ignore;
|
||||
|
||||
import java.util.Properties;
|
||||
import org.apache.skywalking.apm.agent.core.boot.ServiceManager;
|
||||
import org.apache.skywalking.apm.agent.core.context.AbstractTracerContext;
|
||||
import org.apache.skywalking.apm.agent.core.context.ContextManagerExtendService;
|
||||
import org.apache.skywalking.apm.agent.core.context.IgnoredTracerContext;
|
||||
import org.apache.skywalking.apm.agent.core.context.TracingContext;
|
||||
import org.apache.skywalking.apm.agent.core.context.*;
|
||||
import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
|
||||
import org.apache.skywalking.apm.plugin.trace.ignore.conf.IgnoreConfig;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.apache.skywalking.apm.util.*;
|
||||
import org.junit.*;
|
||||
import org.junit.contrib.java.lang.system.EnvironmentVariables;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
|
||||
/**
|
||||
* @author liujc [liujunc1993@163.com]
|
||||
*/
|
||||
public class TraceIgnoreTest {
|
||||
|
||||
@Rule
|
||||
public final EnvironmentVariables environmentVariables = new EnvironmentVariables().set("SW_AGENT_TRACE_IGNORE_PATH", "path_test");
|
||||
|
||||
@Rule
|
||||
public AgentServiceRule serviceRule = new AgentServiceRule();
|
||||
|
||||
|
|
@ -54,4 +58,12 @@ public class TraceIgnoreTest {
|
|||
Assert.assertEquals(TracingContext.class, traceContext.getClass());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTraceIgnoreConfigOverridingFromSystemEnv() throws IllegalAccessException {
|
||||
Properties properties = new Properties();
|
||||
properties.put("trace.ignore_path", "${SW_AGENT_TRACE_IGNORE_PATH:/path/eureka/**}");
|
||||
properties.put("trace.ignore_path", PropertyPlaceholderHelper.INSTANCE.replacePlaceholders((String)properties.get("trace.ignore_path"), properties));
|
||||
ConfigInitializer.initialize(properties, IgnoreConfig.class);
|
||||
assertThat(IgnoreConfig.Trace.IGNORE_PATH, is("path_test"));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue