You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@htrace.apache.org by cm...@apache.org on 2015/03/03 00:40:10 UTC

incubator-htrace git commit: HTRACE-118. Java API: support setting the parents of a span after the span is created (cmccabe)

Repository: incubator-htrace
Updated Branches:
  refs/heads/master c7f645c3c -> 5c0a712c7


HTRACE-118. Java API: support setting the parents of a span after the span is created (cmccabe)


Project: http://git-wip-us.apache.org/repos/asf/incubator-htrace/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-htrace/commit/5c0a712c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-htrace/tree/5c0a712c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-htrace/diff/5c0a712c

Branch: refs/heads/master
Commit: 5c0a712c7dd4263f5e2a88d4c61a0facab25953f
Parents: c7f645c
Author: Colin P. Mccabe <cm...@apache.org>
Authored: Mon Mar 2 15:39:55 2015 -0800
Committer: Colin P. Mccabe <cm...@apache.org>
Committed: Mon Mar 2 15:39:55 2015 -0800

----------------------------------------------------------------------
 .../src/main/java/org/apache/htrace/Span.java   | 20 ++++++++++++++++----
 .../java/org/apache/htrace/impl/MilliSpan.java  |  7 ++++++-
 .../htrace/impl/TestHBaseSpanReceiver.java      |  6 ++++++
 3 files changed, 28 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/5c0a712c/htrace-core/src/main/java/org/apache/htrace/Span.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/Span.java b/htrace-core/src/main/java/org/apache/htrace/Span.java
index c6ec37b..71ed872 100644
--- a/htrace-core/src/main/java/org/apache/htrace/Span.java
+++ b/htrace-core/src/main/java/org/apache/htrace/Span.java
@@ -30,8 +30,9 @@ import java.util.Map;
  * Base interface for gathering and reporting statistics about a block of
  * execution.
  * <p/>
- * Spans form a tree structure with the parent relationship. The first span in a
- * trace has no parent span.
+ * Spans should form a directed acyclic graph structure.  It should be possible
+ * to keep following the parents of a span until you arrive at a span with no
+ * parents.<p/>
  */
 @JsonSerialize(using = Span.SpanSerializer.class)
 public interface Span {
@@ -67,7 +68,10 @@ public interface Span {
   String getDescription();
 
   /**
-   * A pseudo-unique (random) number assigned to this span instance
+   * A pseudo-unique (random) number assigned to this span instance.<p/>
+   *
+   * The spanId is immutable and cannot be changed.  It is safe to access this
+   * from multiple threads.
    */
   long getSpanId();
 
@@ -86,12 +90,20 @@ public interface Span {
   String toString();
 
   /**
-   * Returns the parents of the span.
+   * Returns the parent IDs of the span.<p/>
+   *
    * The array will be empty if there are no parents.
    */
   long[] getParents();
 
   /**
+   * Set the parents of this span.<p/>
+   *
+   * Any existing parents will be cleared by this call.
+   */
+  void setParents(long[] parents);
+
+  /**
    * Add a data annotation associated with this span
    */
   void addKVAnnotation(String key, String value);

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/5c0a712c/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java b/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java
index 9babfc1..9956ddb 100644
--- a/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java
+++ b/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java
@@ -54,7 +54,7 @@ public class MilliSpan implements Span {
   private long end;
   private final String description;
   private final long traceId;
-  private final long parents[];
+  private long parents[];
   private final long spanId;
   private Map<String, String> traceInfo = null;
   private final String processId;
@@ -220,6 +220,11 @@ public class MilliSpan implements Span {
   }
 
   @Override
+  public void setParents(long[] parents) {
+    this.parents = parents;
+  }
+
+  @Override
   public long getTraceId() {
     return traceId;
   }

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/5c0a712c/htrace-hbase/src/test/java/org/apache/htrace/impl/TestHBaseSpanReceiver.java
----------------------------------------------------------------------
diff --git a/htrace-hbase/src/test/java/org/apache/htrace/impl/TestHBaseSpanReceiver.java b/htrace-hbase/src/test/java/org/apache/htrace/impl/TestHBaseSpanReceiver.java
index 79d6e9b..7bf7bac 100644
--- a/htrace-hbase/src/test/java/org/apache/htrace/impl/TestHBaseSpanReceiver.java
+++ b/htrace-hbase/src/test/java/org/apache/htrace/impl/TestHBaseSpanReceiver.java
@@ -20,6 +20,7 @@ package org.apache.htrace.impl;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.UnsupportedOperationException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -155,6 +156,11 @@ public class TestHBaseSpanReceiver {
     }
 
     @Override
+    public void setParents(long[] parents) {
+      throw new UnsupportedOperationException();
+    }
+
+    @Override
     public long getStartTimeMillis() {
       return span.getStart();
     }