aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBogdan Drutu <bdrutu@google.com>2018-09-22 09:37:29 -0700
committerGitHub <noreply@github.com>2018-09-22 09:37:29 -0700
commitf0e78ba5a10165cce2b63809bfdfe3e34b1eb456 (patch)
tree68b4ed0d345bf218d15a7b9234a2b70e2f0ec660
parent0c988a28144199450fa21ef55ddcac8c2c9323bc (diff)
downloadopencensus-java-f0e78ba5a10165cce2b63809bfdfe3e34b1eb456.tar.gz
Split SpanImpl into record/notrecord span impl to avoid checks of recording all time. (#1468)
* Split SpanImpl into record/notrecord span impl to avoid checks of recording all time. * Remove one extra SuppressWarnings.
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/NoRecordEventsSpanImpl.java85
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/RecordEventsSpanImpl.java (renamed from impl_core/src/main/java/io/opencensus/implcore/trace/SpanImpl.java)116
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/SpanBuilderImpl.java46
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/StartEndHandlerImpl.java14
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/TraceComponentImplBase.java2
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/TracerImpl.java4
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/export/InProcessRunningSpanStoreImpl.java18
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/export/InProcessSampledSpanStoreImpl.java56
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/export/RunningSpanStoreImpl.java13
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/export/SampledSpanStoreImpl.java10
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/export/SpanExporterImpl.java22
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/NoRecordEventsSpanImplTest.java91
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/RecordEventsSpanImplTest.java (renamed from impl_core/src/test/java/io/opencensus/implcore/trace/SpanImplTest.java)109
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/SpanBuilderImplTest.java90
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/TracerImplTest.java2
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessRunningSpanStoreImplTest.java32
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/export/InProcessSampledSpanStoreImplTest.java51
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopRunningSpanStoreImplTest.java18
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/export/NoopSampledSpanStoreImplTest.java18
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/trace/export/SpanExporterImplTest.java53
20 files changed, 476 insertions, 374 deletions
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/NoRecordEventsSpanImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/NoRecordEventsSpanImpl.java
new file mode 100644
index 00000000..8a5f8e05
--- /dev/null
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/NoRecordEventsSpanImpl.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2018, OpenCensus Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package io.opencensus.implcore.trace;
+
+import com.google.common.base.Preconditions;
+import io.opencensus.trace.Annotation;
+import io.opencensus.trace.AttributeValue;
+import io.opencensus.trace.EndSpanOptions;
+import io.opencensus.trace.Link;
+import io.opencensus.trace.Span;
+import io.opencensus.trace.SpanContext;
+import io.opencensus.trace.Status;
+import java.util.EnumSet;
+import java.util.Map;
+
+/** Implementation for the {@link Span} class that does not record trace events. */
+final class NoRecordEventsSpanImpl extends Span {
+
+ private static final EnumSet<Options> NOT_RECORD_EVENTS_SPAN_OPTIONS =
+ EnumSet.noneOf(Span.Options.class);
+
+ static NoRecordEventsSpanImpl create(SpanContext context) {
+ return new NoRecordEventsSpanImpl(context);
+ }
+
+ @Override
+ public void addAnnotation(String description, Map<String, AttributeValue> attributes) {
+ Preconditions.checkNotNull(description, "description");
+ Preconditions.checkNotNull(attributes, "attribute");
+ }
+
+ @Override
+ public void addAnnotation(Annotation annotation) {
+ Preconditions.checkNotNull(annotation, "annotation");
+ }
+
+ @Override
+ public void putAttribute(String key, AttributeValue value) {
+ Preconditions.checkNotNull(key, "key");
+ Preconditions.checkNotNull(value, "value");
+ }
+
+ @Override
+ public void putAttributes(Map<String, AttributeValue> attributes) {
+ Preconditions.checkNotNull(attributes, "attributes");
+ }
+
+ @Override
+ public void addMessageEvent(io.opencensus.trace.MessageEvent messageEvent) {
+ Preconditions.checkNotNull(messageEvent, "messageEvent");
+ }
+
+ @Override
+ public void addLink(Link link) {
+ Preconditions.checkNotNull(link, "link");
+ }
+
+ @Override
+ public void setStatus(Status status) {
+ Preconditions.checkNotNull(status, "status");
+ }
+
+ @Override
+ public void end(EndSpanOptions options) {
+ Preconditions.checkNotNull(options, "options");
+ }
+
+ private NoRecordEventsSpanImpl(SpanContext context) {
+ super(context, NOT_RECORD_EVENTS_SPAN_OPTIONS);
+ }
+}
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/SpanImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/RecordEventsSpanImpl.java
index 75509a7f..af3545bc 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/SpanImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/RecordEventsSpanImpl.java
@@ -51,11 +51,14 @@ import javax.annotation.concurrent.GuardedBy;
import javax.annotation.concurrent.ThreadSafe;
// TODO(hailongwen): remove the usage of `NetworkEvent` in the future.
-/** Implementation for the {@link Span} class. */
+/** Implementation for the {@link Span} class that records trace events. */
@ThreadSafe
-public final class SpanImpl extends Span implements Element<SpanImpl> {
+public final class RecordEventsSpanImpl extends Span implements Element<RecordEventsSpanImpl> {
private static final Logger logger = Logger.getLogger(Tracer.class.getName());
+ private static final EnumSet<Span.Options> RECORD_EVENTS_SPAN_OPTIONS =
+ EnumSet.of(Span.Options.RECORD_EVENTS);
+
// The parent SpanId of this span. Null if this is a root span.
@Nullable private final SpanId parentSpanId;
// True if the parent is on a different process.
@@ -73,8 +76,7 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
// The time converter used to convert nano time to Timestamp. This is needed because Java has
// millisecond granularity for Timestamp and tracing events are recorded more often.
@Nullable private final TimestampConverter timestampConverter;
- // The start time of the span. Set when the span is created iff the RECORD_EVENTS options is
- // set, otherwise 0.
+ // The start time of the span.
private final long startNanoTime;
// Set of recorded attributes. DO NOT CALL any other method that changes the ordering of events.
@GuardedBy("this")
@@ -87,18 +89,16 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
// List of recorded network events.
@GuardedBy("this")
@Nullable
- @SuppressWarnings("deprecation")
- private TraceEvents<EventWithNanoTime<io.opencensus.trace.NetworkEvent>> networkEvents;
+ private TraceEvents<EventWithNanoTime<io.opencensus.trace.MessageEvent>> messageEvents;
// List of recorded links to parent and child spans.
@GuardedBy("this")
@Nullable
private TraceEvents<Link> links;
- // The status of the span. Set when the span is ended iff the RECORD_EVENTS options is set.
+ // The status of the span.
@GuardedBy("this")
@Nullable
private Status status;
- // The end time of the span. Set when the span is ended iff the RECORD_EVENTS options is set,
- // otherwise 0.
+ // The end time of the span.
@GuardedBy("this")
private long endNanoTime;
// True if the span is ended.
@@ -109,14 +109,13 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
private boolean sampleToLocalSpanStore;
// Pointers for the ConcurrentIntrusiveList$Element. Guarded by the ConcurrentIntrusiveList.
- @Nullable private SpanImpl next = null;
- @Nullable private SpanImpl prev = null;
+ @Nullable private RecordEventsSpanImpl next = null;
+ @Nullable private RecordEventsSpanImpl prev = null;
/**
* Creates and starts a span with the given configuration.
*
* @param context supplies the trace_id and span_id for the newly started span.
- * @param options the options for the new span, importantly Options.RECORD_EVENTS.
* @param name the displayed name for the new span.
* @param parentSpanId the span_id of the parent span, or null if the new span is a root span.
* @param hasRemoteParent {@code true} if the parentContext is remote. {@code null} if this is a
@@ -130,9 +129,8 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
* @return a new and started span.
*/
@VisibleForTesting
- public static SpanImpl startSpan(
+ public static RecordEventsSpanImpl startSpan(
SpanContext context,
- @Nullable EnumSet<Options> options,
String name,
@Nullable Kind kind,
@Nullable SpanId parentSpanId,
@@ -141,10 +139,9 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
StartEndHandler startEndHandler,
@Nullable TimestampConverter timestampConverter,
Clock clock) {
- SpanImpl span =
- new SpanImpl(
+ RecordEventsSpanImpl span =
+ new RecordEventsSpanImpl(
context,
- options,
name,
kind,
parentSpanId,
@@ -155,9 +152,7 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
clock);
// Call onStart here instead of calling in the constructor to make sure the span is completely
// initialized.
- if (span.getOptions().contains(Options.RECORD_EVENTS)) {
- startEndHandler.onStart(span);
- }
+ startEndHandler.onStart(span);
return span;
}
@@ -244,9 +239,6 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
* @throws IllegalStateException if the Span doesn't have RECORD_EVENTS option.
*/
public SpanData toSpanData() {
- checkState(
- getOptions().contains(Options.RECORD_EVENTS),
- "Getting SpanData for a Span without RECORD_EVENTS option.");
synchronized (this) {
SpanData.Attributes attributesSpanData =
attributes == null
@@ -254,8 +246,7 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
: SpanData.Attributes.create(attributes, attributes.getNumberOfDroppedAttributes());
SpanData.TimedEvents<Annotation> annotationsSpanData =
createTimedEvents(getInitializedAnnotations(), timestampConverter);
- @SuppressWarnings("deprecation")
- SpanData.TimedEvents<io.opencensus.trace.NetworkEvent> networkEventsSpanData =
+ SpanData.TimedEvents<io.opencensus.trace.MessageEvent> messageEventsSpanData =
createTimedEvents(getInitializedNetworkEvents(), timestampConverter);
SpanData.Links linksSpanData =
links == null
@@ -271,7 +262,7 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
CheckerFrameworkUtils.castNonNull(timestampConverter).convertNanoTime(startNanoTime),
attributesSpanData,
annotationsSpanData,
- networkEventsSpanData,
+ messageEventsSpanData,
linksSpanData,
null, // Not supported yet.
hasBeenEnded ? getStatusWithDefault() : null,
@@ -285,9 +276,6 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
public void putAttribute(String key, AttributeValue value) {
Preconditions.checkNotNull(key, "key");
Preconditions.checkNotNull(value, "value");
- if (!getOptions().contains(Options.RECORD_EVENTS)) {
- return;
- }
synchronized (this) {
if (hasBeenEnded) {
logger.log(Level.FINE, "Calling putAttributes() on an ended Span.");
@@ -300,9 +288,6 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
@Override
public void putAttributes(Map<String, AttributeValue> attributes) {
Preconditions.checkNotNull(attributes, "attributes");
- if (!getOptions().contains(Options.RECORD_EVENTS)) {
- return;
- }
synchronized (this) {
if (hasBeenEnded) {
logger.log(Level.FINE, "Calling putAttributes() on an ended Span.");
@@ -316,9 +301,6 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
public void addAnnotation(String description, Map<String, AttributeValue> attributes) {
Preconditions.checkNotNull(description, "description");
Preconditions.checkNotNull(attributes, "attribute");
- if (!getOptions().contains(Options.RECORD_EVENTS)) {
- return;
- }
synchronized (this) {
if (hasBeenEnded) {
logger.log(Level.FINE, "Calling addAnnotation() on an ended Span.");
@@ -335,9 +317,6 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
@Override
public void addAnnotation(Annotation annotation) {
Preconditions.checkNotNull(annotation, "annotation");
- if (!getOptions().contains(Options.RECORD_EVENTS)) {
- return;
- }
synchronized (this) {
if (hasBeenEnded) {
logger.log(Level.FINE, "Calling addAnnotation() on an ended Span.");
@@ -349,11 +328,8 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
}
@Override
- @SuppressWarnings("deprecation")
- public void addNetworkEvent(io.opencensus.trace.NetworkEvent networkEvent) {
- if (!getOptions().contains(Options.RECORD_EVENTS)) {
- return;
- }
+ public void addMessageEvent(io.opencensus.trace.MessageEvent messageEvent) {
+ Preconditions.checkNotNull(messageEvent, "messageEvent");
synchronized (this) {
if (hasBeenEnded) {
logger.log(Level.FINE, "Calling addNetworkEvent() on an ended Span.");
@@ -361,17 +337,14 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
}
getInitializedNetworkEvents()
.addEvent(
- new EventWithNanoTime<io.opencensus.trace.NetworkEvent>(
- clock.nowNanos(), checkNotNull(networkEvent, "networkEvent")));
+ new EventWithNanoTime<io.opencensus.trace.MessageEvent>(
+ clock.nowNanos(), checkNotNull(messageEvent, "networkEvent")));
}
}
@Override
public void addLink(Link link) {
Preconditions.checkNotNull(link, "link");
- if (!getOptions().contains(Options.RECORD_EVENTS)) {
- return;
- }
synchronized (this) {
if (hasBeenEnded) {
logger.log(Level.FINE, "Calling addLink() on an ended Span.");
@@ -384,9 +357,6 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
@Override
public void setStatus(Status status) {
Preconditions.checkNotNull(status, "status");
- if (!getOptions().contains(Options.RECORD_EVENTS)) {
- return;
- }
synchronized (this) {
if (hasBeenEnded) {
logger.log(Level.FINE, "Calling setStatus() on an ended Span.");
@@ -399,9 +369,6 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
@Override
public void end(EndSpanOptions options) {
Preconditions.checkNotNull(options, "options");
- if (!getOptions().contains(Options.RECORD_EVENTS)) {
- return;
- }
synchronized (this) {
if (hasBeenEnded) {
logger.log(Level.FINE, "Calling end() on an ended Span.");
@@ -435,15 +402,14 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
}
@GuardedBy("this")
- @SuppressWarnings("deprecation")
- private TraceEvents<EventWithNanoTime<io.opencensus.trace.NetworkEvent>>
+ private TraceEvents<EventWithNanoTime<io.opencensus.trace.MessageEvent>>
getInitializedNetworkEvents() {
- if (networkEvents == null) {
- networkEvents =
- new TraceEvents<EventWithNanoTime<io.opencensus.trace.NetworkEvent>>(
- traceParams.getMaxNumberOfNetworkEvents());
+ if (messageEvents == null) {
+ messageEvents =
+ new TraceEvents<EventWithNanoTime<io.opencensus.trace.MessageEvent>>(
+ traceParams.getMaxNumberOfMessageEvents());
}
- return networkEvents;
+ return messageEvents;
}
@GuardedBy("this")
@@ -474,23 +440,23 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
@Override
@Nullable
- public SpanImpl getNext() {
+ public RecordEventsSpanImpl getNext() {
return next;
}
@Override
- public void setNext(@Nullable SpanImpl element) {
+ public void setNext(@Nullable RecordEventsSpanImpl element) {
next = element;
}
@Override
@Nullable
- public SpanImpl getPrev() {
+ public RecordEventsSpanImpl getPrev() {
return prev;
}
@Override
- public void setPrev(@Nullable SpanImpl element) {
+ public void setPrev(@Nullable RecordEventsSpanImpl element) {
prev = element;
}
@@ -505,9 +471,9 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
* be thread-safe.
*/
public interface StartEndHandler {
- void onStart(SpanImpl span);
+ void onStart(RecordEventsSpanImpl span);
- void onEnd(SpanImpl span);
+ void onEnd(RecordEventsSpanImpl span);
}
// A map implementation with a fixed capacity that drops events when the map gets full. Eviction
@@ -586,9 +552,8 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
}
}
- private SpanImpl(
+ private RecordEventsSpanImpl(
SpanContext context,
- @Nullable EnumSet<Options> options,
String name,
@Nullable Kind kind,
@Nullable SpanId parentSpanId,
@@ -597,7 +562,7 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
StartEndHandler startEndHandler,
@Nullable TimestampConverter timestampConverter,
Clock clock) {
- super(context, options);
+ super(context, RECORD_EVENTS_SPAN_OPTIONS);
this.parentSpanId = parentSpanId;
this.hasRemoteParent = hasRemoteParent;
this.name = name;
@@ -607,13 +572,8 @@ public final class SpanImpl extends Span implements Element<SpanImpl> {
this.clock = clock;
this.hasBeenEnded = false;
this.sampleToLocalSpanStore = false;
- if (options != null && options.contains(Options.RECORD_EVENTS)) {
- this.timestampConverter =
- timestampConverter != null ? timestampConverter : TimestampConverter.now(clock);
- startNanoTime = clock.nowNanos();
- } else {
- this.startNanoTime = 0;
- this.timestampConverter = timestampConverter;
- }
+ this.timestampConverter =
+ timestampConverter != null ? timestampConverter : TimestampConverter.now(clock);
+ startNanoTime = clock.nowNanos();
}
}
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 3ea0ce33..5565e9de 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
@@ -35,7 +35,6 @@ import io.opencensus.trace.Tracestate;
import io.opencensus.trace.config.TraceConfig;
import io.opencensus.trace.config.TraceParams;
import java.util.Collections;
-import java.util.EnumSet;
import java.util.List;
import java.util.Random;
import javax.annotation.Nullable;
@@ -49,11 +48,6 @@ final class SpanBuilderImpl extends SpanBuilder {
private static final TraceOptions NOT_SAMPLED_TRACE_OPTIONS =
TraceOptions.builder().setIsSampled(false).build();
- private static final EnumSet<Span.Options> NOT_RECORD_EVENTS_SPAN_OPTIONS =
- EnumSet.noneOf(Span.Options.class);
- private static final EnumSet<Span.Options> RECORD_EVENTS_SPAN_OPTIONS =
- EnumSet.of(Span.Options.RECORD_EVENTS);
-
private final Options options;
private final String name;
@Nullable private final Span parent;
@@ -63,7 +57,7 @@ final class SpanBuilderImpl extends SpanBuilder {
@Nullable private Boolean recordEvents;
@Nullable private Kind kind;
- private SpanImpl startSpanInternal(
+ private Span startSpanInternal(
@Nullable SpanContext parent,
@Nullable Boolean hasRemoteParent,
String name,
@@ -102,22 +96,20 @@ final class SpanBuilderImpl extends SpanBuilder {
activeTraceParams)
? SAMPLED_TRACE_OPTIONS
: NOT_SAMPLED_TRACE_OPTIONS;
- EnumSet<Span.Options> spanOptions =
+ Span span =
(traceOptions.isSampled() || Boolean.TRUE.equals(recordEvents))
- ? RECORD_EVENTS_SPAN_OPTIONS
- : NOT_RECORD_EVENTS_SPAN_OPTIONS;
- SpanImpl span =
- SpanImpl.startSpan(
- SpanContext.create(traceId, spanId, traceOptions, tracestate),
- spanOptions,
- name,
- kind,
- parentSpanId,
- hasRemoteParent,
- activeTraceParams,
- options.startEndHandler,
- timestampConverter,
- options.clock);
+ ? RecordEventsSpanImpl.startSpan(
+ SpanContext.create(traceId, spanId, traceOptions, tracestate),
+ name,
+ kind,
+ parentSpanId,
+ hasRemoteParent,
+ activeTraceParams,
+ options.startEndHandler,
+ timestampConverter,
+ options.clock)
+ : NoRecordEventsSpanImpl.create(
+ SpanContext.create(traceId, spanId, traceOptions, tracestate));
linkSpans(span, parentLinks);
return span;
}
@@ -186,7 +178,7 @@ final class SpanBuilderImpl extends SpanBuilder {
}
@Override
- public SpanImpl startSpan() {
+ public Span startSpan() {
SpanContext parentContext = remoteParentSpanContext;
Boolean hasRemoteParent = Boolean.TRUE;
TimestampConverter timestampConverter = null;
@@ -199,8 +191,8 @@ final class SpanBuilderImpl extends SpanBuilder {
parentContext = parent.getContext();
// Pass the timestamp converter from the parent to ensure that the recorded events are in
// the right order. Implementation uses System.nanoTime() which is monotonically increasing.
- if (parent instanceof SpanImpl) {
- timestampConverter = ((SpanImpl) parent).getTimestampConverter();
+ if (parent instanceof RecordEventsSpanImpl) {
+ timestampConverter = ((RecordEventsSpanImpl) parent).getTimestampConverter();
}
} else {
hasRemoteParent = null;
@@ -219,13 +211,13 @@ final class SpanBuilderImpl extends SpanBuilder {
static final class Options {
private final RandomHandler randomHandler;
- private final SpanImpl.StartEndHandler startEndHandler;
+ private final RecordEventsSpanImpl.StartEndHandler startEndHandler;
private final Clock clock;
private final TraceConfig traceConfig;
Options(
RandomHandler randomHandler,
- SpanImpl.StartEndHandler startEndHandler,
+ RecordEventsSpanImpl.StartEndHandler startEndHandler,
Clock clock,
TraceConfig traceConfig) {
this.randomHandler = checkNotNull(randomHandler, "randomHandler");
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/StartEndHandlerImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/StartEndHandlerImpl.java
index e22a86bd..6adaa200 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/StartEndHandlerImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/StartEndHandlerImpl.java
@@ -17,7 +17,7 @@
package io.opencensus.implcore.trace;
import io.opencensus.implcore.internal.EventQueue;
-import io.opencensus.implcore.trace.SpanImpl.StartEndHandler;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl.StartEndHandler;
import io.opencensus.implcore.trace.export.RunningSpanStoreImpl;
import io.opencensus.implcore.trace.export.SampledSpanStoreImpl;
import io.opencensus.implcore.trace.export.SpanExporterImpl;
@@ -61,14 +61,14 @@ public final class StartEndHandlerImpl implements StartEndHandler {
}
@Override
- public void onStart(SpanImpl span) {
+ public void onStart(RecordEventsSpanImpl span) {
if (span.getOptions().contains(Options.RECORD_EVENTS) && enqueueEventForNonSampledSpans) {
eventQueue.enqueue(new SpanStartEvent(span, runningSpanStore));
}
}
@Override
- public void onEnd(SpanImpl span) {
+ public void onEnd(RecordEventsSpanImpl span) {
if ((span.getOptions().contains(Options.RECORD_EVENTS) && enqueueEventForNonSampledSpans)
|| span.getContext().getTraceOptions().isSampled()) {
eventQueue.enqueue(new SpanEndEvent(span, spanExporter, runningSpanStore, sampledSpanStore));
@@ -77,10 +77,10 @@ public final class StartEndHandlerImpl implements StartEndHandler {
// An EventQueue entry that records the start of the span event.
private static final class SpanStartEvent implements EventQueue.Entry {
- private final SpanImpl span;
+ private final RecordEventsSpanImpl span;
@Nullable private final RunningSpanStoreImpl activeSpansExporter;
- SpanStartEvent(SpanImpl span, @Nullable RunningSpanStoreImpl activeSpansExporter) {
+ SpanStartEvent(RecordEventsSpanImpl span, @Nullable RunningSpanStoreImpl activeSpansExporter) {
this.span = span;
this.activeSpansExporter = activeSpansExporter;
}
@@ -95,13 +95,13 @@ public final class StartEndHandlerImpl implements StartEndHandler {
// An EventQueue entry that records the end of the span event.
private static final class SpanEndEvent implements EventQueue.Entry {
- private final SpanImpl span;
+ private final RecordEventsSpanImpl span;
@Nullable private final RunningSpanStoreImpl runningSpanStore;
private final SpanExporterImpl spanExporter;
@Nullable private final SampledSpanStoreImpl sampledSpanStore;
SpanEndEvent(
- SpanImpl span,
+ RecordEventsSpanImpl span,
SpanExporterImpl spanExporter,
@Nullable RunningSpanStoreImpl runningSpanStore,
@Nullable SampledSpanStoreImpl sampledSpanStore) {
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/TraceComponentImplBase.java b/impl_core/src/main/java/io/opencensus/implcore/trace/TraceComponentImplBase.java
index f4c5ef76..c1432432 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/TraceComponentImplBase.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/TraceComponentImplBase.java
@@ -19,7 +19,7 @@ package io.opencensus.implcore.trace;
import io.opencensus.common.Clock;
import io.opencensus.implcore.internal.EventQueue;
import io.opencensus.implcore.internal.SimpleEventQueue;
-import io.opencensus.implcore.trace.SpanImpl.StartEndHandler;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl.StartEndHandler;
import io.opencensus.implcore.trace.config.TraceConfigImpl;
import io.opencensus.implcore.trace.export.ExportComponentImpl;
import io.opencensus.implcore.trace.internal.RandomHandler;
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/TracerImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/TracerImpl.java
index fcf30ff0..48df8055 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/TracerImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/TracerImpl.java
@@ -29,9 +29,9 @@ import javax.annotation.Nullable;
public final class TracerImpl extends Tracer {
private final SpanBuilderImpl.Options spanBuilderOptions;
- public TracerImpl(
+ TracerImpl(
RandomHandler randomHandler,
- SpanImpl.StartEndHandler startEndHandler,
+ RecordEventsSpanImpl.StartEndHandler startEndHandler,
Clock clock,
TraceConfig traceConfig) {
spanBuilderOptions =
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/export/InProcessRunningSpanStoreImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/export/InProcessRunningSpanStoreImpl.java
index 3d8fb9ae..f7aeac71 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/export/InProcessRunningSpanStoreImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/export/InProcessRunningSpanStoreImpl.java
@@ -16,7 +16,7 @@
package io.opencensus.implcore.trace.export;
-import io.opencensus.implcore.trace.SpanImpl;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl;
import io.opencensus.implcore.trace.internal.ConcurrentIntrusiveList;
import io.opencensus.trace.export.RunningSpanStore;
import io.opencensus.trace.export.SpanData;
@@ -30,27 +30,27 @@ import javax.annotation.concurrent.ThreadSafe;
/** In-process implementation of the {@link RunningSpanStore}. */
@ThreadSafe
public final class InProcessRunningSpanStoreImpl extends RunningSpanStoreImpl {
- private final ConcurrentIntrusiveList<SpanImpl> runningSpans;
+ private final ConcurrentIntrusiveList<RecordEventsSpanImpl> runningSpans;
public InProcessRunningSpanStoreImpl() {
- runningSpans = new ConcurrentIntrusiveList<SpanImpl>();
+ runningSpans = new ConcurrentIntrusiveList<RecordEventsSpanImpl>();
}
@Override
- public void onStart(SpanImpl span) {
+ public void onStart(RecordEventsSpanImpl span) {
runningSpans.addElement(span);
}
@Override
- public void onEnd(SpanImpl span) {
+ public void onEnd(RecordEventsSpanImpl span) {
runningSpans.removeElement(span);
}
@Override
public Summary getSummary() {
- Collection<SpanImpl> allRunningSpans = runningSpans.getAll();
+ Collection<RecordEventsSpanImpl> allRunningSpans = runningSpans.getAll();
Map<String, Integer> numSpansPerName = new HashMap<String, Integer>();
- for (SpanImpl span : allRunningSpans) {
+ for (RecordEventsSpanImpl span : allRunningSpans) {
Integer prevValue = numSpansPerName.get(span.getName());
numSpansPerName.put(span.getName(), prevValue != null ? prevValue + 1 : 1);
}
@@ -64,11 +64,11 @@ public final class InProcessRunningSpanStoreImpl extends RunningSpanStoreImpl {
@Override
public Collection<SpanData> getRunningSpans(Filter filter) {
- Collection<SpanImpl> allRunningSpans = runningSpans.getAll();
+ Collection<RecordEventsSpanImpl> allRunningSpans = runningSpans.getAll();
int maxSpansToReturn =
filter.getMaxSpansToReturn() == 0 ? allRunningSpans.size() : filter.getMaxSpansToReturn();
List<SpanData> ret = new ArrayList<SpanData>(maxSpansToReturn);
- for (SpanImpl span : allRunningSpans) {
+ for (RecordEventsSpanImpl span : allRunningSpans) {
if (ret.size() == maxSpansToReturn) {
break;
}
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/export/InProcessSampledSpanStoreImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/export/InProcessSampledSpanStoreImpl.java
index fe0132d8..0d8e493b 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/export/InProcessSampledSpanStoreImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/export/InProcessSampledSpanStoreImpl.java
@@ -18,7 +18,7 @@ package io.opencensus.implcore.trace.export;
import com.google.common.collect.EvictingQueue;
import io.opencensus.implcore.internal.EventQueue;
-import io.opencensus.implcore.trace.SpanImpl;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl;
import io.opencensus.trace.Status;
import io.opencensus.trace.Status.CanonicalCode;
import io.opencensus.trace.export.SampledSpanStore;
@@ -59,8 +59,8 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
private static final class Bucket {
- private final EvictingQueue<SpanImpl> sampledSpansQueue;
- private final EvictingQueue<SpanImpl> notSampledSpansQueue;
+ private final EvictingQueue<RecordEventsSpanImpl> sampledSpansQueue;
+ private final EvictingQueue<RecordEventsSpanImpl> notSampledSpansQueue;
private long lastSampledNanoTime;
private long lastNotSampledNanoTime;
@@ -69,7 +69,7 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
notSampledSpansQueue = EvictingQueue.create(numSamples);
}
- private void considerForSampling(SpanImpl span) {
+ private void considerForSampling(RecordEventsSpanImpl span) {
long spanEndNanoTime = span.getEndNanoTime();
if (span.getContext().getTraceOptions().isSampled()) {
// Need to compare by doing the subtraction all the time because in case of an overflow,
@@ -90,14 +90,16 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
}
}
- private void getSamples(int maxSpansToReturn, List<SpanImpl> output) {
+ private void getSamples(int maxSpansToReturn, List<RecordEventsSpanImpl> output) {
getSamples(maxSpansToReturn, output, sampledSpansQueue);
getSamples(maxSpansToReturn, output, notSampledSpansQueue);
}
private static void getSamples(
- int maxSpansToReturn, List<SpanImpl> output, EvictingQueue<SpanImpl> queue) {
- for (SpanImpl span : queue) {
+ int maxSpansToReturn,
+ List<RecordEventsSpanImpl> output,
+ EvictingQueue<RecordEventsSpanImpl> queue) {
+ for (RecordEventsSpanImpl span : queue) {
if (output.size() >= maxSpansToReturn) {
break;
}
@@ -106,7 +108,10 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
}
private void getSamplesFilteredByLatency(
- long latencyLowerNs, long latencyUpperNs, int maxSpansToReturn, List<SpanImpl> output) {
+ long latencyLowerNs,
+ long latencyUpperNs,
+ int maxSpansToReturn,
+ List<RecordEventsSpanImpl> output) {
getSamplesFilteredByLatency(
latencyLowerNs, latencyUpperNs, maxSpansToReturn, output, sampledSpansQueue);
getSamplesFilteredByLatency(
@@ -117,9 +122,9 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
long latencyLowerNs,
long latencyUpperNs,
int maxSpansToReturn,
- List<SpanImpl> output,
- EvictingQueue<SpanImpl> queue) {
- for (SpanImpl span : queue) {
+ List<RecordEventsSpanImpl> output,
+ EvictingQueue<RecordEventsSpanImpl> queue) {
+ for (RecordEventsSpanImpl span : queue) {
if (output.size() >= maxSpansToReturn) {
break;
}
@@ -173,7 +178,7 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
return errorBuckets[code.value() - 1];
}
- private void considerForSampling(SpanImpl span) {
+ private void considerForSampling(RecordEventsSpanImpl span) {
Status status = span.getStatus();
// Null status means running Span, this should not happen in production, but the library
// should not crash because of this.
@@ -208,8 +213,10 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
return errorBucketSummaries;
}
- private List<SpanImpl> getErrorSamples(@Nullable CanonicalCode code, int maxSpansToReturn) {
- ArrayList<SpanImpl> output = new ArrayList<SpanImpl>(maxSpansToReturn);
+ private List<RecordEventsSpanImpl> getErrorSamples(
+ @Nullable CanonicalCode code, int maxSpansToReturn) {
+ ArrayList<RecordEventsSpanImpl> output =
+ new ArrayList<RecordEventsSpanImpl>(maxSpansToReturn);
if (code != null) {
getErrorBucket(code).getSamples(maxSpansToReturn, output);
} else {
@@ -220,9 +227,10 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
return output;
}
- private List<SpanImpl> getLatencySamples(
+ private List<RecordEventsSpanImpl> getLatencySamples(
long latencyLowerNs, long latencyUpperNs, int maxSpansToReturn) {
- ArrayList<SpanImpl> output = new ArrayList<SpanImpl>(maxSpansToReturn);
+ ArrayList<RecordEventsSpanImpl> output =
+ new ArrayList<RecordEventsSpanImpl>(maxSpansToReturn);
for (int i = 0; i < NUM_LATENCY_BUCKETS; i++) {
LatencyBucketBoundaries boundaries = LatencyBucketBoundaries.values()[i];
if (latencyUpperNs >= boundaries.getLatencyLowerNs()
@@ -257,7 +265,7 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
}
@Override
- public void considerForSampling(SpanImpl span) {
+ public void considerForSampling(RecordEventsSpanImpl span) {
synchronized (samples) {
String spanName = span.getName();
if (span.getSampleToLocalSpanStore() && !samples.containsKey(spanName)) {
@@ -346,8 +354,9 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
filter.getMaxSpansToReturn() == 0
? MAX_PER_SPAN_NAME_SAMPLES
: filter.getMaxSpansToReturn();
- List<SpanImpl> spans = Collections.emptyList();
- // Try to not keep the lock to much, do the SpanImpl -> SpanData conversion outside the lock.
+ List<RecordEventsSpanImpl> spans = Collections.emptyList();
+ // Try to not keep the lock to much, do the RecordEventsSpanImpl -> SpanData conversion outside
+ // the lock.
synchronized (samples) {
PerSpanNameSamples perSpanNameSamples = samples.get(filter.getSpanName());
if (perSpanNameSamples != null) {
@@ -355,7 +364,7 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
}
}
List<SpanData> ret = new ArrayList<SpanData>(spans.size());
- for (SpanImpl span : spans) {
+ for (RecordEventsSpanImpl span : spans) {
ret.add(span.toSpanData());
}
return Collections.unmodifiableList(ret);
@@ -367,8 +376,9 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
filter.getMaxSpansToReturn() == 0
? MAX_PER_SPAN_NAME_SAMPLES
: filter.getMaxSpansToReturn();
- List<SpanImpl> spans = Collections.emptyList();
- // Try to not keep the lock to much, do the SpanImpl -> SpanData conversion outside the lock.
+ List<RecordEventsSpanImpl> spans = Collections.emptyList();
+ // Try to not keep the lock to much, do the RecordEventsSpanImpl -> SpanData conversion outside
+ // the lock.
synchronized (samples) {
PerSpanNameSamples perSpanNameSamples = samples.get(filter.getSpanName());
if (perSpanNameSamples != null) {
@@ -378,7 +388,7 @@ public final class InProcessSampledSpanStoreImpl extends SampledSpanStoreImpl {
}
}
List<SpanData> ret = new ArrayList<SpanData>(spans.size());
- for (SpanImpl span : spans) {
+ for (RecordEventsSpanImpl span : spans) {
ret.add(span.toSpanData());
}
return Collections.unmodifiableList(ret);
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/export/RunningSpanStoreImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/export/RunningSpanStoreImpl.java
index 53147def..962f5b01 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/export/RunningSpanStoreImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/export/RunningSpanStoreImpl.java
@@ -16,11 +16,8 @@
package io.opencensus.implcore.trace.export;
-import io.opencensus.implcore.trace.SpanImpl;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl;
import io.opencensus.trace.export.RunningSpanStore;
-import io.opencensus.trace.export.RunningSpanStore.Filter;
-import io.opencensus.trace.export.RunningSpanStore.PerSpanNameSummary;
-import io.opencensus.trace.export.RunningSpanStore.Summary;
import io.opencensus.trace.export.SpanData;
import java.util.Collection;
import java.util.Collections;
@@ -41,14 +38,14 @@ public abstract class RunningSpanStoreImpl extends RunningSpanStore {
*
* @param span the {@code Span} that started.
*/
- public abstract void onStart(SpanImpl span);
+ public abstract void onStart(RecordEventsSpanImpl span);
/**
* Removes the {@code Span} from the running spans list when the {@code Span} ends.
*
* @param span the {@code Span} that ended.
*/
- public abstract void onEnd(SpanImpl span);
+ public abstract void onEnd(RecordEventsSpanImpl span);
private static final class NoopRunningSpanStoreImpl extends RunningSpanStoreImpl {
@@ -56,10 +53,10 @@ public abstract class RunningSpanStoreImpl extends RunningSpanStore {
RunningSpanStore.Summary.create(Collections.<String, PerSpanNameSummary>emptyMap());
@Override
- public void onStart(SpanImpl span) {}
+ public void onStart(RecordEventsSpanImpl span) {}
@Override
- public void onEnd(SpanImpl span) {}
+ public void onEnd(RecordEventsSpanImpl span) {}
@Override
public Summary getSummary() {
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/export/SampledSpanStoreImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/export/SampledSpanStoreImpl.java
index 302d5cd3..e67c2f8e 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/export/SampledSpanStoreImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/export/SampledSpanStoreImpl.java
@@ -16,12 +16,8 @@
package io.opencensus.implcore.trace.export;
-import io.opencensus.implcore.trace.SpanImpl;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl;
import io.opencensus.trace.export.SampledSpanStore;
-import io.opencensus.trace.export.SampledSpanStore.ErrorFilter;
-import io.opencensus.trace.export.SampledSpanStore.LatencyFilter;
-import io.opencensus.trace.export.SampledSpanStore.PerSpanNameSummary;
-import io.opencensus.trace.export.SampledSpanStore.Summary;
import io.opencensus.trace.export.SpanData;
import java.util.Collection;
import java.util.Collections;
@@ -43,7 +39,7 @@ public abstract class SampledSpanStoreImpl extends SampledSpanStore {
*
* @param span the span to be consider for storing into the store buckets.
*/
- public abstract void considerForSampling(SpanImpl span);
+ public abstract void considerForSampling(RecordEventsSpanImpl span);
protected void shutdown() {}
@@ -59,7 +55,7 @@ public abstract class SampledSpanStoreImpl extends SampledSpanStore {
}
@Override
- public void considerForSampling(SpanImpl span) {}
+ public void considerForSampling(RecordEventsSpanImpl span) {}
@Override
public void registerSpanNamesForCollection(Collection<String> spanNames) {}
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/export/SpanExporterImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/export/SpanExporterImpl.java
index b9b1e98c..51a7b05c 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/export/SpanExporterImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/export/SpanExporterImpl.java
@@ -19,7 +19,7 @@ package io.opencensus.implcore.trace.export;
import com.google.common.annotations.VisibleForTesting;
import io.opencensus.common.Duration;
import io.opencensus.implcore.internal.DaemonThreadFactory;
-import io.opencensus.implcore.trace.SpanImpl;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl;
import io.opencensus.trace.export.ExportComponent;
import io.opencensus.trace.export.SpanData;
import io.opencensus.trace.export.SpanExporter;
@@ -60,7 +60,7 @@ public final class SpanExporterImpl extends SpanExporter {
*
* @param span the {@code Span} to be added.
*/
- public void addSpan(SpanImpl span) {
+ public void addSpan(RecordEventsSpanImpl span) {
worker.addSpan(span);
}
@@ -108,14 +108,14 @@ public final class SpanExporterImpl extends SpanExporter {
private final Object monitor = new Object();
@GuardedBy("monitor")
- private final List<SpanImpl> spans;
+ private final List<RecordEventsSpanImpl> spans;
private final Map<String, Handler> serviceHandlers = new ConcurrentHashMap<String, Handler>();
private final int bufferSize;
private final long scheduleDelayMillis;
// See SpanExporterImpl#addSpan.
- private void addSpan(SpanImpl span) {
+ private void addSpan(RecordEventsSpanImpl span) {
synchronized (monitor) {
this.spans.add(span);
if (spans.size() > bufferSize) {
@@ -152,16 +152,16 @@ public final class SpanExporterImpl extends SpanExporter {
}
private Worker(int bufferSize, Duration scheduleDelay) {
- spans = new ArrayList<SpanImpl>(bufferSize);
+ spans = new ArrayList<RecordEventsSpanImpl>(bufferSize);
this.bufferSize = bufferSize;
this.scheduleDelayMillis = scheduleDelay.toMillis();
}
// Returns an unmodifiable list of all buffered spans data to ensure that any registered
// service handler cannot modify the list.
- private static List<SpanData> fromSpanImplToSpanData(List<SpanImpl> spans) {
+ private static List<SpanData> fromSpanImplToSpanData(List<RecordEventsSpanImpl> spans) {
List<SpanData> spanDatas = new ArrayList<SpanData>(spans.size());
- for (SpanImpl span : spans) {
+ for (RecordEventsSpanImpl span : spans) {
spanDatas.add(span.toSpanData());
}
return Collections.unmodifiableList(spanDatas);
@@ -172,7 +172,7 @@ public final class SpanExporterImpl extends SpanExporter {
while (true) {
// Copy all the batched spans in a separate list to release the monitor lock asap to
// avoid blocking the producer thread.
- List<SpanImpl> spansCopy;
+ List<RecordEventsSpanImpl> spansCopy;
synchronized (monitor) {
if (spans.size() < bufferSize) {
do {
@@ -187,7 +187,7 @@ public final class SpanExporterImpl extends SpanExporter {
}
} while (spans.isEmpty());
}
- spansCopy = new ArrayList<SpanImpl>(spans);
+ spansCopy = new ArrayList<RecordEventsSpanImpl>(spans);
spans.clear();
}
// Execute the batch export outside the synchronized to not block all producers.
@@ -199,9 +199,9 @@ public final class SpanExporterImpl extends SpanExporter {
}
void flush() {
- List<SpanImpl> spansCopy;
+ List<RecordEventsSpanImpl> spansCopy;
synchronized (monitor) {
- spansCopy = new ArrayList<SpanImpl>(spans);
+ spansCopy = new ArrayList<RecordEventsSpanImpl>(spans);
spans.clear();
}
diff --git a/impl_core/src/test/java/io/opencensus/implcore/trace/NoRecordEventsSpanImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/trace/NoRecordEventsSpanImplTest.java
new file mode 100644
index 00000000..c576860d
--- /dev/null
+++ b/impl_core/src/test/java/io/opencensus/implcore/trace/NoRecordEventsSpanImplTest.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2018, OpenCensus Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package io.opencensus.implcore.trace;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import io.opencensus.trace.Annotation;
+import io.opencensus.trace.AttributeValue;
+import io.opencensus.trace.EndSpanOptions;
+import io.opencensus.trace.Link;
+import io.opencensus.trace.MessageEvent;
+import io.opencensus.trace.NetworkEvent;
+import io.opencensus.trace.Span.Options;
+import io.opencensus.trace.SpanContext;
+import io.opencensus.trace.SpanId;
+import io.opencensus.trace.Status;
+import io.opencensus.trace.TraceId;
+import io.opencensus.trace.TraceOptions;
+import io.opencensus.trace.Tracestate;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/** Unit tests for {@link NoRecordEventsSpanImpl}. */
+@RunWith(JUnit4.class)
+public class NoRecordEventsSpanImplTest {
+ private final Random random = new Random(1234);
+ private final SpanContext spanContext =
+ SpanContext.create(
+ TraceId.generateRandomId(random),
+ SpanId.generateRandomId(random),
+ TraceOptions.DEFAULT,
+ Tracestate.builder().build());
+ private final NoRecordEventsSpanImpl noRecordEventsSpan =
+ NoRecordEventsSpanImpl.create(spanContext);
+
+ @Test
+ public void propagatesSpanContext() {
+ assertThat(noRecordEventsSpan.getContext()).isEqualTo(spanContext);
+ }
+
+ @Test
+ public void hasNoRecordEventsOption() {
+ assertThat(noRecordEventsSpan.getOptions()).doesNotContain(Options.RECORD_EVENTS);
+ }
+
+ @Test
+ public void doNotCrash() {
+ Map<String, AttributeValue> attributes = new HashMap<String, AttributeValue>();
+ attributes.put(
+ "MyStringAttributeKey", AttributeValue.stringAttributeValue("MyStringAttributeValue"));
+ Map<String, AttributeValue> multipleAttributes = new HashMap<String, AttributeValue>();
+ multipleAttributes.put(
+ "MyStringAttributeKey", AttributeValue.stringAttributeValue("MyStringAttributeValue"));
+ multipleAttributes.put("MyBooleanAttributeKey", AttributeValue.booleanAttributeValue(true));
+ multipleAttributes.put("MyLongAttributeKey", AttributeValue.longAttributeValue(123));
+ // Tests only that all the methods are not crashing/throwing errors.
+ noRecordEventsSpan.putAttribute(
+ "MyStringAttributeKey2", AttributeValue.stringAttributeValue("MyStringAttributeValue2"));
+ noRecordEventsSpan.addAttributes(attributes);
+ noRecordEventsSpan.addAttributes(multipleAttributes);
+ noRecordEventsSpan.addAnnotation("MyAnnotation");
+ noRecordEventsSpan.addAnnotation("MyAnnotation", attributes);
+ noRecordEventsSpan.addAnnotation("MyAnnotation", multipleAttributes);
+ noRecordEventsSpan.addAnnotation(Annotation.fromDescription("MyAnnotation"));
+ noRecordEventsSpan.addNetworkEvent(NetworkEvent.builder(NetworkEvent.Type.SENT, 1L).build());
+ noRecordEventsSpan.addMessageEvent(MessageEvent.builder(MessageEvent.Type.SENT, 1L).build());
+ noRecordEventsSpan.addLink(
+ Link.fromSpanContext(SpanContext.INVALID, Link.Type.CHILD_LINKED_SPAN));
+ noRecordEventsSpan.setStatus(Status.OK);
+ noRecordEventsSpan.end(EndSpanOptions.DEFAULT);
+ noRecordEventsSpan.end();
+ }
+}
diff --git a/impl_core/src/test/java/io/opencensus/implcore/trace/SpanImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/trace/RecordEventsSpanImplTest.java
index 57818eea..b293a225 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/trace/SpanImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/trace/RecordEventsSpanImplTest.java
@@ -21,7 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import io.opencensus.common.Duration;
import io.opencensus.common.Timestamp;
import io.opencensus.implcore.internal.TimestampConverter;
-import io.opencensus.implcore.trace.SpanImpl.StartEndHandler;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl.StartEndHandler;
import io.opencensus.testing.common.TestClock;
import io.opencensus.trace.Annotation;
import io.opencensus.trace.AttributeValue;
@@ -29,7 +29,6 @@ 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;
import io.opencensus.trace.Status;
@@ -37,7 +36,6 @@ import io.opencensus.trace.TraceId;
import io.opencensus.trace.TraceOptions;
import io.opencensus.trace.config.TraceParams;
import io.opencensus.trace.export.SpanData;
-import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
@@ -51,9 +49,9 @@ import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
-/** Unit tests for {@link SpanImpl}. */
+/** Unit tests for {@link RecordEventsSpanImpl}. */
@RunWith(JUnit4.class)
-public class SpanImplTest {
+public class RecordEventsSpanImplTest {
private static final String SPAN_NAME = "MySpanName";
private static final String ANNOTATION_DESCRIPTION = "MyAnnotation";
private final Random random = new Random(1234);
@@ -64,8 +62,6 @@ public class SpanImplTest {
private final Timestamp timestamp = Timestamp.create(1234, 5678);
private final TestClock testClock = TestClock.create(timestamp);
private final TimestampConverter timestampConverter = TimestampConverter.now(testClock);
- private final EnumSet<Options> noRecordSpanOptions = EnumSet.noneOf(Options.class);
- private final EnumSet<Options> recordSpanOptions = EnumSet.of(Options.RECORD_EVENTS);
private final Map<String, AttributeValue> attributes = new HashMap<String, AttributeValue>();
private final Map<String, AttributeValue> expectedAttributes =
new HashMap<String, AttributeValue>();
@@ -86,37 +82,10 @@ public class SpanImplTest {
}
@Test
- public void toSpanData_NoRecordEvents() {
- SpanImpl span =
- SpanImpl.startSpan(
- spanContext,
- noRecordSpanOptions,
- SPAN_NAME,
- null,
- parentSpanId,
- false,
- TraceParams.DEFAULT,
- startEndHandler,
- timestampConverter,
- testClock);
- // Check that adding trace events after Span#end() does not throw any exception.
- span.putAttributes(attributes);
- span.addAnnotation(Annotation.fromDescription(ANNOTATION_DESCRIPTION));
- span.addAnnotation(ANNOTATION_DESCRIPTION, attributes);
- span.addNetworkEvent(
- NetworkEvent.builder(NetworkEvent.Type.RECV, 1).setUncompressedMessageSize(3).build());
- span.addLink(Link.fromSpanContext(spanContext, Link.Type.CHILD_LINKED_SPAN));
- span.end();
- exception.expect(IllegalStateException.class);
- span.toSpanData();
- }
-
- @Test
public void noEventsRecordedAfterEnd() {
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -149,10 +118,9 @@ public class SpanImplTest {
@Test
public void deprecatedAddAttributesStillWorks() {
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -169,10 +137,9 @@ public class SpanImplTest {
@Test
public void toSpanData_ActiveSpan() {
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -229,10 +196,9 @@ public class SpanImplTest {
@Test
public void toSpanData_EndedSpan() {
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -291,10 +257,9 @@ public class SpanImplTest {
@Test
public void status_ViaSetStatus() {
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -314,10 +279,9 @@ public class SpanImplTest {
@Test
public void status_ViaEndSpanOptions() {
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -340,10 +304,9 @@ public class SpanImplTest {
final int maxNumberOfAttributes = 8;
TraceParams traceParams =
TraceParams.DEFAULT.toBuilder().setMaxNumberOfAttributes(maxNumberOfAttributes).build();
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -389,10 +352,9 @@ public class SpanImplTest {
final int maxNumberOfAttributes = 8;
TraceParams traceParams =
TraceParams.DEFAULT.toBuilder().setMaxNumberOfAttributes(maxNumberOfAttributes).build();
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -448,10 +410,9 @@ public class SpanImplTest {
final int maxNumberOfAnnotations = 8;
TraceParams traceParams =
TraceParams.DEFAULT.toBuilder().setMaxNumberOfAnnotations(maxNumberOfAnnotations).build();
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -492,10 +453,9 @@ public class SpanImplTest {
.toBuilder()
.setMaxNumberOfNetworkEvents(maxNumberOfNetworkEvents)
.build();
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -536,10 +496,9 @@ public class SpanImplTest {
final int maxNumberOfLinks = 8;
TraceParams traceParams =
TraceParams.DEFAULT.toBuilder().setMaxNumberOfLinks(maxNumberOfLinks).build();
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -569,10 +528,9 @@ public class SpanImplTest {
@Test
public void sampleToLocalSpanStore() {
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -585,9 +543,8 @@ public class SpanImplTest {
Mockito.verify(startEndHandler, Mockito.times(1)).onEnd(span);
assertThat(span.getSampleToLocalSpanStore()).isTrue();
span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -603,10 +560,9 @@ public class SpanImplTest {
@Test
public void sampleToLocalSpanStore_RunningSpan() {
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
parentSpanId,
@@ -622,10 +578,9 @@ public class SpanImplTest {
@Test
public void getSpanKind() {
- SpanImpl span =
- SpanImpl.startSpan(
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
Kind.SERVER,
parentSpanId,
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 1804130c..3267eac5 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
@@ -19,7 +19,7 @@ package io.opencensus.implcore.trace;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
-import io.opencensus.implcore.trace.SpanImpl.StartEndHandler;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl.StartEndHandler;
import io.opencensus.implcore.trace.internal.RandomHandler;
import io.opencensus.testing.common.TestClock;
import io.opencensus.trace.Span;
@@ -63,27 +63,55 @@ public class SpanBuilderImplTest {
}
@Test
+ public void startSpan_CreatesTheCorrectSpanImplInstance() {
+ assertThat(
+ SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions)
+ .setSampler(Samplers.alwaysSample())
+ .startSpan())
+ .isInstanceOf(RecordEventsSpanImpl.class);
+ assertThat(
+ SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions)
+ .setRecordEvents(true)
+ .setSampler(Samplers.neverSample())
+ .startSpan())
+ .isInstanceOf(RecordEventsSpanImpl.class);
+ assertThat(
+ SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions)
+ .setSampler(Samplers.neverSample())
+ .startSpan())
+ .isInstanceOf(NoRecordEventsSpanImpl.class);
+ }
+
+ @Test
public void setSpanKind_NotNull() {
- SpanImpl span =
- SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions)
- .setSpanKind(Kind.CLIENT)
- .startSpan();
+ RecordEventsSpanImpl span =
+ (RecordEventsSpanImpl)
+ SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions)
+ .setSpanKind(Kind.CLIENT)
+ .setRecordEvents(true)
+ .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();
+ RecordEventsSpanImpl span =
+ (RecordEventsSpanImpl)
+ SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions)
+ .setRecordEvents(true)
+ .startSpan();
assertThat(span.getKind()).isNull();
assertThat(span.toSpanData().getKind()).isNull();
}
@Test
public void startSpanNullParent() {
- SpanImpl span =
- SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions).startSpan();
+ RecordEventsSpanImpl span =
+ (RecordEventsSpanImpl)
+ SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions)
+ .setRecordEvents(true)
+ .startSpan();
assertThat(span.getContext().isValid()).isTrue();
assertThat(span.getOptions().contains(Options.RECORD_EVENTS)).isTrue();
assertThat(span.getContext().getTraceOptions().isSampled()).isTrue();
@@ -96,11 +124,12 @@ public class SpanBuilderImplTest {
@Test
public void startSpanNullParentWithRecordEvents() {
- SpanImpl span =
- SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions)
- .setSampler(Samplers.neverSample())
- .setRecordEvents(true)
- .startSpan();
+ RecordEventsSpanImpl span =
+ (RecordEventsSpanImpl)
+ SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions)
+ .setSampler(Samplers.neverSample())
+ .setRecordEvents(true)
+ .startSpan();
assertThat(span.getContext().isValid()).isTrue();
assertThat(span.getOptions().contains(Options.RECORD_EVENTS)).isTrue();
assertThat(span.getContext().getTraceOptions().isSampled()).isFalse();
@@ -127,22 +156,25 @@ public class SpanBuilderImplTest {
assertThat(rootSpan.getContext().isValid()).isTrue();
assertThat(rootSpan.getOptions().contains(Options.RECORD_EVENTS)).isTrue();
assertThat(rootSpan.getContext().getTraceOptions().isSampled()).isTrue();
- assertThat(((SpanImpl) rootSpan).toSpanData().getHasRemoteParent()).isNull();
+ assertThat(((RecordEventsSpanImpl) rootSpan).toSpanData().getHasRemoteParent()).isNull();
Span childSpan =
SpanBuilderImpl.createWithParent(SPAN_NAME, rootSpan, spanBuilderOptions).startSpan();
assertThat(childSpan.getContext().isValid()).isTrue();
assertThat(childSpan.getContext().getTraceId()).isEqualTo(rootSpan.getContext().getTraceId());
- assertThat(((SpanImpl) childSpan).toSpanData().getParentSpanId())
+ assertThat(((RecordEventsSpanImpl) childSpan).toSpanData().getParentSpanId())
.isEqualTo(rootSpan.getContext().getSpanId());
- assertThat(((SpanImpl) childSpan).toSpanData().getHasRemoteParent()).isFalse();
- assertThat(((SpanImpl) childSpan).getTimestampConverter())
- .isEqualTo(((SpanImpl) rootSpan).getTimestampConverter());
+ assertThat(((RecordEventsSpanImpl) childSpan).toSpanData().getHasRemoteParent()).isFalse();
+ assertThat(((RecordEventsSpanImpl) childSpan).getTimestampConverter())
+ .isEqualTo(((RecordEventsSpanImpl) rootSpan).getTimestampConverter());
}
@Test
public void startRemoteSpan_NullParent() {
- SpanImpl span =
- SpanBuilderImpl.createWithRemoteParent(SPAN_NAME, null, spanBuilderOptions).startSpan();
+ RecordEventsSpanImpl span =
+ (RecordEventsSpanImpl)
+ SpanBuilderImpl.createWithRemoteParent(SPAN_NAME, null, spanBuilderOptions)
+ .setRecordEvents(true)
+ .startSpan();
assertThat(span.getContext().isValid()).isTrue();
assertThat(span.getOptions().contains(Options.RECORD_EVENTS)).isTrue();
assertThat(span.getContext().getTraceOptions().isSampled()).isTrue();
@@ -153,9 +185,11 @@ public class SpanBuilderImplTest {
@Test
public void startRemoteSpanInvalidParent() {
- SpanImpl span =
- SpanBuilderImpl.createWithRemoteParent(SPAN_NAME, SpanContext.INVALID, spanBuilderOptions)
- .startSpan();
+ RecordEventsSpanImpl span =
+ (RecordEventsSpanImpl)
+ SpanBuilderImpl.createWithRemoteParent(
+ SPAN_NAME, SpanContext.INVALID, spanBuilderOptions)
+ .startSpan();
assertThat(span.getContext().isValid()).isTrue();
assertThat(span.getOptions().contains(Options.RECORD_EVENTS)).isTrue();
assertThat(span.getContext().getTraceOptions().isSampled()).isTrue();
@@ -171,9 +205,11 @@ public class SpanBuilderImplTest {
TraceId.generateRandomId(randomHandler.current()),
SpanId.generateRandomId(randomHandler.current()),
TraceOptions.DEFAULT);
- SpanImpl span =
- SpanBuilderImpl.createWithRemoteParent(SPAN_NAME, spanContext, spanBuilderOptions)
- .startSpan();
+ RecordEventsSpanImpl span =
+ (RecordEventsSpanImpl)
+ SpanBuilderImpl.createWithRemoteParent(SPAN_NAME, spanContext, spanBuilderOptions)
+ .setRecordEvents(true)
+ .startSpan();
assertThat(span.getContext().isValid()).isTrue();
assertThat(span.getContext().getTraceId()).isEqualTo(spanContext.getTraceId());
assertThat(span.getContext().getTraceOptions().isSampled()).isTrue();
diff --git a/impl_core/src/test/java/io/opencensus/implcore/trace/TracerImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/trace/TracerImplTest.java
index 21143e3c..d10be6a2 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/trace/TracerImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/trace/TracerImplTest.java
@@ -18,7 +18,7 @@ package io.opencensus.implcore.trace;
import static com.google.common.truth.Truth.assertThat;
-import io.opencensus.implcore.trace.SpanImpl.StartEndHandler;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl.StartEndHandler;
import io.opencensus.implcore.trace.internal.RandomHandler.SecureRandomHandler;
import io.opencensus.testing.common.TestClock;
import io.opencensus.trace.BlankSpan;
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 85db0868..68ce1c18 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
@@ -21,17 +21,15 @@ import static com.google.common.truth.Truth.assertThat;
import io.opencensus.common.Duration;
import io.opencensus.implcore.common.MillisClock;
import io.opencensus.implcore.internal.SimpleEventQueue;
-import io.opencensus.implcore.trace.SpanImpl;
-import io.opencensus.implcore.trace.SpanImpl.StartEndHandler;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl.StartEndHandler;
import io.opencensus.implcore.trace.StartEndHandlerImpl;
-import io.opencensus.trace.Span.Options;
import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
import io.opencensus.trace.TraceId;
import io.opencensus.trace.TraceOptions;
import io.opencensus.trace.config.TraceParams;
import io.opencensus.trace.export.RunningSpanStore.Filter;
-import java.util.EnumSet;
import java.util.Random;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -51,17 +49,15 @@ public class InProcessRunningSpanStoreImplTest {
private final StartEndHandler startEndHandler =
new StartEndHandlerImpl(
sampledSpansServiceExporter, activeSpansExporter, null, new SimpleEventQueue());
- private final EnumSet<Options> recordSpanOptions = EnumSet.of(Options.RECORD_EVENTS);
- private SpanImpl createSpan(String spanName) {
+ private RecordEventsSpanImpl createSpan(String spanName) {
final SpanContext spanContext =
SpanContext.create(
TraceId.generateRandomId(random),
SpanId.generateRandomId(random),
TraceOptions.DEFAULT);
- return SpanImpl.startSpan(
+ return RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
spanName,
null,
SpanId.generateRandomId(random),
@@ -74,8 +70,8 @@ public class InProcessRunningSpanStoreImplTest {
@Test
public void getSummary_SpansWithDifferentNames() {
- final SpanImpl span1 = createSpan(SPAN_NAME_1);
- final SpanImpl span2 = createSpan(SPAN_NAME_2);
+ final RecordEventsSpanImpl span1 = createSpan(SPAN_NAME_1);
+ final RecordEventsSpanImpl span2 = createSpan(SPAN_NAME_2);
assertThat(activeSpansExporter.getSummary().getPerSpanNameSummary().size()).isEqualTo(2);
assertThat(
activeSpansExporter
@@ -107,9 +103,9 @@ public class InProcessRunningSpanStoreImplTest {
@Test
public void getSummary_SpansWithSameName() {
- final SpanImpl span1 = createSpan(SPAN_NAME_1);
- final SpanImpl span2 = createSpan(SPAN_NAME_1);
- final SpanImpl span3 = createSpan(SPAN_NAME_1);
+ final RecordEventsSpanImpl span1 = createSpan(SPAN_NAME_1);
+ final RecordEventsSpanImpl span2 = createSpan(SPAN_NAME_1);
+ final RecordEventsSpanImpl span3 = createSpan(SPAN_NAME_1);
assertThat(activeSpansExporter.getSummary().getPerSpanNameSummary().size()).isEqualTo(1);
assertThat(
activeSpansExporter
@@ -142,8 +138,8 @@ public class InProcessRunningSpanStoreImplTest {
@Test
public void getActiveSpans_SpansWithDifferentNames() {
- SpanImpl span1 = createSpan(SPAN_NAME_1);
- SpanImpl span2 = createSpan(SPAN_NAME_2);
+ RecordEventsSpanImpl span1 = createSpan(SPAN_NAME_1);
+ RecordEventsSpanImpl span2 = createSpan(SPAN_NAME_2);
assertThat(activeSpansExporter.getRunningSpans(Filter.create(SPAN_NAME_1, 0)))
.containsExactly(span1.toSpanData());
assertThat(activeSpansExporter.getRunningSpans(Filter.create(SPAN_NAME_1, 2)))
@@ -156,9 +152,9 @@ public class InProcessRunningSpanStoreImplTest {
@Test
public void getActiveSpans_SpansWithSameName() {
- SpanImpl span1 = createSpan(SPAN_NAME_1);
- SpanImpl span2 = createSpan(SPAN_NAME_1);
- SpanImpl span3 = createSpan(SPAN_NAME_1);
+ RecordEventsSpanImpl span1 = createSpan(SPAN_NAME_1);
+ RecordEventsSpanImpl span2 = createSpan(SPAN_NAME_1);
+ RecordEventsSpanImpl span3 = createSpan(SPAN_NAME_1);
assertThat(activeSpansExporter.getRunningSpans(Filter.create(SPAN_NAME_1, 0)))
.containsExactly(span1.toSpanData(), span2.toSpanData(), span3.toSpanData());
assertThat(activeSpansExporter.getRunningSpans(Filter.create(SPAN_NAME_1, 2)).size())
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 e1d2c4bb..7d8b434e 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
@@ -21,12 +21,11 @@ import static com.google.common.truth.Truth.assertThat;
import io.opencensus.common.Duration;
import io.opencensus.common.Timestamp;
import io.opencensus.implcore.internal.SimpleEventQueue;
-import io.opencensus.implcore.trace.SpanImpl;
-import io.opencensus.implcore.trace.SpanImpl.StartEndHandler;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl.StartEndHandler;
import io.opencensus.testing.common.TestClock;
import io.opencensus.trace.EndSpanOptions;
import io.opencensus.trace.Span;
-import io.opencensus.trace.Span.Options;
import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
import io.opencensus.trace.Status;
@@ -41,7 +40,6 @@ import io.opencensus.trace.export.SampledSpanStore.PerSpanNameSummary;
import io.opencensus.trace.export.SpanData;
import java.util.Collection;
import java.util.Collections;
-import java.util.EnumSet;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.TimeUnit;
@@ -66,19 +64,18 @@ public class InProcessSampledSpanStoreImplTest {
SpanContext.create(
TraceId.generateRandomId(random), SpanId.generateRandomId(random), TraceOptions.DEFAULT);
private final SpanId parentSpanId = SpanId.generateRandomId(random);
- private final EnumSet<Options> recordSpanOptions = EnumSet.of(Options.RECORD_EVENTS);
private final TestClock testClock = TestClock.create(Timestamp.create(12345, 54321));
private final InProcessSampledSpanStoreImpl sampleStore =
new InProcessSampledSpanStoreImpl(new SimpleEventQueue());
private final StartEndHandler startEndHandler =
new StartEndHandler() {
@Override
- public void onStart(SpanImpl span) {
+ public void onStart(RecordEventsSpanImpl span) {
// Do nothing.
}
@Override
- public void onEnd(SpanImpl span) {
+ public void onEnd(RecordEventsSpanImpl span) {
sampleStore.considerForSampling(span);
}
};
@@ -88,10 +85,9 @@ public class InProcessSampledSpanStoreImplTest {
sampleStore.registerSpanNamesForCollection(Collections.singletonList(REGISTERED_SPAN_NAME));
}
- private SpanImpl createSampledSpan(String spanName) {
- return SpanImpl.startSpan(
+ private RecordEventsSpanImpl createSampledSpan(String spanName) {
+ return RecordEventsSpanImpl.startSpan(
sampledSpanContext,
- recordSpanOptions,
spanName,
null,
parentSpanId,
@@ -102,10 +98,9 @@ public class InProcessSampledSpanStoreImplTest {
testClock);
}
- private SpanImpl createNotSampledSpan(String spanName) {
- return SpanImpl.startSpan(
+ private RecordEventsSpanImpl createNotSampledSpan(String spanName) {
+ return RecordEventsSpanImpl.startSpan(
notSampledSpanContext,
- recordSpanOptions,
spanName,
null,
parentSpanId,
@@ -216,7 +211,7 @@ public class InProcessSampledSpanStoreImplTest {
@Test
public void getErrorSampledSpans() {
- SpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, 1000));
span.end(EndSpanOptions.builder().setStatus(Status.CANCELLED).build());
Collection<SpanData> samples =
@@ -228,12 +223,12 @@ public class InProcessSampledSpanStoreImplTest {
@Test
public void getErrorSampledSpans_MaxSpansToReturn() {
- SpanImpl span1 = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span1 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, 1000));
span1.end(EndSpanOptions.builder().setStatus(Status.CANCELLED).build());
// Advance time to allow other spans to be sampled.
testClock.advanceTime(Duration.create(5, 0));
- SpanImpl span2 = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span2 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, 1000));
span2.end(EndSpanOptions.builder().setStatus(Status.CANCELLED).build());
Collection<SpanData> samples =
@@ -246,10 +241,10 @@ public class InProcessSampledSpanStoreImplTest {
@Test
public void getErrorSampledSpans_NullCode() {
- SpanImpl span1 = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span1 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, 1000));
span1.end(EndSpanOptions.builder().setStatus(Status.CANCELLED).build());
- SpanImpl span2 = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span2 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, 1000));
span2.end(EndSpanOptions.builder().setStatus(Status.UNKNOWN).build());
Collection<SpanData> samples =
@@ -260,10 +255,10 @@ public class InProcessSampledSpanStoreImplTest {
@Test
public void getErrorSampledSpans_NullCode_MaxSpansToReturn() {
- SpanImpl span1 = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span1 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, 1000));
span1.end(EndSpanOptions.builder().setStatus(Status.CANCELLED).build());
- SpanImpl span2 = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span2 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, 1000));
span2.end(EndSpanOptions.builder().setStatus(Status.UNKNOWN).build());
Collection<SpanData> samples =
@@ -274,7 +269,7 @@ public class InProcessSampledSpanStoreImplTest {
@Test
public void getLatencySampledSpans() {
- SpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, (int) TimeUnit.MICROSECONDS.toNanos(20)));
span.end();
Collection<SpanData> samples =
@@ -290,7 +285,7 @@ public class InProcessSampledSpanStoreImplTest {
@Test
public void getLatencySampledSpans_ExclusiveUpperBound() {
- SpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, (int) TimeUnit.MICROSECONDS.toNanos(20)));
span.end();
Collection<SpanData> samples =
@@ -305,7 +300,7 @@ public class InProcessSampledSpanStoreImplTest {
@Test
public void getLatencySampledSpans_InclusiveLowerBound() {
- SpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, (int) TimeUnit.MICROSECONDS.toNanos(20)));
span.end();
Collection<SpanData> samples =
@@ -321,12 +316,12 @@ public class InProcessSampledSpanStoreImplTest {
@Test
public void getLatencySampledSpans_QueryBetweenMultipleBuckets() {
- SpanImpl span1 = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span1 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, (int) TimeUnit.MICROSECONDS.toNanos(20)));
span1.end();
// Advance time to allow other spans to be sampled.
testClock.advanceTime(Duration.create(5, 0));
- SpanImpl span2 = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span2 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, (int) TimeUnit.MICROSECONDS.toNanos(200)));
span2.end();
Collection<SpanData> samples =
@@ -341,12 +336,12 @@ public class InProcessSampledSpanStoreImplTest {
@Test
public void getLatencySampledSpans_MaxSpansToReturn() {
- SpanImpl span1 = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span1 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, (int) TimeUnit.MICROSECONDS.toNanos(20)));
span1.end();
// Advance time to allow other spans to be sampled.
testClock.advanceTime(Duration.create(5, 0));
- SpanImpl span2 = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span2 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, (int) TimeUnit.MICROSECONDS.toNanos(200)));
span2.end();
Collection<SpanData> samples =
@@ -362,7 +357,7 @@ public class InProcessSampledSpanStoreImplTest {
@Test
public void ignoreNegativeSpanLatency() {
- SpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
+ RecordEventsSpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, (int) TimeUnit.MICROSECONDS.toNanos(-20)));
span.end();
Collection<SpanData> samples =
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 2877bb33..96669df7 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
@@ -22,17 +22,15 @@ import io.opencensus.common.Timestamp;
import io.opencensus.implcore.internal.EventQueue;
import io.opencensus.implcore.internal.SimpleEventQueue;
import io.opencensus.implcore.internal.TimestampConverter;
-import io.opencensus.implcore.trace.SpanImpl;
-import io.opencensus.implcore.trace.SpanImpl.StartEndHandler;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl.StartEndHandler;
import io.opencensus.testing.common.TestClock;
-import io.opencensus.trace.Span.Options;
import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
import io.opencensus.trace.TraceId;
import io.opencensus.trace.TraceOptions;
import io.opencensus.trace.config.TraceParams;
import io.opencensus.trace.export.RunningSpanStore.Filter;
-import java.util.EnumSet;
import java.util.Random;
import org.junit.Before;
import org.junit.Test;
@@ -54,9 +52,8 @@ public class NoopRunningSpanStoreImplTest {
TraceId.generateRandomId(random), SpanId.generateRandomId(random), TraceOptions.DEFAULT);
private final TestClock testClock = TestClock.create(timestamp);
private final TimestampConverter timestampConverter = TimestampConverter.now(testClock);
- private final EnumSet<Options> recordSpanOptions = EnumSet.of(Options.RECORD_EVENTS);
@Mock private StartEndHandler startEndHandler;
- private SpanImpl spanImpl;
+ private RecordEventsSpanImpl recordEventsSpanImpl;
// maxSpansToReturn=0 means all
private final Filter filter = Filter.create(SPAN_NAME, 0 /* maxSpansToReturn */);
private final EventQueue eventQueue = new SimpleEventQueue();
@@ -66,10 +63,9 @@ public class NoopRunningSpanStoreImplTest {
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- spanImpl =
- SpanImpl.startSpan(
+ recordEventsSpanImpl =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
null,
@@ -90,10 +86,10 @@ public class NoopRunningSpanStoreImplTest {
public void noopImplementation() {
getMethodsShouldReturnEmpty();
// onStart() does not affect the result.
- runningSpanStoreImpl.onStart(spanImpl);
+ runningSpanStoreImpl.onStart(recordEventsSpanImpl);
getMethodsShouldReturnEmpty();
// onEnd() does not affect the result.
- runningSpanStoreImpl.onEnd(spanImpl);
+ runningSpanStoreImpl.onEnd(recordEventsSpanImpl);
getMethodsShouldReturnEmpty();
}
}
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 3ba33fd1..b9fbd432 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
@@ -22,10 +22,9 @@ import io.opencensus.common.Timestamp;
import io.opencensus.implcore.internal.EventQueue;
import io.opencensus.implcore.internal.SimpleEventQueue;
import io.opencensus.implcore.internal.TimestampConverter;
-import io.opencensus.implcore.trace.SpanImpl;
-import io.opencensus.implcore.trace.SpanImpl.StartEndHandler;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl.StartEndHandler;
import io.opencensus.testing.common.TestClock;
-import io.opencensus.trace.Span.Options;
import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
import io.opencensus.trace.TraceId;
@@ -35,7 +34,6 @@ import io.opencensus.trace.export.SampledSpanStore.ErrorFilter;
import io.opencensus.trace.export.SampledSpanStore.LatencyFilter;
import java.util.Collection;
import java.util.Collections;
-import java.util.EnumSet;
import java.util.Random;
import org.junit.Before;
import org.junit.Test;
@@ -59,9 +57,8 @@ public final class NoopSampledSpanStoreImplTest {
TraceId.generateRandomId(random), SpanId.generateRandomId(random), TraceOptions.DEFAULT);
private final TestClock testClock = TestClock.create(timestamp);
private final TimestampConverter timestampConverter = TimestampConverter.now(testClock);
- private final EnumSet<Options> recordSpanOptions = EnumSet.of(Options.RECORD_EVENTS);
@Mock private StartEndHandler startEndHandler;
- private SpanImpl spanImpl;
+ private RecordEventsSpanImpl recordEventsSpanImpl;
// maxSpansToReturn=0 means all
private final ErrorFilter errorFilter =
ErrorFilter.create(SPAN_NAME, null /* canonicalCode */, 0 /* maxSpansToReturn */);
@@ -99,10 +96,9 @@ public final class NoopSampledSpanStoreImplTest {
// considerForSampling() should do nothing and do not affect the result.
// It should be called after registerSpanNamesForCollection.
- spanImpl =
- SpanImpl.startSpan(
+ recordEventsSpanImpl =
+ RecordEventsSpanImpl.startSpan(
spanContext,
- recordSpanOptions,
SPAN_NAME,
null,
null,
@@ -111,8 +107,8 @@ public final class NoopSampledSpanStoreImplTest {
startEndHandler,
timestampConverter,
testClock);
- spanImpl.end();
- sampledSpanStoreImpl.considerForSampling(spanImpl);
+ recordEventsSpanImpl.end();
+ sampledSpanStoreImpl.considerForSampling(recordEventsSpanImpl);
getMethodsShouldReturnEmpty();
// unregisterSpanNamesForCollection() should do nothing and do not affect the result.
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 d99776d1..f8f1d917 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
@@ -23,11 +23,10 @@ import static org.mockito.Mockito.doThrow;
import io.opencensus.common.Duration;
import io.opencensus.implcore.common.MillisClock;
import io.opencensus.implcore.internal.SimpleEventQueue;
-import io.opencensus.implcore.trace.SpanImpl;
-import io.opencensus.implcore.trace.SpanImpl.StartEndHandler;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl;
+import io.opencensus.implcore.trace.RecordEventsSpanImpl.StartEndHandler;
import io.opencensus.implcore.trace.StartEndHandlerImpl;
import io.opencensus.testing.export.TestHandler;
-import io.opencensus.trace.Span.Options;
import io.opencensus.trace.SpanContext;
import io.opencensus.trace.SpanId;
import io.opencensus.trace.TraceId;
@@ -35,7 +34,6 @@ import io.opencensus.trace.TraceOptions;
import io.opencensus.trace.config.TraceParams;
import io.opencensus.trace.export.SpanData;
import io.opencensus.trace.export.SpanExporter.Handler;
-import java.util.EnumSet;
import java.util.List;
import java.util.Random;
import org.junit.Before;
@@ -60,7 +58,6 @@ public class SpanExporterImplTest {
SpanContext.create(
TraceId.generateRandomId(random), SpanId.generateRandomId(random), TraceOptions.DEFAULT);
private final RunningSpanStoreImpl runningSpanStore = new InProcessRunningSpanStoreImpl();
- private final EnumSet<Options> recordSpanOptions = EnumSet.of(Options.RECORD_EVENTS);
private final TestHandler serviceHandler = new TestHandler();
@Mock private Handler mockServiceHandler;
@@ -69,11 +66,11 @@ public class SpanExporterImplTest {
MockitoAnnotations.initMocks(this);
}
- private SpanImpl createSampledEndedSpan(StartEndHandler startEndHandler, String spanName) {
- SpanImpl span =
- SpanImpl.startSpan(
+ private RecordEventsSpanImpl createSampledEndedSpan(
+ StartEndHandler startEndHandler, String spanName) {
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
sampledSpanContext,
- recordSpanOptions,
spanName,
null,
null,
@@ -86,11 +83,11 @@ public class SpanExporterImplTest {
return span;
}
- private SpanImpl createNotSampledEndedSpan(StartEndHandler startEndHandler, String spanName) {
- SpanImpl span =
- SpanImpl.startSpan(
+ private RecordEventsSpanImpl createNotSampledEndedSpan(
+ StartEndHandler startEndHandler, String spanName) {
+ RecordEventsSpanImpl span =
+ RecordEventsSpanImpl.startSpan(
notSampledSpanContext,
- recordSpanOptions,
spanName,
null,
null,
@@ -111,8 +108,8 @@ public class SpanExporterImplTest {
spanExporter.registerHandler("test.service", serviceHandler);
- SpanImpl span1 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
- SpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_2);
+ RecordEventsSpanImpl span1 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
+ RecordEventsSpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_2);
List<SpanData> exported = serviceHandler.waitForExport(2);
assertThat(exported).containsExactly(span1.toSpanData(), span2.toSpanData());
}
@@ -125,12 +122,12 @@ public class SpanExporterImplTest {
spanExporter.registerHandler("test.service", serviceHandler);
- SpanImpl span1 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
- SpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
- SpanImpl span3 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
- SpanImpl span4 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
- SpanImpl span5 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
- SpanImpl span6 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
+ RecordEventsSpanImpl span1 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
+ RecordEventsSpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
+ RecordEventsSpanImpl span3 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
+ RecordEventsSpanImpl span4 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
+ RecordEventsSpanImpl span5 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
+ RecordEventsSpanImpl span6 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
List<SpanData> exported = serviceHandler.waitForExport(6);
assertThat(exported)
.containsExactly(
@@ -167,11 +164,11 @@ public class SpanExporterImplTest {
spanExporter.registerHandler("test.service", serviceHandler);
spanExporter.registerHandler("mock.service", mockServiceHandler);
- SpanImpl span1 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
+ RecordEventsSpanImpl span1 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
List<SpanData> exported = serviceHandler.waitForExport(1);
assertThat(exported).containsExactly(span1.toSpanData());
// Continue to export after the exception was received.
- SpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
+ RecordEventsSpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
exported = serviceHandler.waitForExport(1);
assertThat(exported).containsExactly(span2.toSpanData());
}
@@ -186,8 +183,8 @@ public class SpanExporterImplTest {
TestHandler serviceHandler2 = new TestHandler();
spanExporter.registerHandler("test.service2", serviceHandler2);
- SpanImpl span1 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
- SpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_2);
+ RecordEventsSpanImpl span1 = createSampledEndedSpan(startEndHandler, SPAN_NAME_1);
+ RecordEventsSpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_2);
List<SpanData> exported1 = serviceHandler.waitForExport(2);
List<SpanData> exported2 = serviceHandler2.waitForExport(2);
assertThat(exported1).containsExactly(span1.toSpanData(), span2.toSpanData());
@@ -202,8 +199,8 @@ public class SpanExporterImplTest {
spanExporter.registerHandler("test.service", serviceHandler);
- SpanImpl span1 = createNotSampledEndedSpan(startEndHandler, SPAN_NAME_1);
- SpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_2);
+ RecordEventsSpanImpl span1 = createNotSampledEndedSpan(startEndHandler, SPAN_NAME_1);
+ RecordEventsSpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_2);
// Spans are recorded and exported in the same order as they are ended, we test that a non
// sampled span is not exported by creating and ending a sampled span after a non sampled span
// and checking that the first exported span is the sampled span (the non sampled did not get
@@ -224,7 +221,7 @@ public class SpanExporterImplTest {
spanExporter.registerHandler("test.service", serviceHandler);
- SpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_2);
+ RecordEventsSpanImpl span2 = createSampledEndedSpan(startEndHandler, SPAN_NAME_2);
// Force a flush, without this, the #waitForExport() call below would block indefinitely.
spanExporter.flush();