Remove SpanID from sampling parameters (#1286)

* Remove SpanID from sampling parameters

* Generate SpanId only for sampled spans

* Revert "Generate SpanId only for sampled spans"

This reverts commit 5b51eaed88.
This commit is contained in:
Paulo Janotti 2020-05-29 08:52:46 -07:00 committed by GitHub
parent 554b5559c2
commit 7fb0d4da98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 7 additions and 46 deletions

View File

@ -115,7 +115,6 @@ class ConfigureTraceExample {
public Decision shouldSample( public Decision shouldSample(
SpanContext parentContext, SpanContext parentContext,
TraceId traceId, TraceId traceId,
SpanId spanId,
String name, String name,
Span.Kind spanKind, Span.Kind spanKind,
Map<String, AttributeValue> attributes, Map<String, AttributeValue> attributes,

View File

@ -20,7 +20,6 @@ import io.opentelemetry.common.AttributeValue;
import io.opentelemetry.trace.Link; import io.opentelemetry.trace.Link;
import io.opentelemetry.trace.Span; import io.opentelemetry.trace.Span;
import io.opentelemetry.trace.SpanContext; import io.opentelemetry.trace.SpanContext;
import io.opentelemetry.trace.SpanId;
import io.opentelemetry.trace.TraceId; import io.opentelemetry.trace.TraceId;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -41,7 +40,6 @@ public interface Sampler {
* span. * span.
* @param traceId the {@link TraceId} for the new {@code Span}. This will be identical to that in * @param traceId the {@link TraceId} for the new {@code Span}. This will be identical to that in
* the parentContext, unless this is a root span. * the parentContext, unless this is a root span.
* @param spanId the {@link SpanId} for the new {@code Span}.
* @param name the name of the new {@code Span}. * @param name the name of the new {@code Span}.
* @param parentLinks the parentLinks associated with the new {@code Span}. * @param parentLinks the parentLinks associated with the new {@code Span}.
* @param spanKind the {@link Span.Kind} of the {@code Span}. * @param spanKind the {@link Span.Kind} of the {@code Span}.
@ -52,7 +50,6 @@ public interface Sampler {
Decision shouldSample( Decision shouldSample(
@Nullable SpanContext parentContext, @Nullable SpanContext parentContext,
TraceId traceId, TraceId traceId,
SpanId spanId,
String name, String name,
Span.Kind spanKind, Span.Kind spanKind,
Map<String, AttributeValue> attributes, Map<String, AttributeValue> attributes,
@ -70,7 +67,7 @@ public interface Sampler {
String getDescription(); String getDescription();
/** /**
* Sampling decision returned by {@link Sampler#shouldSample(SpanContext, TraceId, SpanId, String, * Sampling decision returned by {@link Sampler#shouldSample(SpanContext, TraceId, String,
* Span.Kind, Map, List)}. * Span.Kind, Map, List)}.
* *
* @since 0.1.0 * @since 0.1.0

View File

@ -27,7 +27,6 @@ import io.opentelemetry.sdk.trace.Sampler.Decision;
import io.opentelemetry.trace.Link; import io.opentelemetry.trace.Link;
import io.opentelemetry.trace.Span; import io.opentelemetry.trace.Span;
import io.opentelemetry.trace.SpanContext; import io.opentelemetry.trace.SpanContext;
import io.opentelemetry.trace.SpanId;
import io.opentelemetry.trace.TraceId; import io.opentelemetry.trace.TraceId;
import io.opentelemetry.trace.attributes.DoubleAttributeSetter; import io.opentelemetry.trace.attributes.DoubleAttributeSetter;
import java.util.Collections; import java.util.Collections;
@ -146,7 +145,6 @@ public final class Samplers {
public Decision shouldSample( public Decision shouldSample(
@Nullable SpanContext parentContext, @Nullable SpanContext parentContext,
TraceId traceId, TraceId traceId,
SpanId spanId,
String name, String name,
Span.Kind spanKind, Span.Kind spanKind,
Map<String, AttributeValue> attributes, Map<String, AttributeValue> attributes,
@ -169,7 +167,6 @@ public final class Samplers {
public Decision shouldSample( public Decision shouldSample(
@Nullable SpanContext parentContext, @Nullable SpanContext parentContext,
TraceId traceId, TraceId traceId,
SpanId spanId,
String name, String name,
Span.Kind spanKind, Span.Kind spanKind,
Map<String, AttributeValue> attributes, Map<String, AttributeValue> attributes,
@ -230,7 +227,6 @@ public final class Samplers {
public final Decision shouldSample( public final Decision shouldSample(
@Nullable SpanContext parentContext, @Nullable SpanContext parentContext,
TraceId traceId, TraceId traceId,
SpanId spanId,
String name, String name,
Span.Kind spanKind, Span.Kind spanKind,
Map<String, AttributeValue> attributes, Map<String, AttributeValue> attributes,

View File

@ -223,13 +223,7 @@ final class SpanBuilderSdk implements Span.Builder {
traceConfig traceConfig
.getSampler() .getSampler()
.shouldSample( .shouldSample(
parentContext, parentContext, traceId, spanName, spanKind, immutableAttributes, immutableLinks);
traceId,
spanId,
spanName,
spanKind,
immutableAttributes,
immutableLinks);
SpanContext spanContext = SpanContext spanContext =
SpanContext.create( SpanContext.create(

View File

@ -47,7 +47,6 @@ public class SamplersTest {
private static final int NUM_SAMPLE_TRIES = 1000; private static final int NUM_SAMPLE_TRIES = 1000;
private final IdsGenerator idsGenerator = new RandomIdsGenerator(); private final IdsGenerator idsGenerator = new RandomIdsGenerator();
private final TraceId traceId = idsGenerator.generateTraceId(); private final TraceId traceId = idsGenerator.generateTraceId();
private final SpanId spanId = idsGenerator.generateSpanId();
private final SpanId parentSpanId = idsGenerator.generateSpanId(); private final SpanId parentSpanId = idsGenerator.generateSpanId();
private final TraceState traceState = TraceState.builder().build(); private final TraceState traceState = TraceState.builder().build();
private final SpanContext sampledSpanContext = private final SpanContext sampledSpanContext =
@ -102,7 +101,6 @@ public class SamplersTest {
.shouldSample( .shouldSample(
sampledSpanContext, sampledSpanContext,
traceId, traceId,
spanId,
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),
@ -116,7 +114,6 @@ public class SamplersTest {
.shouldSample( .shouldSample(
notSampledSpanContext, notSampledSpanContext,
traceId, traceId,
spanId,
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),
@ -130,7 +127,6 @@ public class SamplersTest {
.shouldSample( .shouldSample(
null, null,
traceId, traceId,
spanId,
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),
@ -152,7 +148,6 @@ public class SamplersTest {
.shouldSample( .shouldSample(
sampledSpanContext, sampledSpanContext,
traceId, traceId,
spanId,
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),
@ -166,7 +161,6 @@ public class SamplersTest {
.shouldSample( .shouldSample(
notSampledSpanContext, notSampledSpanContext,
traceId, traceId,
spanId,
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),
@ -180,7 +174,6 @@ public class SamplersTest {
.shouldSample( .shouldSample(
null, null,
traceId, traceId,
spanId,
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),
@ -224,7 +217,7 @@ public class SamplersTest {
.isEqualTo(String.format("ProbabilitySampler{%.6f}", 0.5)); .isEqualTo(String.format("ProbabilitySampler{%.6f}", 0.5));
} }
// Applies the given sampler to NUM_SAMPLE_TRIES random traceId/spanId pairs. // Applies the given sampler to NUM_SAMPLE_TRIES random traceId.
private void assertSamplerSamplesWithProbability( private void assertSamplerSamplesWithProbability(
Sampler sampler, Sampler sampler,
SpanContext parent, SpanContext parent,
@ -236,7 +229,6 @@ public class SamplersTest {
.shouldSample( .shouldSample(
parent, parent,
idsGenerator.generateTraceId(), idsGenerator.generateTraceId(),
idsGenerator.generateSpanId(),
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),
@ -344,7 +336,6 @@ public class SamplersTest {
defaultProbability.shouldSample( defaultProbability.shouldSample(
null, null,
notSampledtraceId, notSampledtraceId,
idsGenerator.generateSpanId(),
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),
@ -379,7 +370,6 @@ public class SamplersTest {
defaultProbability.shouldSample( defaultProbability.shouldSample(
null, null,
sampledtraceId, sampledtraceId,
idsGenerator.generateSpanId(),
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),

View File

@ -518,7 +518,6 @@ public class SpanBuilderSdkTest {
public Decision shouldSample( public Decision shouldSample(
@Nullable SpanContext parentContext, @Nullable SpanContext parentContext,
TraceId traceId, TraceId traceId,
SpanId spanId,
String name, String name,
Span.Kind spanKind, Span.Kind spanKind,
Map<String, AttributeValue> attributes, Map<String, AttributeValue> attributes,

View File

@ -30,7 +30,6 @@ import io.opentelemetry.sdk.trace.Samplers;
import io.opentelemetry.trace.Link; import io.opentelemetry.trace.Link;
import io.opentelemetry.trace.Span.Kind; import io.opentelemetry.trace.Span.Kind;
import io.opentelemetry.trace.SpanContext; import io.opentelemetry.trace.SpanContext;
import io.opentelemetry.trace.SpanId;
import io.opentelemetry.trace.TraceId; import io.opentelemetry.trace.TraceId;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -84,13 +83,11 @@ public class JaegerRemoteSampler implements Sampler {
public Decision shouldSample( public Decision shouldSample(
@Nullable SpanContext parentContext, @Nullable SpanContext parentContext,
TraceId traceId, TraceId traceId,
SpanId spanId,
String name, String name,
Kind spanKind, Kind spanKind,
Map<String, AttributeValue> attributes, Map<String, AttributeValue> attributes,
List<Link> parentLinks) { List<Link> parentLinks) {
return sampler.shouldSample( return sampler.shouldSample(parentContext, traceId, name, spanKind, attributes, parentLinks);
parentContext, traceId, spanId, name, spanKind, attributes, parentLinks);
} }
private void getAndUpdateSampler() { private void getAndUpdateSampler() {

View File

@ -23,7 +23,6 @@ import io.opentelemetry.sdk.trace.Samplers;
import io.opentelemetry.trace.Link; import io.opentelemetry.trace.Link;
import io.opentelemetry.trace.Span.Kind; import io.opentelemetry.trace.Span.Kind;
import io.opentelemetry.trace.SpanContext; import io.opentelemetry.trace.SpanContext;
import io.opentelemetry.trace.SpanId;
import io.opentelemetry.trace.TraceId; import io.opentelemetry.trace.TraceId;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
@ -51,7 +50,6 @@ class PerOperationSampler implements Sampler {
public Decision shouldSample( public Decision shouldSample(
@Nullable SpanContext parentContext, @Nullable SpanContext parentContext,
TraceId traceId, TraceId traceId,
SpanId spanId,
String name, String name,
Kind spanKind, Kind spanKind,
Map<String, AttributeValue> attributes, Map<String, AttributeValue> attributes,
@ -60,8 +58,7 @@ class PerOperationSampler implements Sampler {
if (sampler == null) { if (sampler == null) {
sampler = this.defaultSampler; sampler = this.defaultSampler;
} }
return sampler.shouldSample( return sampler.shouldSample(parentContext, traceId, name, spanKind, attributes, parentLinks);
parentContext, traceId, spanId, name, spanKind, attributes, parentLinks);
} }
@Override @Override

View File

@ -24,7 +24,6 @@ import io.opentelemetry.sdk.trace.Samplers;
import io.opentelemetry.trace.Link; import io.opentelemetry.trace.Link;
import io.opentelemetry.trace.Span.Kind; import io.opentelemetry.trace.Span.Kind;
import io.opentelemetry.trace.SpanContext; import io.opentelemetry.trace.SpanContext;
import io.opentelemetry.trace.SpanId;
import io.opentelemetry.trace.TraceId; import io.opentelemetry.trace.TraceId;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
@ -62,7 +61,6 @@ class RateLimitingSampler implements Sampler {
public Decision shouldSample( public Decision shouldSample(
@Nullable SpanContext parentContext, @Nullable SpanContext parentContext,
TraceId traceId, TraceId traceId,
SpanId spanId,
String name, String name,
Kind spanKind, Kind spanKind,
Map<String, AttributeValue> attributes, Map<String, AttributeValue> attributes,
@ -70,14 +68,13 @@ class RateLimitingSampler implements Sampler {
boolean sampled = this.rateLimiter.checkCredit(1.0); boolean sampled = this.rateLimiter.checkCredit(1.0);
if (parentContext != null && parentContext.getTraceFlags().isSampled()) { if (parentContext != null && parentContext.getTraceFlags().isSampled()) {
return Samplers.alwaysOn() return Samplers.alwaysOn()
.shouldSample(parentContext, traceId, spanId, name, spanKind, attributes, parentLinks); .shouldSample(parentContext, traceId, name, spanKind, attributes, parentLinks);
} }
if (parentLinks != null) { if (parentLinks != null) {
for (Link parentLink : parentLinks) { for (Link parentLink : parentLinks) {
if (parentLink.getContext().getTraceFlags().isSampled()) { if (parentLink.getContext().getTraceFlags().isSampled()) {
return Samplers.alwaysOn() return Samplers.alwaysOn()
.shouldSample( .shouldSample(parentContext, traceId, name, spanKind, attributes, parentLinks);
parentContext, traceId, spanId, name, spanKind, attributes, parentLinks);
} }
} }
} }

View File

@ -39,7 +39,6 @@ public class RateLimitingSamplerTest {
private static final String SPAN_NAME = "MySpanName"; private static final String SPAN_NAME = "MySpanName";
private static final Span.Kind SPAN_KIND = Span.Kind.INTERNAL; private static final Span.Kind SPAN_KIND = Span.Kind.INTERNAL;
private final TraceId traceId = new TraceId(150, 150); private final TraceId traceId = new TraceId(150, 150);
private final SpanId spanId = new SpanId(150);
private final SpanId parentSpanId = new SpanId(250); private final SpanId parentSpanId = new SpanId(250);
private final TraceState traceState = TraceState.builder().build(); private final TraceState traceState = TraceState.builder().build();
private final SpanContext sampledSpanContext = private final SpanContext sampledSpanContext =
@ -57,7 +56,6 @@ public class RateLimitingSamplerTest {
.shouldSample( .shouldSample(
sampledSpanContext, sampledSpanContext,
traceId, traceId,
spanId,
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),
@ -68,7 +66,6 @@ public class RateLimitingSamplerTest {
.shouldSample( .shouldSample(
sampledSpanContext, sampledSpanContext,
traceId, traceId,
spanId,
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),
@ -83,7 +80,6 @@ public class RateLimitingSamplerTest {
sampler.shouldSample( sampler.shouldSample(
notSampledSpanContext, notSampledSpanContext,
traceId, traceId,
spanId,
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),
@ -94,7 +90,6 @@ public class RateLimitingSamplerTest {
.shouldSample( .shouldSample(
notSampledSpanContext, notSampledSpanContext,
traceId, traceId,
spanId,
SPAN_NAME, SPAN_NAME,
SPAN_KIND, SPAN_KIND,
Collections.<String, AttributeValue>emptyMap(), Collections.<String, AttributeValue>emptyMap(),