Switches default to OpenTracing 0.31/32 (#1386)

This commit is contained in:
Adrian Cole
2019-07-02 09:51:42 +08:00
committed by GitHub
parent 4ccd35b203
commit a4dfafb2c1
4 changed files with 40 additions and 85 deletions

View File

@@ -34,7 +34,7 @@
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<spring-boot.version>2.2.0.BUILD-SNAPSHOT</spring-boot.version>
<brave.version>5.6.5</brave.version>
<brave.version>5.6.6</brave.version>
</properties>
<dependencyManagement>

View File

@@ -259,7 +259,7 @@
<spring-cloud-netflix.version>2.2.0.BUILD-SNAPSHOT</spring-cloud-netflix.version>
<spring-cloud-openfeign.version>2.2.0.BUILD-SNAPSHOT
</spring-cloud-openfeign.version>
<brave.version>5.6.5</brave.version>
<brave.version>5.6.6</brave.version>
<spring-security-boot-autoconfigure.version>2.1.3.RELEASE
</spring-security-boot-autoconfigure.version>
<disable.nohttp.checks>false</disable.nohttp.checks>

View File

@@ -29,8 +29,7 @@ import brave.propagation.TraceContext;
import brave.sampler.Sampler;
import io.opentracing.Scope;
import io.opentracing.propagation.Format;
import io.opentracing.propagation.TextMapExtractAdapter;
import io.opentracing.propagation.TextMapInjectAdapter;
import io.opentracing.propagation.TextMapAdapter;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -71,16 +70,12 @@ public class BraveTracerTest {
@Autowired
BraveTracer opentracing;
private static TraceContext getTraceContext(Scope scope) {
return ((BraveSpanContext) scope.span().context()).unwrap();
}
@Test
public void startWithOpenTracingAndFinishWithBrave() {
io.opentracing.Span openTracingSpan = this.opentracing.buildSpan("encode")
BraveSpan openTracingSpan = this.opentracing.buildSpan("encode")
.withTag("lc", "codec").withStartTimestamp(1L).start();
Span braveSpan = ((BraveSpan) openTracingSpan).unwrap();
Span braveSpan = openTracingSpan.unwrap();
braveSpan.annotate(2L, "pump fake");
braveSpan.finish(3L);
@@ -89,21 +84,21 @@ public class BraveTracerTest {
}
@Test
public void extractTraceContext() throws Exception {
public void extractTraceContext() {
Map<String, String> map = new LinkedHashMap<>();
map.put("X-B3-TraceId", "0000000000000001");
map.put("X-B3-SpanId", "0000000000000002");
map.put("X-B3-Sampled", "1");
BraveSpanContext openTracingContext = (BraveSpanContext) this.opentracing
.extract(Format.Builtin.HTTP_HEADERS, new TextMapExtractAdapter(map));
BraveSpanContext openTracingContext = this.opentracing
.extract(Format.Builtin.HTTP_HEADERS, new TextMapAdapter(map));
assertThat(openTracingContext.unwrap()).isEqualTo(
TraceContext.newBuilder().traceId(1L).spanId(2L).sampled(true).build());
}
@Test
public void extractBaggage() throws Exception {
public void extractBaggage() {
Map<String, String> map = new LinkedHashMap<>();
map.put("X-B3-TraceId", "0000000000000001");
map.put("X-B3-SpanId", "0000000000000002");
@@ -111,48 +106,48 @@ public class BraveTracerTest {
map.put("baggage-country-code", "FO");
BraveSpanContext openTracingContext = this.opentracing
.extract(Format.Builtin.HTTP_HEADERS, new TextMapExtractAdapter(map));
.extract(Format.Builtin.HTTP_HEADERS, new TextMapAdapter(map));
assertThat(openTracingContext.baggageItems())
.containsExactly(entry("country-code", "FO"));
}
@Test
public void extractTraceContextTextMap() throws Exception {
public void extractTraceContextTextMap() {
Map<String, String> map = new LinkedHashMap<>();
map.put("X-B3-TraceId", "0000000000000001");
map.put("X-B3-SpanId", "0000000000000002");
map.put("X-B3-Sampled", "1");
BraveSpanContext openTracingContext = (BraveSpanContext) this.opentracing
.extract(Format.Builtin.TEXT_MAP, new TextMapExtractAdapter(map));
BraveSpanContext openTracingContext = this.opentracing
.extract(Format.Builtin.TEXT_MAP, new TextMapAdapter(map));
assertThat(openTracingContext.unwrap()).isEqualTo(
TraceContext.newBuilder().traceId(1L).spanId(2L).sampled(true).build());
}
@Test
public void extractTraceContextCaseInsensitive() throws Exception {
public void extractTraceContextCaseInsensitive() {
Map<String, String> map = new LinkedHashMap<>();
map.put("X-B3-TraceId", "0000000000000001");
map.put("x-b3-spanid", "0000000000000002");
map.put("x-b3-SaMpLeD", "1");
map.put("other", "1");
BraveSpanContext openTracingContext = (BraveSpanContext) this.opentracing
.extract(Format.Builtin.HTTP_HEADERS, new TextMapExtractAdapter(map));
BraveSpanContext openTracingContext = this.opentracing
.extract(Format.Builtin.HTTP_HEADERS, new TextMapAdapter(map));
assertThat(openTracingContext.unwrap()).isEqualTo(
TraceContext.newBuilder().traceId(1L).spanId(2L).sampled(true).build());
}
@Test
public void injectTraceContext_baggage() throws Exception {
public void injectTraceContext_baggage() {
BraveSpan span = this.opentracing.buildSpan("foo").start();
span.setBaggageItem("country-code", "FO");
Map<String, String> map = new LinkedHashMap<>();
TextMapInjectAdapter carrier = new TextMapInjectAdapter(map);
TextMapAdapter carrier = new TextMapAdapter(map);
this.opentracing.inject(span.context(), Format.Builtin.HTTP_HEADERS, carrier);
assertThat(map).containsEntry("baggage-country-code", "FO");
@@ -170,43 +165,20 @@ public class BraveTracerTest {
}
@Test
public void subsequentChildrenNestProperly_OTStyle() {
// this test is semantically identical to
// subsequentChildrenNestProperly_BraveStyle, but uses
// the OpenTracingAPI instead of the Brave API.
public void activate_nested() {
BraveSpan spanA = this.opentracing.buildSpan("spanA").start();
BraveSpan spanB = this.opentracing.buildSpan("spanB").start();
Long idOfSpanA;
Long shouldBeIdOfSpanA;
Long idOfSpanB;
Long shouldBeIdOfSpanB;
Long parentIdOfSpanB;
Long parentIdOfSpanC;
try (Scope scopeA = this.opentracing.scopeManager().activate(spanA)) {
try (Scope scopeB = this.opentracing.scopeManager().activate(spanB)) {
assertThat(
this.opentracing.scopeManager().activeSpan().context().unwrap())
.isEqualTo(spanB.context().unwrap());
}
try (Scope scopeA = this.opentracing.buildSpan("spanA").startActive(false)) {
idOfSpanA = getTraceContext(scopeA).spanId();
try (Scope scopeB = this.opentracing.buildSpan("spanB").startActive(false)) {
idOfSpanB = getTraceContext(scopeB).spanId();
parentIdOfSpanB = getTraceContext(scopeB).parentId();
shouldBeIdOfSpanB = getTraceContext(
this.opentracing.scopeManager().active()).spanId();
}
shouldBeIdOfSpanA = getTraceContext(this.opentracing.scopeManager().active())
.spanId();
try (Scope scopeC = this.opentracing.buildSpan("spanC").startActive(false)) {
parentIdOfSpanC = getTraceContext(scopeC).parentId();
}
assertThat(opentracing.scopeManager().activeSpan().context().unwrap())
.isEqualTo(spanA.context().unwrap());
}
assertThat(shouldBeIdOfSpanA)
.as("SpanA should have been active again after closing B")
.isEqualTo(idOfSpanA);
assertThat(shouldBeIdOfSpanB)
.as("SpanB should have been active prior to its closure")
.isEqualTo(idOfSpanB);
assertThat(parentIdOfSpanB).as("SpanB's parent should be SpanA")
.isEqualTo(idOfSpanA);
assertThat(parentIdOfSpanC).as("SpanC's parent should be SpanA")
.isEqualTo(idOfSpanA);
}
@Test
@@ -264,41 +236,24 @@ public class BraveTracerTest {
.isEqualTo(idOfSpanA);
}
@Test
public void implicitParentFromSpanManager_startActive() {
try (Scope scopeA = this.opentracing.buildSpan("spanA").startActive(true)) {
try (Scope scopeB = this.opentracing.buildSpan("spanA").startActive(true)) {
assertThat(getTraceContext(scopeB).parentId())
.isEqualTo(getTraceContext(scopeA).spanId());
}
}
}
@Test
public void implicitParentFromSpanManager_start() {
try (Scope scopeA = this.opentracing.buildSpan("spanA").startActive(true)) {
BraveSpan span = this.opentracing.buildSpan("spanB").start();
assertThat(span.unwrap().context().parentId())
.isEqualTo(getTraceContext(scopeA).spanId());
}
}
@Test
public void implicitParentFromSpanManager_startActive_ignoreActiveSpan() {
try (Scope scopeA = this.opentracing.buildSpan("spanA").startActive(true)) {
try (Scope scopeB = this.opentracing.buildSpan("spanA").ignoreActiveSpan()
.startActive(true)) {
assertThat(getTraceContext(scopeB).parentId()).isNull(); // new trace
}
BraveSpan spanA = this.opentracing.buildSpan("spanA").start();
try (Scope scopeA = this.opentracing.activateSpan(spanA)) {
BraveSpan spanB = this.opentracing.buildSpan("spanB").start();
// OpenTracing doesn't expose parent ID, so we will check trace ID instead
assertThat(spanB.context().toTraceId())
.isEqualTo(spanA.context().toTraceId());
}
}
@Test
public void implicitParentFromSpanManager_start_ignoreActiveSpan() {
try (Scope scopeA = this.opentracing.buildSpan("spanA").startActive(true)) {
BraveSpan span = this.opentracing.buildSpan("spanB").ignoreActiveSpan()
BraveSpan spanA = this.opentracing.buildSpan("spanA").start();
try (Scope scopeA = this.opentracing.activateSpan(spanA)) {
BraveSpan spanB = this.opentracing.buildSpan("spanB").ignoreActiveSpan()
.start();
assertThat(span.unwrap().context().parentId()).isNull(); // new trace
assertThat(spanB.unwrap().context().parentId()).isNull(); // new trace
}
}

View File

@@ -31,7 +31,7 @@
<name>spring-cloud-sleuth-dependencies</name>
<description>Spring Cloud Sleuth Dependencies</description>
<properties>
<brave.opentracing.version>0.33.13</brave.opentracing.version>
<brave.opentracing.version>0.34.1</brave.opentracing.version>
<grpc.spring.boot.version>3.0.1</grpc.spring.boot.version>
</properties>
<dependencyManagement>