Merge pull request #75 from tyler/yaml
Add default config values to the yaml config
This commit is contained in:
commit
b4457148fd
|
@ -17,7 +17,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class InstrumentationChecker {
|
public class InstrumentationChecker {
|
||||||
|
|
||||||
private static final String CONFIG_FILE = "dd-trace-supported-framework.yaml";
|
private static final String CONFIG_FILE = "dd-trace-supported-framework";
|
||||||
private final Map<String, List<Map<String, String>>> rules;
|
private final Map<String, List<Map<String, String>>> rules;
|
||||||
private final Map<String, String> frameworks;
|
private final Map<String, String> frameworks;
|
||||||
|
|
||||||
|
|
|
@ -13,9 +13,9 @@ public class InstrumentationCheckerTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
Map<String, List<Map<String, String>>> rules =
|
final Map<String, List<Map<String, String>>> rules =
|
||||||
FactoryUtils.loadConfigFromResource("supported-version-test.yaml", Map.class);
|
FactoryUtils.loadConfigFromResource("supported-version-test", Map.class);
|
||||||
Map<String, String> frameworks =
|
final Map<String, String> frameworks =
|
||||||
new HashMap<String, String>() {
|
new HashMap<String, String>() {
|
||||||
{
|
{
|
||||||
put("artifact-1", "1.2.3.1232");
|
put("artifact-1", "1.2.3.1232");
|
||||||
|
@ -30,7 +30,7 @@ public class InstrumentationCheckerTest {
|
||||||
@Test
|
@Test
|
||||||
public void testRules() throws Exception {
|
public void testRules() throws Exception {
|
||||||
|
|
||||||
List<String> rules = InstrumentationChecker.getUnsupportedRules();
|
final List<String> rules = InstrumentationChecker.getUnsupportedRules();
|
||||||
assertThat(rules.size()).isEqualTo(3);
|
assertThat(rules.size()).isEqualTo(3);
|
||||||
assertThat(rules)
|
assertThat(rules)
|
||||||
.containsExactlyInAnyOrder(
|
.containsExactlyInAnyOrder(
|
||||||
|
|
|
@ -11,7 +11,7 @@ public class DDDecoratorsFactory {
|
||||||
|
|
||||||
public static String DECORATORS_PACKAGE = "com.datadoghq.trace.integration.";
|
public static String DECORATORS_PACKAGE = "com.datadoghq.trace.integration.";
|
||||||
|
|
||||||
public static final String CONFIG_PATH = "dd-trace-decorators.yaml";
|
public static final String CONFIG_PATH = "dd-trace-decorators";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create decorators from configuration
|
* Create decorators from configuration
|
||||||
|
|
|
@ -20,7 +20,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
public class DDTracerFactory {
|
public class DDTracerFactory {
|
||||||
|
|
||||||
public static final String SYSTEM_PROPERTY_CONFIG_PATH = "dd.trace.configurationFile";
|
public static final String SYSTEM_PROPERTY_CONFIG_PATH = "dd.trace.configurationFile";
|
||||||
public static final String CONFIG_PATH = "dd-trace.yaml";
|
public static final String CONFIG_PATH = "dd-trace";
|
||||||
|
|
||||||
private static final String DD_AGENT_WRITER_TYPE = DDAgentWriter.class.getSimpleName();
|
private static final String DD_AGENT_WRITER_TYPE = DDAgentWriter.class.getSimpleName();
|
||||||
private static final String LOGGING_WRITER_TYPE = LoggingWriter.class.getSimpleName();
|
private static final String LOGGING_WRITER_TYPE = LoggingWriter.class.getSimpleName();
|
||||||
|
|
|
@ -5,7 +5,6 @@ import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.Enumeration;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
@ -31,14 +30,25 @@ public class FactoryUtils {
|
||||||
|
|
||||||
public static <A> A loadConfigFromResource(
|
public static <A> A loadConfigFromResource(
|
||||||
final String resourceName, final Class<A> targetClass) {
|
final String resourceName, final Class<A> targetClass) {
|
||||||
final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
|
|
||||||
A config = null;
|
A config = null;
|
||||||
|
|
||||||
|
// Try loading both suffixes
|
||||||
|
if (!resourceName.endsWith(".yaml") && !resourceName.endsWith(".yml")) {
|
||||||
|
config = loadConfigFromResource(resourceName + ".yaml", targetClass);
|
||||||
|
if (config == null) {
|
||||||
|
config = loadConfigFromResource(resourceName + ".yml", targetClass);
|
||||||
|
}
|
||||||
|
if (config != null) {
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final Enumeration<URL> iter = classLoader.getResources(resourceName);
|
final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
|
||||||
if (iter.hasMoreElements()) {
|
final URL resource = classLoader.getResource(resourceName);
|
||||||
final URL url = iter.nextElement();
|
if (resource != null) {
|
||||||
log.info("Loading config from resource " + url);
|
log.info("Loading config from resource " + resource);
|
||||||
config = objectMapper.readValue(url.openStream(), targetClass);
|
config = objectMapper.readValue(resource.openStream(), targetClass);
|
||||||
}
|
}
|
||||||
} catch (final IOException e) {
|
} catch (final IOException e) {
|
||||||
log.warn("Could not load configuration file {}.", resourceName);
|
log.warn("Could not load configuration file {}.", resourceName);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.datadoghq.trace.resolver;
|
package com.datadoghq.trace.resolver;
|
||||||
|
|
||||||
|
import com.datadoghq.trace.writer.DDAgentWriter;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
@ -12,8 +13,8 @@ import java.util.Map;
|
||||||
public class TracerConfig {
|
public class TracerConfig {
|
||||||
|
|
||||||
private String defaultServiceName;
|
private String defaultServiceName;
|
||||||
private WriterConfig writer;
|
private WriterConfig writer = new WriterConfig();
|
||||||
private SamplerConfig sampler;
|
private SamplerConfig sampler = new SamplerConfig();
|
||||||
private List<DDSpanDecoratorConfig> decorators;
|
private List<DDSpanDecoratorConfig> decorators;
|
||||||
|
|
||||||
public String getDefaultServiceName() {
|
public String getDefaultServiceName() {
|
||||||
|
@ -62,7 +63,7 @@ public class TracerConfig {
|
||||||
class SamplerConfig {
|
class SamplerConfig {
|
||||||
|
|
||||||
private Double rate;
|
private Double rate;
|
||||||
private String type;
|
private String type = "AllSampler";
|
||||||
private Map<String, String> skipTagsPatterns;
|
private Map<String, String> skipTagsPatterns;
|
||||||
|
|
||||||
public String getType() {
|
public String getType() {
|
||||||
|
@ -88,9 +89,9 @@ class SamplerConfig {
|
||||||
|
|
||||||
class WriterConfig {
|
class WriterConfig {
|
||||||
|
|
||||||
private String host;
|
private String host = "localhost";
|
||||||
private Integer port;
|
private Integer port = 8126;
|
||||||
private String type;
|
private String type = DDAgentWriter.class.getSimpleName();
|
||||||
|
|
||||||
public void setHost(final String host) {
|
public void setHost(final String host) {
|
||||||
this.host = host;
|
this.host = host;
|
||||||
|
|
|
@ -9,10 +9,25 @@ import org.junit.Test;
|
||||||
|
|
||||||
public class DDTracerFactoryTest {
|
public class DDTracerFactoryTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDefaults() throws Exception {
|
||||||
|
final TracerConfig tracerConfig =
|
||||||
|
FactoryUtils.loadConfigFromResource("dd-trace-default", TracerConfig.class);
|
||||||
|
|
||||||
|
assertThat(tracerConfig.getWriter()).isNotNull();
|
||||||
|
assertThat(tracerConfig.getSampler()).isNotNull();
|
||||||
|
assertThat(tracerConfig.getDefaultServiceName()).isEqualTo("java-app-default");
|
||||||
|
assertThat(tracerConfig.getWriter().getHost()).isEqualTo("localhost");
|
||||||
|
assertThat(tracerConfig.getWriter().getPort()).isEqualTo(8126);
|
||||||
|
assertThat(tracerConfig.getWriter().getType()).isEqualTo(DDAgentWriter.class.getSimpleName());
|
||||||
|
assertThat(tracerConfig.getSampler().getType()).isEqualTo(AllSampler.class.getSimpleName());
|
||||||
|
assertThat(tracerConfig.getSampler().getRate()).isNull();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() throws Exception {
|
public void test() throws Exception {
|
||||||
TracerConfig tracerConfig =
|
TracerConfig tracerConfig =
|
||||||
FactoryUtils.loadConfigFromResource("dd-trace-1.yaml", TracerConfig.class);
|
FactoryUtils.loadConfigFromResource("dd-trace-1", TracerConfig.class);
|
||||||
|
|
||||||
assertThat(tracerConfig.getWriter()).isNotNull();
|
assertThat(tracerConfig.getWriter()).isNotNull();
|
||||||
assertThat(tracerConfig.getSampler()).isNotNull();
|
assertThat(tracerConfig.getSampler()).isNotNull();
|
||||||
|
@ -23,7 +38,7 @@ public class DDTracerFactoryTest {
|
||||||
assertThat(tracerConfig.getSampler().getType()).isEqualTo(AllSampler.class.getSimpleName());
|
assertThat(tracerConfig.getSampler().getType()).isEqualTo(AllSampler.class.getSimpleName());
|
||||||
assertThat(tracerConfig.getSampler().getRate()).isNull();
|
assertThat(tracerConfig.getSampler().getRate()).isNull();
|
||||||
|
|
||||||
tracerConfig = FactoryUtils.loadConfigFromResource("dd-trace-2.yaml", TracerConfig.class);
|
tracerConfig = FactoryUtils.loadConfigFromResource("dd-trace-2", TracerConfig.class);
|
||||||
assertThat(tracerConfig.getWriter()).isNotNull();
|
assertThat(tracerConfig.getWriter()).isNotNull();
|
||||||
assertThat(tracerConfig.getDefaultServiceName()).isEqualTo("java-app");
|
assertThat(tracerConfig.getDefaultServiceName()).isEqualTo("java-app");
|
||||||
assertThat(tracerConfig.getWriter().getHost("localhost")).isEqualTo("localhost");
|
assertThat(tracerConfig.getWriter().getHost("localhost")).isEqualTo("localhost");
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
defaultServiceName: java-app-default
|
Loading…
Reference in New Issue