aboutsummaryrefslogtreecommitdiff
path: root/impl_core/src/main
diff options
context:
space:
mode:
authorBogdan Drutu <bdrutu@google.com>2018-08-09 10:09:28 -0700
committerGitHub <noreply@github.com>2018-08-09 10:09:28 -0700
commit52f38e48e2ac6cb65e28dcd97b4f7e9650357bba (patch)
treeb5dc40e7e3805ece5011f1d253622e69bccc15f6 /impl_core/src/main
parent18aa2793facbb3d7e252ac32e6bb4d09f08a37ac (diff)
downloadopencensus-java-52f38e48e2ac6cb65e28dcd97b4f7e9650357bba.tar.gz
Add Tracestate into SpanContext. (#1359)
* Add Tracestate into SpanContext. * Remove empty constructor from Tracestate.Builder * Add info in the changelog.
Diffstat (limited to 'impl_core/src/main')
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/SpanBuilderImpl.java9
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/propagation/B3Format.java4
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/propagation/BinaryFormatImpl.java4
3 files changed, 13 insertions, 4 deletions
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/SpanBuilderImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/SpanBuilderImpl.java
index 3c5f20c6..d4f7c347 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/SpanBuilderImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/SpanBuilderImpl.java
@@ -31,6 +31,7 @@ import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
import io.opencensus.trace.TraceId;
import io.opencensus.trace.TraceOptions;
+import io.opencensus.trace.Tracestate;
import io.opencensus.trace.config.TraceConfig;
import io.opencensus.trace.config.TraceParams;
import java.util.Collections;
@@ -41,8 +42,9 @@ import javax.annotation.Nullable;
/** Implementation of the {@link SpanBuilder}. */
final class SpanBuilderImpl extends SpanBuilder {
- private final Options options;
+ private static final Tracestate TRACESTATE_DEFAULT = Tracestate.builder().build();
+ private final Options options;
private final String name;
@Nullable private final Span parent;
@Nullable private final SpanContext remoteParentSpanContext;
@@ -66,6 +68,8 @@ final class SpanBuilderImpl extends SpanBuilder {
SpanId spanId = SpanId.generateRandomId(random);
SpanId parentSpanId = null;
TraceOptions.Builder traceOptionsBuilder;
+ // TODO(bdrutu): Handle tracestate correctly not just propagate.
+ Tracestate tracestate = TRACESTATE_DEFAULT;
if (parent == null || !parent.isValid()) {
// New root span.
traceId = TraceId.generateRandomId(random);
@@ -77,6 +81,7 @@ final class SpanBuilderImpl extends SpanBuilder {
traceId = parent.getTraceId();
parentSpanId = parent.getSpanId();
traceOptionsBuilder = TraceOptions.builder(parent.getTraceOptions());
+ tracestate = parent.getTracestate();
}
traceOptionsBuilder.setIsSampled(
makeSamplingDecision(
@@ -95,7 +100,7 @@ final class SpanBuilderImpl extends SpanBuilder {
}
SpanImpl span =
SpanImpl.startSpan(
- SpanContext.create(traceId, spanId, traceOptions),
+ SpanContext.create(traceId, spanId, traceOptions, tracestate),
spanOptions,
name,
kind,
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/B3Format.java b/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/B3Format.java
index 67c66ea9..d928d93c 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/B3Format.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/B3Format.java
@@ -23,6 +23,7 @@ import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
import io.opencensus.trace.TraceId;
import io.opencensus.trace.TraceOptions;
+import io.opencensus.trace.Tracestate;
import io.opencensus.trace.propagation.SpanContextParseException;
import io.opencensus.trace.propagation.TextFormat;
import java.util.Arrays;
@@ -38,6 +39,7 @@ import org.checkerframework.checker.nullness.qual.NonNull;
* href=https://github.com/openzipkin/b3-propagation>b3-propagation</a>.
*/
final class B3Format extends TextFormat {
+ private static final Tracestate TRACESTATE_DEFAULT = Tracestate.builder().build();
@VisibleForTesting static final String X_B3_TRACE_ID = "X-B3-TraceId";
@VisibleForTesting static final String X_B3_SPAN_ID = "X-B3-SpanId";
@VisibleForTesting static final String X_B3_PARENT_SPAN_ID = "X-B3-ParentSpanId";
@@ -103,7 +105,7 @@ final class B3Format extends TextFormat {
|| FLAGS_VALUE.equals(getter.get(carrier, X_B3_FLAGS))) {
traceOptions = TraceOptions.builder().setIsSampled(true).build();
}
- return SpanContext.create(traceId, spanId, traceOptions);
+ return SpanContext.create(traceId, spanId, traceOptions, TRACESTATE_DEFAULT);
} catch (IllegalArgumentException e) {
throw new SpanContextParseException("Invalid input.", e);
}
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/BinaryFormatImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/BinaryFormatImpl.java
index a2438008..1af24854 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/BinaryFormatImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/BinaryFormatImpl.java
@@ -23,6 +23,7 @@ import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
import io.opencensus.trace.TraceId;
import io.opencensus.trace.TraceOptions;
+import io.opencensus.trace.Tracestate;
import io.opencensus.trace.propagation.BinaryFormat;
import io.opencensus.trace.propagation.SpanContextParseException;
@@ -61,6 +62,7 @@ import io.opencensus.trace.propagation.SpanContextParseException;
* </ul>
*/
final class BinaryFormatImpl extends BinaryFormat {
+ private static final Tracestate TRACESTATE_DEFAULT = Tracestate.builder().build();
private static final byte VERSION_ID = 0;
private static final int VERSION_ID_OFFSET = 0;
// The version_id/field_id size in bytes.
@@ -141,6 +143,6 @@ final class BinaryFormatImpl extends BinaryFormat {
}
traceOptions = TraceOptions.fromBytes(bytes, pos + ID_SIZE);
}
- return SpanContext.create(traceId, spanId, traceOptions);
+ return SpanContext.create(traceId, spanId, traceOptions, TRACESTATE_DEFAULT);
}
}