Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 9 additions & 15 deletions dd-trace-api/src/main/java/datadog/trace/api/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ public class Config {
public static final String TRACE_CLASSES_EXCLUDE = "trace.classes.exclude";
public static final String TRACE_SAMPLING_SERVICE_RULES = "trace.sampling.service.rules";
public static final String TRACE_SAMPLING_OPERATION_RULES = "trace.sampling.operation.rules";
public static final String TRACE_SAMPLING_DEFAULT_RATE = "trace.sampling.default.rate";
public static final String TRACE_SAMPLING_RATE_LIMIT = "trace.sampling.rate.limit";
public static final String TRACE_SAMPLE_RATE = "trace.sample.rate";
public static final String TRACE_RATE_LIMIT = "trace.rate.limit";
public static final String TRACE_REPORT_HOSTNAME = "trace.report-hostname";
public static final String HEADER_TAGS = "trace.header.tags";
public static final String HTTP_SERVER_ERROR_STATUSES = "http.server.error.statuses";
Expand Down Expand Up @@ -149,7 +149,7 @@ public class Config {
private static final String DEFAULT_TRACE_METHODS = null;
public static final boolean DEFAULT_TRACE_ANALYTICS_ENABLED = false;
public static final float DEFAULT_ANALYTICS_SAMPLE_RATE = 1.0f;
public static final double DEFAULT_TRACE_SAMPLING_RATE_LIMIT = 100;
public static final double DEFAULT_TRACE_RATE_LIMIT = 100;

public enum PropagationStyle {
DATADOG,
Expand Down Expand Up @@ -222,8 +222,8 @@ public enum PropagationStyle {

@Getter private final Map<String, String> traceSamplingServiceRules;
@Getter private final Map<String, String> traceSamplingOperationRules;
@Getter private final Double traceSamplingDefaultRate;
@Getter private final Double traceSamplingRateLimit;
@Getter private final Double traceSampleRate;
@Getter private final Double traceRateLimit;

// Values from an optionally provided properties file
private static Properties propertiesFromConfigFile;
Expand Down Expand Up @@ -349,10 +349,8 @@ public enum PropagationStyle {
traceSamplingServiceRules = getMapSettingFromEnvironment(TRACE_SAMPLING_SERVICE_RULES, null);
traceSamplingOperationRules =
getMapSettingFromEnvironment(TRACE_SAMPLING_OPERATION_RULES, null);
traceSamplingDefaultRate = getDoubleSettingFromEnvironment(TRACE_SAMPLING_DEFAULT_RATE, null);
traceSamplingRateLimit =
getDoubleSettingFromEnvironment(
TRACE_SAMPLING_RATE_LIMIT, DEFAULT_TRACE_SAMPLING_RATE_LIMIT);
traceSampleRate = getDoubleSettingFromEnvironment(TRACE_SAMPLE_RATE, null);
traceRateLimit = getDoubleSettingFromEnvironment(TRACE_RATE_LIMIT, DEFAULT_TRACE_RATE_LIMIT);

log.debug("New instance: {}", this);
}
Expand Down Expand Up @@ -484,12 +482,8 @@ private Config(final Properties properties, final Config parent) {
traceSamplingOperationRules =
getPropertyMapValue(
properties, TRACE_SAMPLING_OPERATION_RULES, parent.traceSamplingOperationRules);
traceSamplingDefaultRate =
getPropertyDoubleValue(
properties, TRACE_SAMPLING_DEFAULT_RATE, parent.traceSamplingDefaultRate);
traceSamplingRateLimit =
getPropertyDoubleValue(
properties, TRACE_SAMPLING_RATE_LIMIT, parent.traceSamplingRateLimit);
traceSampleRate = getPropertyDoubleValue(properties, TRACE_SAMPLE_RATE, parent.traceSampleRate);
traceRateLimit = getPropertyDoubleValue(properties, TRACE_RATE_LIMIT, parent.traceRateLimit);

log.debug("New instance: {}", this);
}
Expand Down
20 changes: 10 additions & 10 deletions dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ import static datadog.trace.api.Config.SPAN_TAGS
import static datadog.trace.api.Config.SPLIT_BY_TAGS
import static datadog.trace.api.Config.TRACE_AGENT_PORT
import static datadog.trace.api.Config.TRACE_ENABLED
import static datadog.trace.api.Config.TRACE_RATE_LIMIT
import static datadog.trace.api.Config.TRACE_REPORT_HOSTNAME
import static datadog.trace.api.Config.TRACE_RESOLVER_ENABLED
import static datadog.trace.api.Config.TRACE_SAMPLING_DEFAULT_RATE
import static datadog.trace.api.Config.TRACE_SAMPLE_RATE
import static datadog.trace.api.Config.TRACE_SAMPLING_OPERATION_RULES
import static datadog.trace.api.Config.TRACE_SAMPLING_RATE_LIMIT
import static datadog.trace.api.Config.TRACE_SAMPLING_SERVICE_RULES
import static datadog.trace.api.Config.WRITER_TYPE

Expand Down Expand Up @@ -151,8 +151,8 @@ class ConfigTest extends DDSpecification {
prop.setProperty(HEALTH_METRICS_STATSD_PORT, "654")
prop.setProperty(TRACE_SAMPLING_SERVICE_RULES, "a:1")
prop.setProperty(TRACE_SAMPLING_OPERATION_RULES, "b:1")
prop.setProperty(TRACE_SAMPLING_DEFAULT_RATE, ".5")
prop.setProperty(TRACE_SAMPLING_RATE_LIMIT, "200")
prop.setProperty(TRACE_SAMPLE_RATE, ".5")
prop.setProperty(TRACE_RATE_LIMIT, "200")

when:
Config config = Config.get(prop)
Expand Down Expand Up @@ -191,8 +191,8 @@ class ConfigTest extends DDSpecification {
config.healthMetricsStatsdPort == 654
config.traceSamplingServiceRules == [a: "1"]
config.traceSamplingOperationRules == [b: "1"]
config.traceSamplingDefaultRate == 0.5
config.traceSamplingRateLimit == 200
config.traceSampleRate == 0.5
config.traceRateLimit == 200
}

def "specify overrides via system properties"() {
Expand Down Expand Up @@ -232,8 +232,8 @@ class ConfigTest extends DDSpecification {
System.setProperty(PREFIX + HEALTH_METRICS_STATSD_PORT, "654")
System.setProperty(PREFIX + TRACE_SAMPLING_SERVICE_RULES, "a:1")
System.setProperty(PREFIX + TRACE_SAMPLING_OPERATION_RULES, "b:1")
System.setProperty(PREFIX + TRACE_SAMPLING_DEFAULT_RATE, ".5")
System.setProperty(PREFIX + TRACE_SAMPLING_RATE_LIMIT, "200")
System.setProperty(PREFIX + TRACE_SAMPLE_RATE, ".5")
System.setProperty(PREFIX + TRACE_RATE_LIMIT, "200")

when:
Config config = new Config()
Expand Down Expand Up @@ -272,8 +272,8 @@ class ConfigTest extends DDSpecification {
config.healthMetricsStatsdPort == 654
config.traceSamplingServiceRules == [a: "1"]
config.traceSamplingOperationRules == [b: "1"]
config.traceSamplingDefaultRate == 0.5
config.traceSamplingRateLimit == 200
config.traceSampleRate == 0.5
config.traceRateLimit == 200
}

def "specify overrides via env vars"() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@ public static Sampler forConfig(final Config config) {

if ((serviceRules != null && !serviceRules.isEmpty())
|| (operationRules != null && !operationRules.isEmpty())
|| config.getTraceSamplingDefaultRate() != null) {
|| config.getTraceSampleRate() != null) {

try {
sampler =
RuleBasedSampler.build(
serviceRules,
operationRules,
config.getTraceSamplingDefaultRate(),
config.getTraceSamplingRateLimit());
config.getTraceSampleRate(),
config.getTraceRateLimit());
} catch (final IllegalArgumentException e) {
log.error("Invalid sampler configuration. Using AllSampler", e);
sampler = new AllSampler();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import datadog.trace.common.sampling.RuleBasedSampler
import datadog.trace.common.sampling.Sampler
import datadog.trace.util.test.DDSpecification

import static datadog.trace.api.Config.TRACE_SAMPLING_DEFAULT_RATE
import static datadog.trace.api.Config.TRACE_RATE_LIMIT
import static datadog.trace.api.Config.TRACE_SAMPLE_RATE
import static datadog.trace.api.Config.TRACE_SAMPLING_OPERATION_RULES
import static datadog.trace.api.Config.TRACE_SAMPLING_RATE_LIMIT
import static datadog.trace.api.Config.TRACE_SAMPLING_SERVICE_RULES
import static datadog.trace.api.sampling.PrioritySampling.SAMPLER_DROP
import static datadog.trace.api.sampling.PrioritySampling.SAMPLER_KEEP
Expand All @@ -27,7 +27,7 @@ class RuleBasedSamplingTest extends DDSpecification {
def "Rule Based Sampler is not created when just rate limit set"() {
when:
Properties properties = new Properties()
properties.setProperty(TRACE_SAMPLING_RATE_LIMIT, "50")
properties.setProperty(TRACE_RATE_LIMIT, "50")
Sampler sampler = Sampler.Builder.forConfig(properties)

then:
Expand All @@ -46,11 +46,11 @@ class RuleBasedSamplingTest extends DDSpecification {
}

if (defaultRate != null) {
properties.setProperty(TRACE_SAMPLING_DEFAULT_RATE, defaultRate)
properties.setProperty(TRACE_SAMPLE_RATE, defaultRate)
}

if (rateLimit != null) {
properties.setProperty(TRACE_SAMPLING_RATE_LIMIT, rateLimit)
properties.setProperty(TRACE_RATE_LIMIT, rateLimit)
}

when:
Expand Down Expand Up @@ -139,7 +139,7 @@ class RuleBasedSamplingTest extends DDSpecification {
when:
Properties properties = new Properties()
properties.setProperty(TRACE_SAMPLING_SERVICE_RULES, "service:1")
properties.setProperty(TRACE_SAMPLING_RATE_LIMIT, "1")
properties.setProperty(TRACE_RATE_LIMIT, "1")
Sampler sampler = Sampler.Builder.forConfig(properties)

DDSpan span1 = SpanFactory.newSpanOf("service", "bar")
Expand All @@ -165,7 +165,7 @@ class RuleBasedSamplingTest extends DDSpecification {
when:
Properties properties = new Properties()
properties.setProperty(TRACE_SAMPLING_SERVICE_RULES, "service:1,foo:1")
properties.setProperty(TRACE_SAMPLING_RATE_LIMIT, "1")
properties.setProperty(TRACE_RATE_LIMIT, "1")
Sampler sampler = Sampler.Builder.forConfig(properties)

DDSpan span1 = SpanFactory.newSpanOf("service", "bar")
Expand Down