aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md1
-rw-r--r--api/src/main/java/io/opencensus/trace/Span.java19
-rw-r--r--api/src/main/java/io/opencensus/trace/SpanBuilder.java21
-rw-r--r--api/src/main/java/io/opencensus/trace/export/SpanData.java53
-rw-r--r--api/src/test/java/io/opencensus/trace/SpanBuilderTest.java13
-rw-r--r--api/src/test/java/io/opencensus/trace/export/SpanDataTest.java11
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/SpanBuilderImpl.java11
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/SpanImpl.java17
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/SpanBuilderImplTest.java19
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/SpanImplTest.java33
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessRunningSpanStoreImplTest.java1
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessSampledSpanStoreImplTest.java2
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopRunningSpanStoreImplTest.java3
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopSampledSpanStoreImplTest.java3
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/export/SpanExporterImplTest.java2
15 files changed, 202 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9b4f4c52..8b38c6a4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@
of previous versions, please point to the new metrics with no namespace instead.
- Add an util artifact `opencensus-contrib-appengine-standard-util` to interact with the AppEngine
CloudTraceContext.
+- Add support for Span kinds. (fix [#1054](https://github.com/census-instrumentation/opencensus-java/issues/1054)).
## 0.13.2 - 2018-05-08
- Map http attributes to Stackdriver format (fix [#1153](https://github.com/census-instrumentation/opencensus-java/issues/1153)).
diff --git a/api/src/main/java/io/opencensus/trace/Span.java b/api/src/main/java/io/opencensus/trace/Span.java
index cb82038d..4ec532e9 100644
--- a/api/src/main/java/io/opencensus/trace/Span.java
+++ b/api/src/main/java/io/opencensus/trace/Span.java
@@ -259,4 +259,23 @@ public abstract class Span {
public final Set<Options> getOptions() {
return options;
}
+
+ /**
+ * Type of span. Can be used to specify additional relationships between spans in addition to a
+ * parent/child relationship.
+ *
+ * @since 0.14
+ */
+ public enum Kind {
+ /**
+ * Indicates that the span covers server-side handling of an RPC or other remote network
+ * request.
+ */
+ SERVER,
+
+ /**
+ * Indicates that the span covers the client-side wrapper around an RPC or other remote request.
+ */
+ CLIENT
+ }
}
diff --git a/api/src/main/java/io/opencensus/trace/SpanBuilder.java b/api/src/main/java/io/opencensus/trace/SpanBuilder.java
index f10cb7c0..e66adf57 100644
--- a/api/src/main/java/io/opencensus/trace/SpanBuilder.java
+++ b/api/src/main/java/io/opencensus/trace/SpanBuilder.java
@@ -111,7 +111,7 @@ public abstract class SpanBuilder {
/**
* Sets the {@link Sampler} to use. If not set, the implementation will provide a default.
*
- * @param sampler The {@code Sampler} to use when determining sampling for a {@code Span}.
+ * @param sampler the {@code Sampler} to use when determining sampling for a {@code Span}.
* @return this.
* @since 0.5
*/
@@ -122,7 +122,7 @@ public abstract class SpanBuilder {
* traces. Used (for example) in batching operations, where a single batch handler processes
* multiple requests from different traces.
*
- * @param parentLinks New links to be added.
+ * @param parentLinks new links to be added.
* @return this.
* @throws NullPointerException if {@code parentLinks} is {@code null}.
* @since 0.5
@@ -133,13 +133,23 @@ public abstract class SpanBuilder {
* Sets the option {@link Span.Options#RECORD_EVENTS} for the newly created {@code Span}. If not
* called, the implementation will provide a default.
*
- * @param recordEvents New value determining if this {@code Span} should have events recorded.
+ * @param recordEvents new value determining if this {@code Span} should have events recorded.
* @return this.
* @since 0.5
*/
public abstract SpanBuilder setRecordEvents(boolean recordEvents);
/**
+ * Sets the {@link Span.Kind} for the newly created {@code Span}. If not called, the
+ * implementation will provide a default.
+ *
+ * @param spanKind the kind of the newly created {@code Span}.
+ * @return this.
+ * @since 0.14
+ */
+ public abstract SpanBuilder setSpanKind(Span.Kind spanKind);
+
+ /**
* Starts a new {@link Span}.
*
* <p>Users <b>must</b> manually call {@link Span#end()} or {@link Span#end(EndSpanOptions)} to
@@ -322,6 +332,11 @@ public abstract class SpanBuilder {
return this;
}
+ @Override
+ public SpanBuilder setSpanKind(Span.Kind spanKind) {
+ return this;
+ }
+
private NoopSpanBuilder(String name) {
Utils.checkNotNull(name, "name");
}
diff --git a/api/src/main/java/io/opencensus/trace/export/SpanData.java b/api/src/main/java/io/opencensus/trace/export/SpanData.java
index 7b1daf42..f0a51bf3 100644
--- a/api/src/main/java/io/opencensus/trace/export/SpanData.java
+++ b/api/src/main/java/io/opencensus/trace/export/SpanData.java
@@ -24,6 +24,7 @@ import io.opencensus.trace.AttributeValue;
import io.opencensus.trace.Link;
import io.opencensus.trace.MessageEvent;
import io.opencensus.trace.Span;
+import io.opencensus.trace.Span.Kind;
import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
import io.opencensus.trace.Status;
@@ -52,12 +53,49 @@ public abstract class SpanData {
/**
* Returns a new immutable {@code SpanData}.
*
+ * @deprecated Use {@link #create(SpanContext, SpanId, Boolean, String, Kind, Timestamp,
+ * Attributes, TimedEvents, TimedEvents, Links, Integer, Status, Timestamp)}.
+ */
+ @Deprecated
+ public static SpanData create(
+ SpanContext context,
+ @Nullable SpanId parentSpanId,
+ @Nullable Boolean hasRemoteParent,
+ String name,
+ Timestamp startTimestamp,
+ Attributes attributes,
+ TimedEvents<Annotation> annotations,
+ TimedEvents<? extends io.opencensus.trace.BaseMessageEvent> messageOrNetworkEvents,
+ Links links,
+ @Nullable Integer childSpanCount,
+ @Nullable Status status,
+ @Nullable Timestamp endTimestamp) {
+ return create(
+ context,
+ parentSpanId,
+ hasRemoteParent,
+ name,
+ null,
+ startTimestamp,
+ attributes,
+ annotations,
+ messageOrNetworkEvents,
+ links,
+ childSpanCount,
+ status,
+ endTimestamp);
+ }
+
+ /**
+ * Returns a new immutable {@code SpanData}.
+ *
* @param context the {@code SpanContext} of the {@code Span}.
* @param parentSpanId the parent {@code SpanId} of the {@code Span}. {@code null} if the {@code
* Span} is a root.
* @param hasRemoteParent {@code true} if the parent {@code Span} is remote. {@code null} if this
* is a root span.
* @param name the name of the {@code Span}.
+ * @param kind the kind of the {@code Span}.
* @param startTimestamp the start {@code Timestamp} of the {@code Span}.
* @param attributes the attributes associated with the {@code Span}.
* @param annotations the annotations associated with the {@code Span}.
@@ -70,14 +108,15 @@ public abstract class SpanData {
* @param endTimestamp the end {@code Timestamp} of the {@code Span}. {@code null} if the {@code
* Span} is still active.
* @return a new immutable {@code SpanData}.
- * @since 0.5
+ * @since 0.14
*/
- @SuppressWarnings("deprecation")
+ @SuppressWarnings({"deprecation", "InconsistentOverloads"})
public static SpanData create(
SpanContext context,
@Nullable SpanId parentSpanId,
@Nullable Boolean hasRemoteParent,
String name,
+ @Nullable Kind kind,
Timestamp startTimestamp,
Attributes attributes,
TimedEvents<Annotation> annotations,
@@ -111,6 +150,7 @@ public abstract class SpanData {
parentSpanId,
hasRemoteParent,
name,
+ kind,
startTimestamp,
attributes,
annotations,
@@ -159,6 +199,15 @@ public abstract class SpanData {
public abstract String getName();
/**
+ * Returns the kind of this {@code Span}.
+ *
+ * @return the kind of this {@code Span}.
+ * @since 0.14
+ */
+ @Nullable
+ public abstract Kind getKind();
+
+ /**
* Returns the start {@code Timestamp} of this {@code Span}.
*
* @return the start {@code Timestamp} of this {@code Span}.
diff --git a/api/src/test/java/io/opencensus/trace/SpanBuilderTest.java b/api/src/test/java/io/opencensus/trace/SpanBuilderTest.java
index 1403db15..a929ad97 100644
--- a/api/src/test/java/io/opencensus/trace/SpanBuilderTest.java
+++ b/api/src/test/java/io/opencensus/trace/SpanBuilderTest.java
@@ -21,6 +21,9 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import io.opencensus.common.Scope;
+import io.opencensus.trace.Span.Kind;
+import io.opencensus.trace.samplers.Samplers;
+import java.util.Collections;
import java.util.concurrent.Callable;
import org.junit.Before;
import org.junit.Test;
@@ -88,4 +91,14 @@ public class SpanBuilderTest {
verify(span).end(EndSpanOptions.DEFAULT);
assertThat(tracer.getCurrentSpan()).isSameAs(BlankSpan.INSTANCE);
}
+
+ @Test
+ public void doNotCrash_NoopImplementation() throws Exception {
+ SpanBuilder spanBuilder = tracer.spanBuilder("MySpanName");
+ spanBuilder.setParentLinks(Collections.<Span>emptyList());
+ spanBuilder.setRecordEvents(true);
+ spanBuilder.setSampler(Samplers.alwaysSample());
+ spanBuilder.setSpanKind(Kind.SERVER);
+ assertThat(spanBuilder.startSpan()).isSameAs(BlankSpan.INSTANCE);
+ }
}
diff --git a/api/src/test/java/io/opencensus/trace/export/SpanDataTest.java b/api/src/test/java/io/opencensus/trace/export/SpanDataTest.java
index 399b35e0..b991d145 100644
--- a/api/src/test/java/io/opencensus/trace/export/SpanDataTest.java
+++ b/api/src/test/java/io/opencensus/trace/export/SpanDataTest.java
@@ -26,6 +26,7 @@ import io.opencensus.trace.Link;
import io.opencensus.trace.Link.Type;
import io.opencensus.trace.MessageEvent;
import io.opencensus.trace.NetworkEvent;
+import io.opencensus.trace.Span.Kind;
import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
import io.opencensus.trace.Status;
@@ -113,6 +114,7 @@ public class SpanDataTest {
parentSpanId,
true,
SPAN_NAME,
+ Kind.SERVER,
startTimestamp,
attributes,
annotations,
@@ -125,6 +127,7 @@ public class SpanDataTest {
assertThat(spanData.getParentSpanId()).isEqualTo(parentSpanId);
assertThat(spanData.getHasRemoteParent()).isTrue();
assertThat(spanData.getName()).isEqualTo(SPAN_NAME);
+ assertThat(spanData.getKind()).isEqualTo(Kind.SERVER);
assertThat(spanData.getStartTimestamp()).isEqualTo(startTimestamp);
assertThat(spanData.getAttributes()).isEqualTo(attributes);
assertThat(spanData.getAnnotations()).isEqualTo(annotations);
@@ -144,6 +147,7 @@ public class SpanDataTest {
parentSpanId,
true,
SPAN_NAME,
+ null,
startTimestamp,
attributes,
annotations,
@@ -175,6 +179,7 @@ public class SpanDataTest {
null,
null,
SPAN_NAME,
+ null,
startTimestamp,
attributes,
annotations,
@@ -206,6 +211,7 @@ public class SpanDataTest {
parentSpanId,
false,
SPAN_NAME,
+ null,
startTimestamp,
Attributes.create(Collections.<String, AttributeValue>emptyMap(), 0),
TimedEvents.create(Collections.<SpanData.TimedEvent<Annotation>>emptyList(), 0),
@@ -237,6 +243,7 @@ public class SpanDataTest {
parentSpanId,
false,
SPAN_NAME,
+ Kind.CLIENT,
startTimestamp,
attributes,
annotations,
@@ -251,6 +258,7 @@ public class SpanDataTest {
parentSpanId,
false,
SPAN_NAME,
+ Kind.CLIENT,
startTimestamp,
attributes,
annotations,
@@ -265,6 +273,7 @@ public class SpanDataTest {
parentSpanId,
false,
SPAN_NAME,
+ null,
startTimestamp,
Attributes.create(Collections.<String, AttributeValue>emptyMap(), 0),
TimedEvents.create(Collections.<SpanData.TimedEvent<Annotation>>emptyList(), 0),
@@ -287,6 +296,7 @@ public class SpanDataTest {
parentSpanId,
false,
SPAN_NAME,
+ Kind.CLIENT,
startTimestamp,
attributes,
annotations,
@@ -299,6 +309,7 @@ public class SpanDataTest {
assertThat(spanDataString).contains(spanContext.toString());
assertThat(spanDataString).contains(parentSpanId.toString());
assertThat(spanDataString).contains(SPAN_NAME);
+ assertThat(spanDataString).contains(Kind.CLIENT.toString());
assertThat(spanDataString).contains(startTimestamp.toString());
assertThat(spanDataString).contains(attributes.toString());
assertThat(spanDataString).contains(annotations.toString());
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 45cf4261..f5d74393 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
@@ -25,6 +25,7 @@ import io.opencensus.trace.Link;
import io.opencensus.trace.Link.Type;
import io.opencensus.trace.Sampler;
import io.opencensus.trace.Span;
+import io.opencensus.trace.Span.Kind;
import io.opencensus.trace.SpanBuilder;
import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
@@ -48,6 +49,7 @@ final class SpanBuilderImpl extends SpanBuilder {
@Nullable private Sampler sampler;
private List<Span> parentLinks = Collections.<Span>emptyList();
@Nullable private Boolean recordEvents;
+ @Nullable private Kind kind;
private SpanImpl startSpanInternal(
@Nullable SpanContext parent,
@@ -56,6 +58,7 @@ final class SpanBuilderImpl extends SpanBuilder {
@Nullable Sampler sampler,
List<Span> parentLinks,
@Nullable Boolean recordEvents,
+ @Nullable Kind kind,
@Nullable TimestampConverter timestampConverter) {
TraceParams activeTraceParams = options.traceConfig.getActiveTraceParams();
Random random = options.randomHandler.current();
@@ -95,6 +98,7 @@ final class SpanBuilderImpl extends SpanBuilder {
SpanContext.create(traceId, spanId, traceOptions),
spanOptions,
name,
+ kind,
parentSpanId,
hasRemoteParent,
activeTraceParams,
@@ -196,6 +200,7 @@ final class SpanBuilderImpl extends SpanBuilder {
sampler,
parentLinks,
recordEvents,
+ kind,
timestampConverter);
}
@@ -234,4 +239,10 @@ final class SpanBuilderImpl extends SpanBuilder {
this.recordEvents = recordEvents;
return this;
}
+
+ @Override
+ public SpanBuilderImpl setSpanKind(Kind kind) {
+ this.kind = kind;
+ return this;
+ }
}
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/SpanImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/SpanImpl.java
index 59291685..75509a7f 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/SpanImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/SpanImpl.java
@@ -66,6 +66,8 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
private final StartEndHandler startEndHandler;
// The displayed name of the span.
private final String name;
+ // The kind of the span.
+ @Nullable private final Kind kind;
// The clock used to get the time.
private final Clock clock;
// The time converter used to convert nano time to Timestamp. This is needed because Java has
@@ -132,6 +134,7 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
SpanContext context,
@Nullable EnumSet<Options> options,
String name,
+ @Nullable Kind kind,
@Nullable SpanId parentSpanId,
@Nullable Boolean hasRemoteParent,
TraceParams traceParams,
@@ -143,6 +146,7 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
context,
options,
name,
+ kind,
parentSpanId,
hasRemoteParent,
traceParams,
@@ -214,6 +218,16 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
}
/**
+ * Returns the kind of this {@code Span}.
+ *
+ * @return the kind of this {@code Span}.
+ */
+ @Nullable
+ public Kind getKind() {
+ return kind;
+ }
+
+ /**
* Returns the {@code TimestampConverter} used by this {@code Span}.
*
* @return the {@code TimestampConverter} used by this {@code Span}.
@@ -253,6 +267,7 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
parentSpanId,
hasRemoteParent,
name,
+ kind,
CheckerFrameworkUtils.castNonNull(timestampConverter).convertNanoTime(startNanoTime),
attributesSpanData,
annotationsSpanData,
@@ -575,6 +590,7 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
SpanContext context,
@Nullable EnumSet<Options> options,
String name,
+ @Nullable Kind kind,
@Nullable SpanId parentSpanId,
@Nullable Boolean hasRemoteParent,
TraceParams traceParams,
@@ -585,6 +601,7 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
this.parentSpanId = parentSpanId;
this.hasRemoteParent = hasRemoteParent;
this.name = name;
+ this.kind = kind;
this.traceParams = traceParams;
this.startEndHandler = startEndHandler;
this.clock = clock;
diff --git a/impl_core/src/test/java/io/opencensus/implcore/trace/SpanBuilderImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/trace/SpanBuilderImplTest.java
index 219d3a45..a7cdb553 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/trace/SpanBuilderImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/trace/SpanBuilderImplTest.java
@@ -23,6 +23,7 @@ import io.opencensus.implcore.trace.SpanImpl.StartEndHandler;
import io.opencensus.implcore.trace.internal.RandomHandler;
import io.opencensus.testing.common.TestClock;
import io.opencensus.trace.Span;
+import io.opencensus.trace.Span.Kind;
import io.opencensus.trace.Span.Options;
import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
@@ -62,6 +63,24 @@ public class SpanBuilderImplTest {
}
@Test
+ public void setSpanKind_NotNull() {
+ SpanImpl span =
+ SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions)
+ .setSpanKind(Kind.CLIENT)
+ .startSpan();
+ assertThat(span.getKind()).isEqualTo(Kind.CLIENT);
+ assertThat(span.toSpanData().getKind()).isEqualTo(Kind.CLIENT);
+ }
+
+ @Test
+ public void setSpanKind_DefaultNull() {
+ SpanImpl span =
+ SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions).startSpan();
+ assertThat(span.getKind()).isNull();
+ assertThat(span.toSpanData().getKind()).isNull();
+ }
+
+ @Test
public void startSpanNullParent() {
SpanImpl span =
SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions).startSpan();
diff --git a/impl_core/src/test/java/io/opencensus/implcore/trace/SpanImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/trace/SpanImplTest.java
index 355ace51..57818eea 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/trace/SpanImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/trace/SpanImplTest.java
@@ -28,6 +28,7 @@ import io.opencensus.trace.AttributeValue;
import io.opencensus.trace.EndSpanOptions;
import io.opencensus.trace.Link;
import io.opencensus.trace.NetworkEvent;
+import io.opencensus.trace.Span.Kind;
import io.opencensus.trace.Span.Options;
import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
@@ -91,6 +92,7 @@ public class SpanImplTest {
spanContext,
noRecordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
TraceParams.DEFAULT,
@@ -116,6 +118,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
TraceParams.DEFAULT,
@@ -151,6 +154,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
TraceParams.DEFAULT,
@@ -170,6 +174,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
true,
TraceParams.DEFAULT,
@@ -229,6 +234,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
TraceParams.DEFAULT,
@@ -290,6 +296,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
TraceParams.DEFAULT,
@@ -312,6 +319,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
TraceParams.DEFAULT,
@@ -337,6 +345,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
traceParams,
@@ -385,6 +394,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
traceParams,
@@ -443,6 +453,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
traceParams,
@@ -486,6 +497,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
traceParams,
@@ -529,6 +541,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
traceParams,
@@ -561,6 +574,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
TraceParams.DEFAULT,
@@ -575,6 +589,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
TraceParams.DEFAULT,
@@ -593,6 +608,7 @@ public class SpanImplTest {
spanContext,
recordSpanOptions,
SPAN_NAME,
+ null,
parentSpanId,
false,
TraceParams.DEFAULT,
@@ -603,4 +619,21 @@ public class SpanImplTest {
exception.expectMessage("Running span does not have the SampleToLocalSpanStore set.");
span.getSampleToLocalSpanStore();
}
+
+ @Test
+ public void getSpanKind() {
+ SpanImpl span =
+ SpanImpl.startSpan(
+ spanContext,
+ recordSpanOptions,
+ SPAN_NAME,
+ Kind.SERVER,
+ parentSpanId,
+ false,
+ TraceParams.DEFAULT,
+ startEndHandler,
+ timestampConverter,
+ testClock);
+ assertThat(span.getKind()).isEqualTo(Kind.SERVER);
+ }
}
diff --git a/impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessRunningSpanStoreImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessRunningSpanStoreImplTest.java
index 993b714b..e81df48e 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessRunningSpanStoreImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessRunningSpanStoreImplTest.java
@@ -63,6 +63,7 @@ public class InProcessRunningSpanStoreImplTest {
spanContext,
recordSpanOptions,
spanName,
+ null,
SpanId.generateRandomId(random),
false,
TraceParams.DEFAULT,
diff --git a/impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessSampledSpanStoreImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessSampledSpanStoreImplTest.java
index 83aa8164..e1d2c4bb 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessSampledSpanStoreImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessSampledSpanStoreImplTest.java
@@ -93,6 +93,7 @@ public class InProcessSampledSpanStoreImplTest {
sampledSpanContext,
recordSpanOptions,
spanName,
+ null,
parentSpanId,
false,
TraceParams.DEFAULT,
@@ -106,6 +107,7 @@ public class InProcessSampledSpanStoreImplTest {
notSampledSpanContext,
recordSpanOptions,
spanName,
+ null,
parentSpanId,
false,
TraceParams.DEFAULT,
diff --git a/impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopRunningSpanStoreImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopRunningSpanStoreImplTest.java
index c0a4ff21..2877bb33 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopRunningSpanStoreImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopRunningSpanStoreImplTest.java
@@ -41,7 +41,7 @@ import org.junit.runners.JUnit4;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-/** Unit tests for {@link NoopRunningSpanStoreImpl}. */
+/** Unit tests for {@link RunningSpanStoreImpl.NoopRunningSpanStoreImpl}. */
@RunWith(JUnit4.class)
public class NoopRunningSpanStoreImplTest {
@@ -72,6 +72,7 @@ public class NoopRunningSpanStoreImplTest {
recordSpanOptions,
SPAN_NAME,
null,
+ null,
false,
TraceParams.DEFAULT,
startEndHandler,
diff --git a/impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopSampledSpanStoreImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopSampledSpanStoreImplTest.java
index b3355c69..3ba33fd1 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopSampledSpanStoreImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopSampledSpanStoreImplTest.java
@@ -44,7 +44,7 @@ import org.junit.runners.JUnit4;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-/** Unit tests for {@link NoopSampledSpanStoreImpl}. */
+/** Unit tests for {@link SampledSpanStoreImpl.NoopSampledSpanStoreImpl}. */
@RunWith(JUnit4.class)
public final class NoopSampledSpanStoreImplTest {
@@ -105,6 +105,7 @@ public final class NoopSampledSpanStoreImplTest {
recordSpanOptions,
SPAN_NAME,
null,
+ null,
false,
TraceParams.DEFAULT,
startEndHandler,
diff --git a/impl_core/src/test/java/io/opencensus/implcore/trace/export/SpanExporterImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/trace/export/SpanExporterImplTest.java
index 9de9c67c..9b471352 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/trace/export/SpanExporterImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/trace/export/SpanExporterImplTest.java
@@ -76,6 +76,7 @@ public class SpanExporterImplTest {
recordSpanOptions,
spanName,
null,
+ null,
false,
TraceParams.DEFAULT,
startEndHandler,
@@ -92,6 +93,7 @@ public class SpanExporterImplTest {
recordSpanOptions,
spanName,
null,
+ null,
false,
TraceParams.DEFAULT,
startEndHandler,