You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2017/04/26 17:02:44 UTC
camel git commit: CAMEL-11198 Fix issue with propagating the trace
context when using hystrix
Repository: camel
Updated Branches:
refs/heads/master a978d4750 -> 667c38992
CAMEL-11198 Fix issue with propagating the trace context when using hystrix
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/667c3899
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/667c3899
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/667c3899
Branch: refs/heads/master
Commit: 667c38992dad2475866bfdd9d492f4df382c5a9e
Parents: a978d47
Author: Gary Brown <ga...@brownuk.com>
Authored: Wed Apr 26 17:37:52 2017 +0100
Committer: Gary Brown <ga...@brownuk.com>
Committed: Wed Apr 26 17:56:22 2017 +0100
----------------------------------------------------------------------
.../java/org/apache/camel/opentracing/OpenTracingTracer.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/667c3899/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java
----------------------------------------------------------------------
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java
index 3ae9fc1..a3876af 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java
@@ -201,6 +201,10 @@ public class OpenTracingTracer extends ServiceSupport implements RoutePolicyFact
if (event instanceof ExchangeSendingEvent) {
ExchangeSendingEvent ese = (ExchangeSendingEvent) event;
SpanManager.ManagedSpan parent = spanManager.current();
+ if (ese.getExchange().getProperties().containsKey(MANAGED_SPAN_PROPERTY)) {
+ parent = (SpanManager.ManagedSpan)
+ ese.getExchange().getProperty(MANAGED_SPAN_PROPERTY);
+ }
SpanDecorator sd = getSpanDecorator(ese.getEndpoint());
if (!sd.newSpan()) {
return;
@@ -270,7 +274,6 @@ public class OpenTracingTracer extends ServiceSupport implements RoutePolicyFact
// Check if continuing exchange on same thread
if (exchange.getProperties().containsKey(MANAGED_SPAN_PROPERTY)) {
spanManager.activate((SpanManager.ManagedSpan)exchange.getProperty(MANAGED_SPAN_PROPERTY));
- exchange.setProperty(MANAGED_SPAN_PROPERTY, null);
}
SpanDecorator sd = getSpanDecorator(route.getEndpoint());
Span span = tracer.buildSpan(sd.getOperationName(exchange, route.getEndpoint()))
@@ -279,7 +282,7 @@ public class OpenTracingTracer extends ServiceSupport implements RoutePolicyFact
.withTag(Tags.SPAN_KIND.getKey(), sd.getReceiverSpanKind())
.start();
sd.pre(span, exchange, route.getEndpoint());
- spanManager.activate(span);
+ exchange.setProperty(MANAGED_SPAN_PROPERTY, spanManager.activate(span));
if (LOG.isTraceEnabled()) {
LOG.trace("OpenTracing: start server span=" + span);
}
@@ -301,6 +304,7 @@ public class OpenTracingTracer extends ServiceSupport implements RoutePolicyFact
sd.post(managedSpan.getSpan(), exchange, route.getEndpoint());
managedSpan.getSpan().finish();
managedSpan.deactivate();
+ exchange.setProperty(MANAGED_SPAN_PROPERTY, null);
} else {
LOG.warn("OpenTracing: could not find managed span for exchange=" + exchange);
}