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();
}