You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zipkin.apache.org by ad...@apache.org on 2019/06/03 04:28:05 UTC
[incubator-zipkin-brave] 01/02: Backfills test of setNoop behavior
This is an automated email from the ASF dual-hosted git repository.
adriancole pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-zipkin-brave.git
commit 2b19ec8b79b6a48cca8d3cbf45eef4b13d373ae7
Author: Adrian Cole <ac...@pivotal.io>
AuthorDate: Tue Apr 23 08:24:46 2019 +0900
Backfills test of setNoop behavior
---
brave/src/test/java/brave/TracingTest.java | 34 +++++++++++++++++++++++++++---
1 file changed, 31 insertions(+), 3 deletions(-)
diff --git a/brave/src/test/java/brave/TracingTest.java b/brave/src/test/java/brave/TracingTest.java
index a02fbff..39fedcd 100644
--- a/brave/src/test/java/brave/TracingTest.java
+++ b/brave/src/test/java/brave/TracingTest.java
@@ -41,6 +41,34 @@ public class TracingTest {
}
};
+ /**
+ * This behavior could be problematic as downstream services may report spans based on
+ * propagated sampled status, and be missing a parent when their parent tracer is in noop.
+ */
+ @Test public void setNoop_dropsDataButDoesntAffectSampling() {
+ try (Tracing tracing = Tracing.newBuilder().spanReporter(spans::add).build()) {
+ ScopedSpan parent = tracing.tracer().startScopedSpan("parent");
+
+ tracing.setNoop(true);
+
+ // a new child retains sampled from parent even in noop
+ brave.Span child = tracing.tracer().newChild(parent.context());
+ assertThat(child.context().sampled()).isTrue();
+ assertThat(child.isNoop()).isTrue();
+ child.finish();
+
+ parent.finish();
+
+ // a new trace is sampled from even when noop
+ brave.Span root = tracing.tracer().newTrace();
+ assertThat(root.context().sampled()).isTrue();
+ assertThat(root.isNoop()).isTrue();
+ root.finish();
+ }
+
+ assertThat(spans).isEmpty();
+ }
+
@Test public void spanReporter_getsLocalEndpointInfo() {
String expectedLocalServiceName = "favistar", expectedLocalIp = "1.2.3.4";
int expectedLocalPort = 80;
@@ -116,9 +144,9 @@ public class TracingTest {
@Test public void firehose_recordsWhenReporterIsNoopIfAlwaysSampleLocal() {
try (Tracing tracing = Tracing.newBuilder()
- .spanReporter(Reporter.NOOP)
- .addFinishedSpanHandler(finishedSpanHandler)
- .build()) {
+ .spanReporter(Reporter.NOOP)
+ .addFinishedSpanHandler(finishedSpanHandler)
+ .build()) {
tracing.tracer().newTrace().start().name("aloha").finish();
}