Change Tracer to not implement any method.
This commit is contained in:
parent
bb3c3c35d9
commit
59790e7f22
|
|
@ -20,7 +20,7 @@ import com.google.errorprone.annotations.MustBeClosed;
|
||||||
import java.util.concurrent.Callable;
|
import java.util.concurrent.Callable;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import openconsensus.common.Scope;
|
import openconsensus.common.Scope;
|
||||||
import openconsensus.internal.Utils;
|
import openconsensus.internal.NoopScope;
|
||||||
import openconsensus.trace.SpanBuilder.NoopSpanBuilder;
|
import openconsensus.trace.SpanBuilder.NoopSpanBuilder;
|
||||||
import openconsensus.trace.data.Status;
|
import openconsensus.trace.data.Status;
|
||||||
|
|
||||||
|
|
@ -95,10 +95,7 @@ public abstract class Tracer {
|
||||||
* from the Context.
|
* from the Context.
|
||||||
* @since 0.1.0
|
* @since 0.1.0
|
||||||
*/
|
*/
|
||||||
public final Span getCurrentSpan() {
|
public abstract Span getCurrentSpan();
|
||||||
Span currentSpan = CurrentSpanUtils.getCurrentSpan();
|
|
||||||
return currentSpan != null ? currentSpan : BlankSpan.INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enters the scope of code where the given {@link Span} is in the current Context, and returns an
|
* Enters the scope of code where the given {@link Span} is in the current Context, and returns an
|
||||||
|
|
@ -151,9 +148,7 @@ public abstract class Tracer {
|
||||||
* @since 0.1.0
|
* @since 0.1.0
|
||||||
*/
|
*/
|
||||||
@MustBeClosed
|
@MustBeClosed
|
||||||
public final Scope withSpan(Span span) {
|
public abstract Scope withSpan(Span span);
|
||||||
return CurrentSpanUtils.withSpan(Utils.checkNotNull(span, "span"), /* endSpan= */ false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a {@link Runnable} that runs the given task with the given {@code Span} in the current
|
* Returns a {@link Runnable} that runs the given task with the given {@code Span} in the current
|
||||||
|
|
@ -216,9 +211,7 @@ public abstract class Tracer {
|
||||||
* @return the {@code Runnable}.
|
* @return the {@code Runnable}.
|
||||||
* @since 0.1.0
|
* @since 0.1.0
|
||||||
*/
|
*/
|
||||||
public final Runnable withSpan(Span span, Runnable runnable) {
|
public abstract Runnable withSpan(Span span, Runnable runnable);
|
||||||
return CurrentSpanUtils.withSpan(span, /* endSpan= */ false, runnable);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a {@link Callable} that runs the given task with the given {@code Span} in the current
|
* Returns a {@link Callable} that runs the given task with the given {@code Span} in the current
|
||||||
|
|
@ -278,12 +271,11 @@ public abstract class Tracer {
|
||||||
*
|
*
|
||||||
* @param span the {@code Span} to be set as current.
|
* @param span the {@code Span} to be set as current.
|
||||||
* @param callable the {@code Callable} to run in the {@code Span}.
|
* @param callable the {@code Callable} to run in the {@code Span}.
|
||||||
|
* @param <V> the result type of method call.
|
||||||
* @return the {@code Callable}.
|
* @return the {@code Callable}.
|
||||||
* @since 0.1.0
|
* @since 0.1.0
|
||||||
*/
|
*/
|
||||||
public final <C> Callable<C> withSpan(Span span, final Callable<C> callable) {
|
public abstract <V> Callable<V> withSpan(Span span, final Callable<V> callable);
|
||||||
return CurrentSpanUtils.withSpan(span, /* endSpan= */ false, callable);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a {@link SpanBuilder} to create and start a new child {@link Span} as a child of to the
|
* Returns a {@link SpanBuilder} to create and start a new child {@link Span} as a child of to the
|
||||||
|
|
@ -305,9 +297,7 @@ public abstract class Tracer {
|
||||||
* @throws NullPointerException if {@code spanName} is {@code null}.
|
* @throws NullPointerException if {@code spanName} is {@code null}.
|
||||||
* @since 0.1.0
|
* @since 0.1.0
|
||||||
*/
|
*/
|
||||||
public final SpanBuilder spanBuilder(String spanName) {
|
public abstract SpanBuilder spanBuilder(String spanName);
|
||||||
return spanBuilderWithExplicitParent(spanName, CurrentSpanUtils.getCurrentSpan());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a {@link SpanBuilder} to create and start a new child {@link Span} (or root if parent
|
* Returns a {@link SpanBuilder} to create and start a new child {@link Span} (or root if parent
|
||||||
|
|
@ -353,6 +343,31 @@ public abstract class Tracer {
|
||||||
// No-Op implementation of the Tracer.
|
// No-Op implementation of the Tracer.
|
||||||
private static final class NoopTracer extends Tracer {
|
private static final class NoopTracer extends Tracer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Span getCurrentSpan() {
|
||||||
|
return BlankSpan.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Scope withSpan(Span span) {
|
||||||
|
return NoopScope.getInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Runnable withSpan(Span span, Runnable runnable) {
|
||||||
|
return runnable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <C> Callable<C> withSpan(Span span, Callable<C> callable) {
|
||||||
|
return callable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SpanBuilder spanBuilder(String spanName) {
|
||||||
|
return spanBuilderWithExplicitParent(spanName, getCurrentSpan());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SpanBuilder spanBuilderWithExplicitParent(String spanName, @Nullable Span parent) {
|
public SpanBuilder spanBuilderWithExplicitParent(String spanName, @Nullable Span parent) {
|
||||||
return NoopSpanBuilder.createWithParent(spanName, parent);
|
return NoopSpanBuilder.createWithParent(spanName, parent);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue