From a0374e0d28e4fc8fb7cefb62819d32936b3940d5 Mon Sep 17 00:00:00 2001 From: Tomas Langer Date: Tue, 10 Dec 2019 21:18:13 +0100 Subject: [PATCH 1/4] Upgrade of libraries related to tracing. (#1169) Signed-off-by: Tomas Langer --- dependencies/pom.xml | 8 ++-- grpc/client/src/main/java/module-info.java | 2 +- .../io/helidon/grpc/server/GrpcTracing.java | 4 +- grpc/server/src/main/java/module-info.java | 2 +- .../tracing/src/main/java/module-info.java | 2 +- .../tracing/TestTracerProvider.java | 46 +++++++++++++++++-- .../security/src/main/java/module-info.java | 8 ++-- tracing/jaeger/src/main/java/module-info.java | 2 +- .../jersey/client/ClientTracingFilter.java | 4 +- .../src/main/java/module-info.java | 4 +- tracing/jersey/src/main/java/module-info.java | 2 +- .../tracing/src/main/java/module-info.java | 6 +-- .../tracing/zipkin/ZipkinScopeManager.java | 20 ++++++++ .../io/helidon/tracing/zipkin/ZipkinSpan.java | 7 +++ .../tracing/zipkin/ZipkinSpanBuilder.java | 9 +++- .../helidon/tracing/zipkin/ZipkinTracer.java | 11 +++++ tracing/zipkin/src/main/java/module-info.java | 2 +- .../jersey/src/main/java/module-info.java | 2 +- .../helidon/webserver/WebTracingConfig.java | 4 +- .../webserver/src/main/java/module-info.java | 6 +-- 20 files changed, 117 insertions(+), 34 deletions(-) diff --git a/dependencies/pom.xml b/dependencies/pom.xml index 358724fa9a0..939869768f8 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -39,7 +39,7 @@ 1.2.0 1.3.1 4.5.10 - 0.31.0 + 0.35.0 2.0 2.7.4 3.0.0 @@ -84,8 +84,8 @@ 4.1.42.Final 1.5.2 19.3.0.0 - 0.31.0 - 0.0.12 + 0.32.0 + 0.2.1 2.2 0.6.0 3.5.1 @@ -99,7 +99,7 @@ 19.3.0.0 2.0.1.Final 3.1.1.Final - 2.6.0 + 2.11.1 1.5.18 2.3.1 1.0.3 diff --git a/grpc/client/src/main/java/module-info.java b/grpc/client/src/main/java/module-info.java index 1e25a805149..a5127279da2 100644 --- a/grpc/client/src/main/java/module-info.java +++ b/grpc/client/src/main/java/module-info.java @@ -22,6 +22,6 @@ requires transitive io.helidon.grpc.core; - requires opentracing.api; + requires io.opentracing.api; requires opentracing.grpc; } diff --git a/grpc/server/src/main/java/io/helidon/grpc/server/GrpcTracing.java b/grpc/server/src/main/java/io/helidon/grpc/server/GrpcTracing.java index 349425f6eda..c7aadf47265 100644 --- a/grpc/server/src/main/java/io/helidon/grpc/server/GrpcTracing.java +++ b/grpc/server/src/main/java/io/helidon/grpc/server/GrpcTracing.java @@ -39,7 +39,7 @@ import io.opentracing.contrib.grpc.OpenTracingContextKey; import io.opentracing.contrib.grpc.OperationNameConstructor; import io.opentracing.propagation.Format; -import io.opentracing.propagation.TextMapExtractAdapter; +import io.opentracing.propagation.TextMapAdapter; /** * A {@link ServerInterceptor} that adds tracing to gRPC service calls. @@ -147,7 +147,7 @@ private Span getSpanFromHeaders(Map headers, String operationNam try { SpanContext parentSpanCtx = tracer.extract(Format.Builtin.HTTP_HEADERS, - new TextMapExtractAdapter(headers)); + new TextMapAdapter(headers)); if (parentSpanCtx == null) { span = tracer.buildSpan(operationName) .start(); diff --git a/grpc/server/src/main/java/module-info.java b/grpc/server/src/main/java/module-info.java index f8cd47a6c67..a106cd4fd48 100644 --- a/grpc/server/src/main/java/module-info.java +++ b/grpc/server/src/main/java/module-info.java @@ -30,7 +30,7 @@ requires transitive grpc.services; requires transitive microprofile.health.api; - requires transitive opentracing.api; + requires transitive io.opentracing.api; requires transitive opentracing.grpc; requires java.annotation; diff --git a/microprofile/tracing/src/main/java/module-info.java b/microprofile/tracing/src/main/java/module-info.java index 686279ed6cd..5fbafcca866 100644 --- a/microprofile/tracing/src/main/java/module-info.java +++ b/microprofile/tracing/src/main/java/module-info.java @@ -23,7 +23,7 @@ requires java.ws.rs; requires jersey.common; - requires opentracing.api; + requires io.opentracing.api; requires static cdi.api; requires static javax.inject; diff --git a/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java b/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java index ec70bd81f3a..9b4ec2164e2 100644 --- a/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java +++ b/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java @@ -31,11 +31,11 @@ import io.opentracing.SpanContext; import io.opentracing.Tracer; import io.opentracing.propagation.Format; -import io.opentracing.propagation.TextMapInjectAdapter; +import io.opentracing.propagation.TextMapAdapter; import io.opentracing.util.GlobalTracer; /** - * TODO javadoc. + * Testing tracer provider. */ public class TestTracerProvider implements TracerProvider { @Override @@ -134,6 +134,16 @@ public Span span() { public Scope active() { return active; } + + @Override + public Scope activate(Span span) { + return activate(span, false); + } + + @Override + public Span activeSpan() { + return active().span(); + } }; } @@ -142,6 +152,16 @@ public Span activeSpan() { return null; } + @Override + public Scope activateSpan(Span span) { + return null; + } + + @Override + public void close() { + + } + @Override public SpanBuilder buildSpan(String operationName) { return new TestSpanBuilder(operationName); @@ -153,7 +173,7 @@ public SpanBuilder buildSpan(String operationName) { public void inject(SpanContext spanContext, Format format, C carrier) { TestSpan span = ((TestSpanContext)spanContext).testSpan; - TextMapInjectAdapter adapter = (TextMapInjectAdapter) carrier; + TextMapAdapter adapter = (TextMapAdapter) carrier; adapter.put(OPERATION_NAME_HEADER, span.operationName); } @@ -239,6 +259,11 @@ public Span start() { return result; } + + @Override + public Tracer.SpanBuilder withTag(io.opentracing.tag.Tag tag, T value) { + return this; + } } static final class TestSpan implements Span { @@ -262,6 +287,11 @@ public SpanContext context() { return new TestSpanContext(this); } + @Override + public Span setTag(io.opentracing.tag.Tag tag, T value) { + return this; + } + @Override public Span setTag(String key, String value) { return this; @@ -336,6 +366,16 @@ public Iterable> baggageItems() { return map.entrySet(); } + + @Override + public String toTraceId() { + return testSpan.parent.toTraceId(); + } + + @Override + public String toSpanId() { + return testSpan.toString(); + } } static class TestScope implements Scope { diff --git a/security/security/src/main/java/module-info.java b/security/security/src/main/java/module-info.java index dca481232b7..59ac3967d40 100644 --- a/security/security/src/main/java/module-info.java +++ b/security/security/src/main/java/module-info.java @@ -27,14 +27,14 @@ requires transitive io.helidon.common.configurable; requires transitive io.helidon.common.reactive; requires transitive io.helidon.config; - requires transitive opentracing.api; + requires transitive io.opentracing.api; // noop and api expose the same package :( - // requires opentracing.noop; - requires opentracing.util; + // requires io.opentracing.noop; + requires io.opentracing.util; requires io.helidon.security.util; requires io.helidon.common.context; - requires opentracing.noop; + requires io.opentracing.noop; exports io.helidon.security; exports io.helidon.security.spi; diff --git a/tracing/jaeger/src/main/java/module-info.java b/tracing/jaeger/src/main/java/module-info.java index 9b301128dd8..c58fa167b97 100644 --- a/tracing/jaeger/src/main/java/module-info.java +++ b/tracing/jaeger/src/main/java/module-info.java @@ -23,7 +23,7 @@ requires io.helidon.tracing; requires java.logging; - requires opentracing.util; + requires io.opentracing.util; requires jaeger.client; requires jaeger.core; diff --git a/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java b/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java index f4eb57672b3..305d281a2b1 100644 --- a/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java +++ b/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java @@ -45,7 +45,7 @@ import io.opentracing.SpanContext; import io.opentracing.Tracer; import io.opentracing.propagation.Format; -import io.opentracing.propagation.TextMapInjectAdapter; +import io.opentracing.propagation.TextMapAdapter; import io.opentracing.tag.Tags; import io.opentracing.util.GlobalTracer; @@ -325,7 +325,7 @@ private Map> tracingHeaders(Tracer tracer, Span currentSpan tracer.inject(currentSpan.context(), Format.Builtin.HTTP_HEADERS, - new TextMapInjectAdapter(tracerHeaders)); + new TextMapAdapter(tracerHeaders)); return new HashMap<>(tracerHeaders.entrySet() .stream() diff --git a/tracing/jersey-client/src/main/java/module-info.java b/tracing/jersey-client/src/main/java/module-info.java index e5d23b2f039..b803076581e 100644 --- a/tracing/jersey-client/src/main/java/module-info.java +++ b/tracing/jersey-client/src/main/java/module-info.java @@ -28,8 +28,8 @@ requires jersey.client; requires jersey.common; - requires opentracing.api; - requires opentracing.util; + requires io.opentracing.api; + requires io.opentracing.util; requires io.helidon.tracing; requires io.helidon.tracing.config; diff --git a/tracing/jersey/src/main/java/module-info.java b/tracing/jersey/src/main/java/module-info.java index 5be95981c75..2168fd410f9 100644 --- a/tracing/jersey/src/main/java/module-info.java +++ b/tracing/jersey/src/main/java/module-info.java @@ -23,7 +23,7 @@ requires java.ws.rs; requires jersey.server; - requires opentracing.api; + requires io.opentracing.api; requires io.helidon.common; requires io.helidon.common.context; requires io.helidon.jersey.common; diff --git a/tracing/tracing/src/main/java/module-info.java b/tracing/tracing/src/main/java/module-info.java index afaefec65c0..ba0df742369 100644 --- a/tracing/tracing/src/main/java/module-info.java +++ b/tracing/tracing/src/main/java/module-info.java @@ -23,9 +23,9 @@ requires io.helidon.common; requires io.helidon.common.serviceloader; requires io.helidon.config; - requires transitive opentracing.api; - requires opentracing.noop; - requires opentracing.util; + requires transitive io.opentracing.api; + requires io.opentracing.noop; + requires io.opentracing.util; exports io.helidon.tracing; exports io.helidon.tracing.spi; diff --git a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinScopeManager.java b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinScopeManager.java index a950feb3130..e09f31ea4c8 100644 --- a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinScopeManager.java +++ b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinScopeManager.java @@ -45,4 +45,24 @@ public Scope activate(Span span, boolean finishSpanOnClose) { public Scope active() { return scopeManager.active(); } + + @Override + public Scope activate(Span span) { + return scopeManager.activate(unwrap(span)); + } + + private Span unwrap(Span span) { + Span unwrapped = span; + + if (span instanceof ZipkinSpan) { + unwrapped = ((ZipkinSpan) span).unwrap(); + } + + return unwrapped; + } + + @Override + public Span activeSpan() { + return scopeManager.activeSpan(); + } } diff --git a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpan.java b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpan.java index e84b9e36766..88cb0017ecd 100644 --- a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpan.java +++ b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpan.java @@ -20,6 +20,7 @@ import io.opentracing.Span; import io.opentracing.SpanContext; +import io.opentracing.tag.Tag; /** * The ZipkinSpan delegates to another {@link Span} while finishing the @@ -111,6 +112,12 @@ public Span setOperationName(String operationName) { return this; } + @Override + public Span setTag(Tag tag, T value) { + span.setTag(tag, value); + return this; + } + Span unwrap() { return span; } diff --git a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpanBuilder.java b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpanBuilder.java index c233a6cb829..049a9dce957 100644 --- a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpanBuilder.java +++ b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpanBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -105,6 +105,11 @@ public Scope startActive(boolean finishSpanOnClose) { @Override public Span startManual() { - return null; + return spanBuilder.startManual(); + } + + @Override + public Tracer.SpanBuilder withTag(io.opentracing.tag.Tag tag, T value) { + return spanBuilder.withTag(tag, value); } } diff --git a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracer.java b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracer.java index 9fc905dd2cd..517053546e4 100644 --- a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracer.java +++ b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracer.java @@ -21,6 +21,7 @@ import io.helidon.tracing.Tag; import brave.opentracing.BraveTracer; +import io.opentracing.Scope; import io.opentracing.ScopeManager; import io.opentracing.Span; import io.opentracing.SpanContext; @@ -77,4 +78,14 @@ public ScopeManager scopeManager() { public Span activeSpan() { return tracer.activeSpan(); } + + @Override + public void close() { + tracer.close(); + } + + @Override + public Scope activateSpan(Span span) { + return tracer.activateSpan(span); + } } diff --git a/tracing/zipkin/src/main/java/module-info.java b/tracing/zipkin/src/main/java/module-info.java index 40357ceb441..03913e5415b 100644 --- a/tracing/zipkin/src/main/java/module-info.java +++ b/tracing/zipkin/src/main/java/module-info.java @@ -23,7 +23,7 @@ requires io.helidon.tracing; requires java.logging; - requires opentracing.util; + requires io.opentracing.util; requires brave.opentracing; requires zipkin2.reporter; requires zipkin2.reporter.urlconnection; diff --git a/webserver/jersey/src/main/java/module-info.java b/webserver/jersey/src/main/java/module-info.java index 31b64a3e76c..40154e429ba 100644 --- a/webserver/jersey/src/main/java/module-info.java +++ b/webserver/jersey/src/main/java/module-info.java @@ -21,7 +21,7 @@ requires transitive java.annotation; requires transitive io.helidon.webserver; requires transitive java.ws.rs; - requires transitive opentracing.api; + requires transitive io.opentracing.api; requires transitive io.helidon.jersey.server; requires io.helidon.common.context; diff --git a/webserver/webserver/src/main/java/io/helidon/webserver/WebTracingConfig.java b/webserver/webserver/src/main/java/io/helidon/webserver/WebTracingConfig.java index cf87698e9d8..247b8f470c0 100644 --- a/webserver/webserver/src/main/java/io/helidon/webserver/WebTracingConfig.java +++ b/webserver/webserver/src/main/java/io/helidon/webserver/WebTracingConfig.java @@ -36,7 +36,7 @@ import io.opentracing.Tracer; import io.opentracing.noop.NoopSpanBuilder; import io.opentracing.propagation.Format; -import io.opentracing.propagation.TextMapExtractAdapter; +import io.opentracing.propagation.TextMapAdapter; import io.opentracing.tag.Tags; import io.opentracing.util.GlobalTracer; @@ -255,7 +255,7 @@ private void doAccept(ServerRequest req, ServerResponse res) { } } - SpanContext inboundSpanContext = tracer.extract(Format.Builtin.HTTP_HEADERS, new TextMapExtractAdapter(headersMap)); + SpanContext inboundSpanContext = tracer.extract(Format.Builtin.HTTP_HEADERS, new TextMapAdapter(headersMap)); if (inboundSpanContext instanceof NoopSpanBuilder) { // this is all a noop stuff, does not matter what I do here - this is to prevent null pointers diff --git a/webserver/webserver/src/main/java/module-info.java b/webserver/webserver/src/main/java/module-info.java index fae0fd22f9b..a2b393c46bd 100644 --- a/webserver/webserver/src/main/java/module-info.java +++ b/webserver/webserver/src/main/java/module-info.java @@ -27,11 +27,11 @@ requires transitive io.helidon.common.context; requires transitive io.helidon.config; requires transitive io.helidon.tracing.config; - requires transitive opentracing.util; + requires transitive io.opentracing.util; requires java.logging; - requires opentracing.api; - requires opentracing.noop; + requires io.opentracing.api; + requires io.opentracing.noop; requires io.netty.handler; requires io.netty.codec.http; requires io.netty.codec; From 9839bc99ee0639d54827d88b089a1f3ca37abf3c Mon Sep 17 00:00:00 2001 From: Tomas Langer Date: Mon, 16 Dec 2019 13:14:46 +0100 Subject: [PATCH 2/4] Upgrades OpenTracing version, Jaeger and Zipkin tracers and fixed backward incompatible calls. Signed-off-by: Tomas Langer --- dependencies/pom.xml | 6 +- .../tracing/MpTracingInterceptor.java | 5 +- .../tracing/TestTracerProvider.java | 60 ++++--------------- tracing/jaeger/src/main/java/module-info.java | 1 + .../tracing/jersey/AbstractTracingFilter.java | 2 +- .../tracing/zipkin/ZipkinScopeManager.java | 15 ----- .../tracing/zipkin/ZipkinSpanBuilder.java | 11 ---- tracing/zipkin/src/main/java/module-info.java | 1 + 8 files changed, 19 insertions(+), 82 deletions(-) diff --git a/dependencies/pom.xml b/dependencies/pom.xml index 939869768f8..3eb4a482c12 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -55,7 +55,7 @@ 2.7.8 1 2.10.0 - 0.34.0 + 1.1.0 2.2.2 2.1.1.Final 2.3.0 @@ -84,7 +84,7 @@ 4.1.42.Final 1.5.2 19.3.0.0 - 0.32.0 + 0.33.0 0.2.1 2.2 0.6.0 @@ -99,7 +99,7 @@ 19.3.0.0 2.0.1.Final 3.1.1.Final - 2.11.1 + 2.10.1 1.5.18 2.3.1 1.0.3 diff --git a/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java b/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java index 8dff315f7f4..f3c55b0a148 100644 --- a/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java +++ b/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java @@ -85,8 +85,9 @@ private Object trace(InvocationContext con parentSpan.ifPresent(spanBuilder::asChildOf); - Scope scope = spanBuilder.startActive(false); - Span span = scope.span(); + Span span = spanBuilder.start(); + Scope scope = tracer.scopeManager().activate(span); + try { return context.proceed(); } catch (Exception e) { diff --git a/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java b/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java index 9b4ec2164e2..e85562cea75 100644 --- a/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java +++ b/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java @@ -112,37 +112,24 @@ static class TestTracer implements Tracer { public ScopeManager scopeManager() { return new ScopeManager() { private Scope active; + private Span activeSpan; + @Override - public Scope activate(Span span, boolean finishSpanOnClose) { + public Scope activate(Span span) { active = new Scope() { @Override public void close() { - if (finishSpanOnClose) { - span.finish(); - } + activeSpan = null; } - @Override - public Span span() { - return span; - } }; + activeSpan = span; return active; } - @Override - public Scope active() { - return active; - } - - @Override - public Scope activate(Span span) { - return activate(span, false); - } - @Override public Span activeSpan() { - return active().span(); + return activeSpan; } }; } @@ -171,7 +158,7 @@ public SpanBuilder buildSpan(String operationName) { @Override public void inject(SpanContext spanContext, Format format, C carrier) { - TestSpan span = ((TestSpanContext)spanContext).testSpan; + TestSpan span = ((TestSpanContext) spanContext).testSpan; TextMapAdapter adapter = (TextMapAdapter) carrier; adapter.put(OPERATION_NAME_HEADER, span.operationName); @@ -189,7 +176,6 @@ static class TestSpanBuilder implements Tracer.SpanBuilder { private SpanContext parent; - public TestSpanBuilder(String operationName) { this.operationName = operationName; } @@ -239,22 +225,13 @@ public Tracer.SpanBuilder withStartTimestamp(long microseconds) { return this; } - @Override - public Scope startActive(boolean finishSpanOnClose) { - return new TestScope((TestSpan) start()); - } - - @Override - public Span startManual() { - return start(); - } - @Override public Span start() { - TestSpan result = new TestSpan(this);; + TestSpan result = new TestSpan(this); + ; if (null != parent) { - ((TestSpanContext)parent).testSpan.addChild(result); + ((TestSpanContext) parent).testSpan.addChild(result); } return result; @@ -377,21 +354,4 @@ public String toSpanId() { return testSpan.toString(); } } - - static class TestScope implements Scope { - private final TestSpan testSpan; - - TestScope(TestSpan testSpan) { - this.testSpan = testSpan; - } - - @Override - public void close() { - } - - @Override - public Span span() { - return testSpan; - } - } } diff --git a/tracing/jaeger/src/main/java/module-info.java b/tracing/jaeger/src/main/java/module-info.java index c58fa167b97..7fcf98c3470 100644 --- a/tracing/jaeger/src/main/java/module-info.java +++ b/tracing/jaeger/src/main/java/module-info.java @@ -26,6 +26,7 @@ requires io.opentracing.util; requires jaeger.client; requires jaeger.core; + requires io.opentracing.noop; exports io.helidon.tracing.jaeger; diff --git a/tracing/jersey/src/main/java/io/helidon/tracing/jersey/AbstractTracingFilter.java b/tracing/jersey/src/main/java/io/helidon/tracing/jersey/AbstractTracingFilter.java index d9a8cb72d3f..5dac4b44c0b 100644 --- a/tracing/jersey/src/main/java/io/helidon/tracing/jersey/AbstractTracingFilter.java +++ b/tracing/jersey/src/main/java/io/helidon/tracing/jersey/AbstractTracingFilter.java @@ -83,7 +83,7 @@ public void filter(ContainerRequestContext requestContext) { configureSpan(spanBuilder); Span span = spanBuilder.start(); - Scope spanScope = tracer.scopeManager().activate(span, false); + Scope spanScope = tracer.scopeManager().activate(span); requestContext.setProperty(SPAN_PROPERTY, span); requestContext.setProperty(SPAN_SCOPE_PROPERTY, spanScope); diff --git a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinScopeManager.java b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinScopeManager.java index e09f31ea4c8..e64a10cb5d2 100644 --- a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinScopeManager.java +++ b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinScopeManager.java @@ -31,21 +31,6 @@ class ZipkinScopeManager implements ScopeManager { this.scopeManager = scopeManager; } - @Override - public Scope activate(Span span, boolean finishSpanOnClose) { - Span toActivate = span; - - if (span instanceof ZipkinSpan) { - toActivate = ((ZipkinSpan) span).unwrap(); - } - return scopeManager.activate(toActivate, finishSpanOnClose); - } - - @Override - public Scope active() { - return scopeManager.active(); - } - @Override public Scope activate(Span span) { return scopeManager.activate(unwrap(span)); diff --git a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpanBuilder.java b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpanBuilder.java index 049a9dce957..4a2d2afaebf 100644 --- a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpanBuilder.java +++ b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinSpanBuilder.java @@ -20,7 +20,6 @@ import io.helidon.tracing.Tag; -import io.opentracing.Scope; import io.opentracing.Span; import io.opentracing.SpanContext; import io.opentracing.Tracer; @@ -98,16 +97,6 @@ public Tracer.SpanBuilder ignoreActiveSpan() { return spanBuilder.ignoreActiveSpan(); } - @Override - public Scope startActive(boolean finishSpanOnClose) { - return spanBuilder.startActive(finishSpanOnClose); - } - - @Override - public Span startManual() { - return spanBuilder.startManual(); - } - @Override public Tracer.SpanBuilder withTag(io.opentracing.tag.Tag tag, T value) { return spanBuilder.withTag(tag, value); diff --git a/tracing/zipkin/src/main/java/module-info.java b/tracing/zipkin/src/main/java/module-info.java index 03913e5415b..371d1018e03 100644 --- a/tracing/zipkin/src/main/java/module-info.java +++ b/tracing/zipkin/src/main/java/module-info.java @@ -29,6 +29,7 @@ requires zipkin2.reporter.urlconnection; requires zipkin2; requires brave; + requires io.opentracing.noop; exports io.helidon.tracing.zipkin; From 8f8b5567c7c59b412e79818e48f1ef9926fc4ddf Mon Sep 17 00:00:00 2001 From: Tomas Langer Date: Mon, 16 Dec 2019 17:40:54 +0100 Subject: [PATCH 3/4] Upgrade to latest Zipkin sender. Signed-off-by: Tomas Langer --- dependencies/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies/pom.xml b/dependencies/pom.xml index 3eb4a482c12..51d127348f1 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -99,7 +99,7 @@ 19.3.0.0 2.0.1.Final 3.1.1.Final - 2.10.1 + 2.12.0 1.5.18 2.3.1 1.0.3 From a1661c99ea8045e1e561a0a2491a71fa583f515c Mon Sep 17 00:00:00 2001 From: Tomas Langer Date: Mon, 16 Dec 2019 22:32:05 +0100 Subject: [PATCH 4/4] Updated CHANGELOG.md Signed-off-by: Tomas Langer --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d8244f1388..db90ee602c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,16 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ### Backward incompatible changes #### Common - Flow API is now used from `java.util.concurrent.Flow`, Helidon specific `Flow` class is now removed +#### Tracing +- We have upgraded to OpenTracing version 0.33.0 that is not backward compatible, the following breaking changes exist + (these are OpenTracing changes, not Helidon changes): + 1. `TextMapExtractAdapter` and `TextMapInjectAdapter` are now `TextMapAdapter` + 2. module name changed from `opentracing.api` to `io.opentracing.api` (same for `noop` and `util`) + 3. `SpanBuilder` no longer has `startActive` method, you need to use `Tracer.activateSpan(Span)` + 4. `ScopeManager.activate(Span, boolean)` is replaced by `ScopeManager.activate(Span)` - second parameter is now always + `false` + 5. `Scope ScopeManager.active()` is removed - replaced by `Span Tracer.activeSpan()` +- If you use the `TracerBuilder` abstraction in Helidon and have no custom Spans, there is no change required ## [1.4.0]