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/07/25 03:47:36 UTC

incubator-htrace git commit: HTRACE-215. Simplify the Sampler type (cmccabe)

Repository: incubator-htrace
Updated Branches:
  refs/heads/master a0c1f0134 -> 0ddc3ea16


HTRACE-215. Simplify the Sampler type (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/0ddc3ea1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-htrace/tree/0ddc3ea1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-htrace/diff/0ddc3ea1

Branch: refs/heads/master
Commit: 0ddc3ea168862b0b900e6bf20e65ee5451f6bcfa
Parents: a0c1f01
Author: Colin Patrick Mccabe <cm...@cloudera.com>
Authored: Fri Jul 24 18:45:16 2015 -0700
Committer: Colin Patrick Mccabe <cm...@cloudera.com>
Committed: Fri Jul 24 18:45:16 2015 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/htrace/Sampler.java    | 31 +++++---------------
 .../src/main/java/org/apache/htrace/Trace.java  |  8 ++---
 .../org/apache/htrace/impl/AlwaysSampler.java   |  4 +--
 .../org/apache/htrace/impl/CountSampler.java    |  4 +--
 .../org/apache/htrace/impl/NeverSampler.java    |  4 +--
 .../apache/htrace/impl/ProbabilitySampler.java  |  4 +--
 .../org/apache/htrace/wrappers/TraceProxy.java  |  4 +--
 .../org/apache/htrace/TestCountSampler.java     |  4 +--
 .../java/org/apache/htrace/TestSampler.java     | 20 -------------
 9 files changed, 22 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/0ddc3ea1/htrace-core/src/main/java/org/apache/htrace/Sampler.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/Sampler.java b/htrace-core/src/main/java/org/apache/htrace/Sampler.java
index 45d8872..3bf62aa 100644
--- a/htrace-core/src/main/java/org/apache/htrace/Sampler.java
+++ b/htrace-core/src/main/java/org/apache/htrace/Sampler.java
@@ -23,35 +23,20 @@ import org.apache.htrace.impl.NeverSampler;
  * Extremely simple callback to determine the frequency that an action should be
  * performed.
  * <p/>
- * 'T' is the object type you require to create a more advanced sampling
- * function. For example if there is some RPC information in a 'Call' object,
- * you might implement Sampler<Call>. Then when the RPC is received you can call
- * one of the Trace.java functions that takes the extra 'info' parameter, which
- * will be passed into the next function you implemented.
- * <p/>
- * For the example above, the next(T info) function may look like this
+ * For example, the next() function may look like this:
  * <p/>
  * <pre>
- * <code>public boolean next(T info) {
- *   if (info == null) {
- *     return false;
- *   } else if (info.getName().equals("get")) {
- *     return Math.random() > 0.5;
- *   } else if (info.getName().equals("put")) {
- *     return Math.random() > 0.25;
- *   } else {
- *     return false;
- *   }
+ * <code>
+ * public boolean next() {
+ *   return Math.random() &gt; 0.5;
  * }
  * </code>
  * </pre>
  * This would trace 50% of all gets, 75% of all puts and would not trace any other requests.
  */
-public interface Sampler<T> {
-
-  public static final Sampler<?> ALWAYS = AlwaysSampler.INSTANCE;
-  public static final Sampler<?> NEVER = NeverSampler.INSTANCE;
-
-  public boolean next(T info);
+public interface Sampler {
+  public static final Sampler ALWAYS = AlwaysSampler.INSTANCE;
+  public static final Sampler NEVER = NeverSampler.INSTANCE;
 
+  public boolean next();
 }

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/0ddc3ea1/htrace-core/src/main/java/org/apache/htrace/Trace.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/Trace.java b/htrace-core/src/main/java/org/apache/htrace/Trace.java
index 2d8bff5..b9def45 100644
--- a/htrace-core/src/main/java/org/apache/htrace/Trace.java
+++ b/htrace-core/src/main/java/org/apache/htrace/Trace.java
@@ -111,13 +111,9 @@ public class Trace {
     return continueSpan(parent.child(description));
   }
 
-  public static <T> TraceScope startSpan(String description, Sampler<T> s) {
-    return startSpan(description, s, null);
-  }
-
-  public static <T> TraceScope startSpan(String description, Sampler<T> s, T info) {
+  public static <T> TraceScope startSpan(String description, Sampler s) {
     Span span = null;
-    if (isTracing() || s.next(info)) {
+    if (isTracing() || s.next()) {
       span = Tracer.getInstance().createNew(description);
     }
     return continueSpan(span);

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/0ddc3ea1/htrace-core/src/main/java/org/apache/htrace/impl/AlwaysSampler.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/impl/AlwaysSampler.java b/htrace-core/src/main/java/org/apache/htrace/impl/AlwaysSampler.java
index 7e0bf3b..699f970 100644
--- a/htrace-core/src/main/java/org/apache/htrace/impl/AlwaysSampler.java
+++ b/htrace-core/src/main/java/org/apache/htrace/impl/AlwaysSampler.java
@@ -22,7 +22,7 @@ import org.apache.htrace.Sampler;
 /**
  * A Sampler that always returns true.
  */
-public final class AlwaysSampler implements Sampler<Object> {
+public final class AlwaysSampler implements Sampler {
 
   public static final AlwaysSampler INSTANCE = new AlwaysSampler(null);
 
@@ -30,7 +30,7 @@ public final class AlwaysSampler implements Sampler<Object> {
   }
 
   @Override
-  public boolean next(Object info) {
+  public boolean next() {
     return true;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/0ddc3ea1/htrace-core/src/main/java/org/apache/htrace/impl/CountSampler.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/impl/CountSampler.java b/htrace-core/src/main/java/org/apache/htrace/impl/CountSampler.java
index be5063e..e59a4ba 100644
--- a/htrace-core/src/main/java/org/apache/htrace/impl/CountSampler.java
+++ b/htrace-core/src/main/java/org/apache/htrace/impl/CountSampler.java
@@ -26,7 +26,7 @@ import java.util.concurrent.ThreadLocalRandom;
  * Sampler that returns true every N calls. Specify the frequency interval by configuring a
  * {@code long} value for {@link #SAMPLER_FREQUENCY_CONF_KEY}.
  */
-public class CountSampler implements Sampler<Object> {
+public class CountSampler implements Sampler {
   public final static String SAMPLER_FREQUENCY_CONF_KEY = "sampler.frequency";
 
   final long frequency;
@@ -37,7 +37,7 @@ public class CountSampler implements Sampler<Object> {
   }
 
   @Override
-  public boolean next(Object info) {
+  public boolean next() {
     return (count++ % frequency) == 0;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/0ddc3ea1/htrace-core/src/main/java/org/apache/htrace/impl/NeverSampler.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/impl/NeverSampler.java b/htrace-core/src/main/java/org/apache/htrace/impl/NeverSampler.java
index c633da7..3cb3827 100644
--- a/htrace-core/src/main/java/org/apache/htrace/impl/NeverSampler.java
+++ b/htrace-core/src/main/java/org/apache/htrace/impl/NeverSampler.java
@@ -22,7 +22,7 @@ import org.apache.htrace.Sampler;
 /**
  * A Sampler that never returns true.
  */
-public final class NeverSampler implements Sampler<Object> {
+public final class NeverSampler implements Sampler {
 
   public static final NeverSampler INSTANCE = new NeverSampler(null);
 
@@ -30,7 +30,7 @@ public final class NeverSampler implements Sampler<Object> {
   }
 
   @Override
-  public boolean next(Object info) {
+  public boolean next() {
     return false;
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/0ddc3ea1/htrace-core/src/main/java/org/apache/htrace/impl/ProbabilitySampler.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/impl/ProbabilitySampler.java b/htrace-core/src/main/java/org/apache/htrace/impl/ProbabilitySampler.java
index e6e4894..903e590 100644
--- a/htrace-core/src/main/java/org/apache/htrace/impl/ProbabilitySampler.java
+++ b/htrace-core/src/main/java/org/apache/htrace/impl/ProbabilitySampler.java
@@ -28,7 +28,7 @@ import java.util.concurrent.ThreadLocalRandom;
  * Sampler that returns true a certain percentage of the time. Specify the frequency interval by
  * configuring a {@code double} value for {@link #SAMPLER_FRACTION_CONF_KEY}.
  */
-public class ProbabilitySampler implements Sampler<Object> {
+public class ProbabilitySampler implements Sampler {
   private static final Log LOG = LogFactory.getLog(ProbabilitySampler.class);
   public final double threshold;
   public final static String SAMPLER_FRACTION_CONF_KEY = "sampler.fraction";
@@ -42,7 +42,7 @@ public class ProbabilitySampler implements Sampler<Object> {
   }
 
   @Override
-  public boolean next(Object info) {
+  public boolean next() {
     return ThreadLocalRandom.current().nextDouble() < threshold;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/0ddc3ea1/htrace-core/src/main/java/org/apache/htrace/wrappers/TraceProxy.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/wrappers/TraceProxy.java b/htrace-core/src/main/java/org/apache/htrace/wrappers/TraceProxy.java
index 4087417..c1aba29 100644
--- a/htrace-core/src/main/java/org/apache/htrace/wrappers/TraceProxy.java
+++ b/htrace-core/src/main/java/org/apache/htrace/wrappers/TraceProxy.java
@@ -36,12 +36,12 @@ public class TraceProxy {
    * Returns an object that will trace all calls to itself.
    */
   @SuppressWarnings("unchecked")
-  public static <T, V> T trace(final T instance, final Sampler<V> sampler) {
+  public static <T, V> T trace(final T instance, final Sampler sampler) {
     InvocationHandler handler = new InvocationHandler() {
       @Override
       public Object invoke(Object obj, Method method, Object[] args)
           throws Throwable {
-        if (!sampler.next(null)) {
+        if (!sampler.next()) {
           return method.invoke(instance, args);
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/0ddc3ea1/htrace-core/src/test/java/org/apache/htrace/TestCountSampler.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/test/java/org/apache/htrace/TestCountSampler.java b/htrace-core/src/test/java/org/apache/htrace/TestCountSampler.java
index 1cc7753..42ba4e2 100644
--- a/htrace-core/src/test/java/org/apache/htrace/TestCountSampler.java
+++ b/htrace-core/src/test/java/org/apache/htrace/TestCountSampler.java
@@ -32,9 +32,9 @@ public class TestCountSampler {
     int halfCount = 0;
     int hundredCount = 0;
     for (int i = 0; i < 200; i++) {
-      if (half.next(null))
+      if (half.next())
         halfCount++;
-      if (hundred.next(null))
+      if (hundred.next())
         hundredCount++;
     }
     Assert.assertEquals(2, hundredCount);

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/0ddc3ea1/htrace-core/src/test/java/org/apache/htrace/TestSampler.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/test/java/org/apache/htrace/TestSampler.java b/htrace-core/src/test/java/org/apache/htrace/TestSampler.java
index e848e5e..7ff2e31 100644
--- a/htrace-core/src/test/java/org/apache/htrace/TestSampler.java
+++ b/htrace-core/src/test/java/org/apache/htrace/TestSampler.java
@@ -51,29 +51,9 @@ public class TestSampler {
   }
 
   @Test
-  public void testParamterizedSampler() {
-    TestParamSampler sampler = new TestParamSampler();
-    TraceScope s = Trace.startSpan("test", sampler, 1);
-    Assert.assertNotNull(s.getSpan());
-    s.close();
-    s = Trace.startSpan("test", sampler, -1);
-    Assert.assertNull(s.getSpan());
-    s.close();
-  }
-
-  @Test
   public void testAlwaysSampler() {
     TraceScope cur = Trace.startSpan("test");
     Assert.assertNotNull(cur);
     cur.close();
   }
-
-  private class TestParamSampler implements Sampler<Integer> {
-
-    @Override
-    public boolean next(Integer info) {
-      return info > 0;
-    }
-
-  }
 }