Repository: incubator-htrace Updated Branches: refs/heads/4.0 b883158b9 -> 12ba099d3
HTRACE-254 Minor compatible API cleanup: Take name on Tracer construction, deprecate Span#getChild Project: http://git-wip-us.apache.org/repos/asf/incubator-htrace/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-htrace/commit/12ba099d Tree: http://git-wip-us.apache.org/repos/asf/incubator-htrace/tree/12ba099d Diff: http://git-wip-us.apache.org/repos/asf/incubator-htrace/diff/12ba099d Branch: refs/heads/4.0 Commit: 12ba099d3c929e81fe83a8f035e06bdfe6e4c44b Parents: b883158 Author: stack <[email protected]> Authored: Fri Sep 18 14:09:51 2015 -0700 Committer: stack <[email protected]> Committed: Fri Sep 18 14:10:14 2015 -0700 ---------------------------------------------------------------------- .../main/java/org/apache/htrace/core/Span.java | 2 + .../java/org/apache/htrace/core/TraceScope.java | 10 ++--- .../java/org/apache/htrace/core/Tracer.java | 40 +++++++++++++------- .../java/org/apache/htrace/core/TracerPool.java | 18 +++++---- 4 files changed, 41 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/12ba099d/htrace-core/src/main/java/org/apache/htrace/core/Span.java ---------------------------------------------------------------------- diff --git a/htrace-core/src/main/java/org/apache/htrace/core/Span.java b/htrace-core/src/main/java/org/apache/htrace/core/Span.java index 4971983..e63d414 100644 --- a/htrace-core/src/main/java/org/apache/htrace/core/Span.java +++ b/htrace-core/src/main/java/org/apache/htrace/core/Span.java @@ -78,7 +78,9 @@ public interface Span { /** * Create a child span of this span with the given description + * @deprecated Since 4.0.0. Use {@link MilliSpan.Builder} */ + @Deprecated Span child(String description); @Override http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/12ba099d/htrace-core/src/main/java/org/apache/htrace/core/TraceScope.java ---------------------------------------------------------------------- diff --git a/htrace-core/src/main/java/org/apache/htrace/core/TraceScope.java b/htrace-core/src/main/java/org/apache/htrace/core/TraceScope.java index b04d785..05a053e 100644 --- a/htrace-core/src/main/java/org/apache/htrace/core/TraceScope.java +++ b/htrace-core/src/main/java/org/apache/htrace/core/TraceScope.java @@ -17,14 +17,11 @@ package org.apache.htrace.core; import java.io.Closeable; -import java.lang.Thread; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +/** + * Create a new TraceScope at major transitions. Hosts current tracing context. + */ public class TraceScope implements Closeable { - private static final Log LOG = LogFactory.getLog(TraceScope.class); - /** * The tracer to use for this scope. */ @@ -112,7 +109,6 @@ public class TraceScope implements Closeable { @Override public void close() { tracer.closeScope(this); - } public void addKVAnnotation(String key, String value) { http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/12ba099d/htrace-core/src/main/java/org/apache/htrace/core/Tracer.java ---------------------------------------------------------------------- diff --git a/htrace-core/src/main/java/org/apache/htrace/core/Tracer.java b/htrace-core/src/main/java/org/apache/htrace/core/Tracer.java index 7c4cc82..2a6d31e 100644 --- a/htrace-core/src/main/java/org/apache/htrace/core/Tracer.java +++ b/htrace-core/src/main/java/org/apache/htrace/core/Tracer.java @@ -17,7 +17,6 @@ package org.apache.htrace.core; import java.io.Closeable; -import java.lang.System; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; @@ -26,22 +25,22 @@ import java.util.LinkedList; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; -import java.util.concurrent.ThreadLocalRandom; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** - * A Tracer provides the implementation for collecting and distributing Spans - * within a process. + * Use a Tracer instance inside a 'process' to collect and distribute its trace Spans. + * Example processes are an HDFS DataNode or an HBase RegionServer. A Tracer instance is your + * one-stop shop for all things tracing. + * + * <p> */ public class Tracer implements Closeable { private static final Log LOG = LogFactory.getLog(Tracer.class); - public final static String SPAN_RECEIVER_CLASSES_KEY = - "span.receiver.classes"; - public final static String SAMPLER_CLASSES_KEY = - "sampler.classes"; + public final static String SPAN_RECEIVER_CLASSES_KEY = "span.receiver.classes"; + public final static String SAMPLER_CLASSES_KEY = "sampler.classes"; public static class Builder { private String name; @@ -50,9 +49,23 @@ public class Tracer implements Closeable { Builder.class.getClassLoader(); private TracerPool tracerPool = TracerPool.GLOBAL; + /** + * @deprecated Since 4.0.0. Use Constructor that takes a <code>name</code> argument instead + */ + @Deprecated public Builder() { } + public Builder(final String name) { + name(name); + } + + /** + * @param name + * @return This + * @deprecated Since 4.0.0. Use Constructor that takes a <code>name</code> argument instead. + */ + @Deprecated public Builder name(String name) { this.name = name; return this; @@ -141,7 +154,6 @@ public class Tracer implements Closeable { if (name == null) { throw new RuntimeException("You must specify a name for this Tracer."); } - LinkedList<SpanReceiver> spanReceivers = new LinkedList<SpanReceiver>(); LinkedList<Sampler> samplers = new LinkedList<Sampler>(); loadSamplers(samplers); String tracerId = new TracerId(conf, name).get(); @@ -263,7 +275,7 @@ public class Tracer implements Closeable { } /** - * If the current thread is tracing, this function returns the Tracer that is + * @return If the current thread is tracing, this function returns the Tracer that is * being used; otherwise, it returns null. */ public static Tracer curThreadTracer() { @@ -339,7 +351,7 @@ public class Tracer implements Closeable { * Create a new trace scope. * * If there are no scopes above the current scope, we will apply our - * configured samplers. Otherwise, we will create a span only if this thread + * configured samplers. Otherwise, we will create a trace Span only if this thread * is already tracing, or if the passed parentID was valid. * * @param description The description of the new span to create. @@ -375,8 +387,10 @@ public class Tracer implements Closeable { * Create a new trace scope. * * If there are no scopes above the current scope, we will apply our - * configured samplers. Otherwise, we will create a span only if this thread + * configured samplers. Otherwise, we will create a trace Span only if this thread * is already tracing. + * @param description The description of the new span to create. + * @return The new trace scope. */ public TraceScope newScope(String description) { TraceScope parentScope = threadLocalScope.get(); @@ -508,7 +522,6 @@ public class Tracer implements Closeable { throwClientError(toString() + " is closed."); } Sampler[] samplers = curSamplers; - int j = 0; for (int i = 0; i < samplers.length; i++) { if (samplers[i] == sampler) { return false; @@ -531,7 +544,6 @@ public class Tracer implements Closeable { throwClientError(toString() + " is closed."); } Sampler[] samplers = curSamplers; - int j = 0; for (int i = 0; i < samplers.length; i++) { if (samplers[i] == sampler) { Sampler[] newSamplers = new Sampler[samplers.length - 1]; http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/12ba099d/htrace-core/src/main/java/org/apache/htrace/core/TracerPool.java ---------------------------------------------------------------------- diff --git a/htrace-core/src/main/java/org/apache/htrace/core/TracerPool.java b/htrace-core/src/main/java/org/apache/htrace/core/TracerPool.java index ea4d145..26e39f5 100644 --- a/htrace-core/src/main/java/org/apache/htrace/core/TracerPool.java +++ b/htrace-core/src/main/java/org/apache/htrace/core/TracerPool.java @@ -16,16 +16,20 @@ */ package org.apache.htrace.core; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; -import java.util.Iterator; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** * A pool of Tracer objects. + * + * There may be more than one {@link Tracer} running inside a single 'process'; for example, + * unit tests may spin up a DataNode, a NameNode, and HDFS clients all running in a single JVM + * instance, each with its own Tracer. TracerPool is where all Tracer instances register + * on creation so Tracers can coordinate around shared resources such as {@link SpanReceiver} + * instances. TracerPool takes care of properly cleaning up registered Tracer instances on shutdown. */ public class TracerPool { private static final Log LOG = LogFactory.getLog(TracerPool.class); @@ -118,7 +122,6 @@ public class TracerPool { */ public synchronized boolean addReceiver(SpanReceiver receiver) { SpanReceiver[] receivers = curReceivers; - int j = 0; for (int i = 0; i < receivers.length; i++) { if (receivers[i] == receiver) { LOG.trace(toString() + ": can't add receiver " + receiver.toString() + @@ -157,7 +160,6 @@ public class TracerPool { */ public synchronized boolean removeReceiver(SpanReceiver receiver) { SpanReceiver[] receivers = curReceivers; - int j = 0; for (int i = 0; i < receivers.length; i++) { if (receivers[i] == receiver) { SpanReceiver[] newReceivers = new SpanReceiver[receivers.length - 1]; @@ -280,4 +282,4 @@ public class TracerPool { public String toString() { return "TracerPool(" + name + ")"; } -} +} \ No newline at end of file
