Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,9 @@ protected SpanAdapter startExchangeBeginSpan(
Exchange exchange, SpanDecorator sd, String operationName, org.apache.camel.tracing.SpanKind kind,
SpanAdapter parent) {
boolean parentPresent = parent != null;
Observation.Context context
= parentPresent ? new Observation.Context() : spanKindToContextOnExtract(kind, sd, exchange);
context.put(SPAN_DECORATOR_INTERNAL, sd instanceof AbstractInternalSpanDecorator);
Observation.Context context = spanKindToContextOnExtract(kind, sd, exchange);
boolean internalSpanDecorator = sd instanceof AbstractInternalSpanDecorator;
context.put(SPAN_DECORATOR_INTERNAL, internalSpanDecorator);
Observation observation = Observation.createNotStarted(operationName, () -> context, observationRegistry);
if (parentPresent) {
observation.parentObservation(getParentObservation(parent));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,28 @@
class ABCRouteTest extends CamelMicrometerObservationTestSupport {
private static SpanTestData[] testdata = {
new SpanTestData().setLabel("seda:b server").setUri("seda://b").setOperation("b")
.setParentId(2),
.setKind(SpanKind.SERVER)
.setParentId(1),
new SpanTestData().setLabel("seda:b server").setUri("seda://b").setOperation("b")
.setKind(SpanKind.CLIENT)
.setParentId(4),
new SpanTestData().setLabel("seda:c server").setUri("seda://c").setOperation("c")
.setParentId(2),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setKind(SpanKind.SERVER)
.setParentId(3),
new SpanTestData().setLabel("seda:c server").setUri("seda://c").setOperation("c")
.setKind(SpanKind.CLIENT)
.setParentId(4),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setKind(SpanKind.SERVER)
.setParentId(5),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setKind(SpanKind.CLIENT)
.setParentId(6),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
.setKind(SpanKind.SERVER)
.setParentId(7),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
.setKind(SpanKind.CLIENT)
};

ABCRouteTest() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,13 @@
import io.micrometer.tracing.otel.bridge.OtelCurrentTraceContext;
import io.micrometer.tracing.otel.bridge.OtelPropagator;
import io.micrometer.tracing.otel.bridge.OtelTracer;
import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.ContextPropagators;
import io.opentelemetry.context.propagation.TextMapPropagator;
import io.opentelemetry.extension.trace.propagation.B3Propagator;
import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter;
import io.opentelemetry.sdk.trace.ReadWriteSpan;
Expand Down Expand Up @@ -99,7 +102,7 @@ protected CamelContext createCamelContext() throws Exception {

io.micrometer.tracing.Tracer otelTracer = otelTracer();
OtelPropagator otelPropagator
= new OtelPropagator(ContextPropagators.create(B3Propagator.injectingSingleHeader()), tracer);
= new OtelPropagator(ContextPropagators.create(TextMapPropagator.composite(W3CTraceContextPropagator.getInstance(), W3CBaggagePropagator.getInstance())), tracer);
observationRegistry.observationConfig().observationHandler(
new ObservationHandler.FirstMatchingCompositeObservationHandler(
new PropagatingSenderTracingObservationHandler<>(otelTracer, otelPropagator),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,28 @@ class ClientRecipientListRouteTest extends CamelMicrometerObservationTestSupport

private static SpanTestData[] testdata = {
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setParentId(3),
.setKind(SpanKind.SERVER)
.setParentId(1),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setParentId(6)
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("seda:b server").setUri("seda://b").setOperation("b")
.setKind(SpanKind.SERVER)
.setParentId(3),
new SpanTestData().setLabel("seda:b server").setUri("seda://b").setOperation("b")
.setParentId(6)
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("seda:c server").setUri("seda://c").setOperation("c")
.setParentId(3),
.setKind(SpanKind.SERVER)
.setParentId(5),
new SpanTestData().setLabel("seda:c server").setUri("seda://c").setOperation("c")
.setParentId(6)
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
.setKind(SpanKind.SERVER)
.setParentId(7),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
.setKind(SpanKind.CLIENT)
};

ClientRecipientListRouteTest() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,9 @@ void testSync() {
SpanTestData[] expectedSpans = {
new SpanTestData().setLabel("syncmock:result").setUri("syncmock://result").setOperation("syncmock")
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("direct:bar").setUri("direct://bar").setOperation("bar").setKind(SpanKind.SERVER)
new SpanTestData().setLabel("direct:bar").setUri("direct://bar").setOperation("bar")
.setKind(SpanKind.SERVER),
new SpanTestData().setLabel("direct:bar").setUri("direct://bar").setOperation("bar").setKind(SpanKind.CLIENT)
};

// sync pipeline
Expand All @@ -93,7 +95,9 @@ void testSyncToAsync() {
SpanTestData[] expectedSpans = {
new SpanTestData().setLabel("asyncmock1:result").setUri("asyncmock1://result").setOperation("asyncmock1")
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("direct:foo").setUri("direct://foo").setOperation("foo").setKind(SpanKind.SERVER)
new SpanTestData().setLabel("direct:foo").setUri("direct://foo").setOperation("foo")
.setKind(SpanKind.SERVER),
new SpanTestData().setLabel("direct:foo").setUri("direct://foo").setOperation("foo").setKind(SpanKind.CLIENT)
};

// sync to async pipeline
Expand All @@ -112,7 +116,8 @@ void testAsyncToSync() {
SpanTestData[] expectedSpans = {
new SpanTestData().setLabel("syncmock:result").setUri("syncmock://result").setOperation("syncmock")
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("asyncmock1:start").setUri("asyncmock1://start").setOperation("asyncmock1"),
new SpanTestData().setLabel("asyncmock1:start").setUri("asyncmock1://start").setOperation("asyncmock1")
.setKind(SpanKind.SERVER),
new SpanTestData().setLabel("asyncmock1:start").setUri("asyncmock1://start").setOperation("asyncmock1")
.setKind(SpanKind.CLIENT),
};
Expand All @@ -130,7 +135,8 @@ void testAsyncToAsync() {
SpanTestData[] expectedSpans = {
new SpanTestData().setLabel("asyncmock2:result").setUri("asyncmock2://result").setOperation("asyncmock2")
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("asyncmock2:start").setUri("asyncmock2://start").setOperation("asyncmock2"),
new SpanTestData().setLabel("asyncmock2:start").setUri("asyncmock2://start").setOperation("asyncmock2")
.setKind(SpanKind.SERVER),
new SpanTestData().setLabel("asyncmock2:start").setUri("asyncmock2://start").setOperation("asyncmock2")
.setKind(SpanKind.CLIENT),
};
Expand All @@ -146,7 +152,8 @@ void testAsyncToAsync() {
@Test
void testAsyncFailure() {
SpanTestData[] expectedSpans = {
new SpanTestData().setLabel("asyncmock:fail").setUri("asyncmock://fail").setOperation("asyncmock"),
new SpanTestData().setLabel("asyncmock:fail").setUri("asyncmock://fail").setOperation("asyncmock")
.setKind(SpanKind.SERVER),
new SpanTestData().setLabel("asyncmock:fail").setUri("asyncmock://fail").setOperation("asyncmock")
.setKind(SpanKind.CLIENT),
};
Expand All @@ -172,7 +179,9 @@ void testMulticastAsync() {
new SpanTestData().setLabel("syncmock:result").setUri("syncmock://result").setOperation("syncmock")
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("direct:start").setUri("direct://start").setOperation("start")
.setKind(SpanKind.SERVER)
.setKind(SpanKind.SERVER),
new SpanTestData().setLabel("direct:start").setUri("direct://start").setOperation("start")
.setKind(SpanKind.CLIENT)
};

// sync pipeline
Expand All @@ -192,7 +201,7 @@ void testContextDoesNotLeak() {
assertFalse(Span.current().getSpanContext().isValid());
}

verifyTraceSpanNumbers(30, 10);
verifyTraceSpanNumbers(30, 11);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,25 @@ class CustomComponentNameRouteTest extends CamelMicrometerObservationTestSupport

private static SpanTestData[] testdata = {
new SpanTestData().setLabel("myseda:b server").setUri("myseda://b").setOperation("b")
.setParentId(2),
.setKind(SpanKind.SERVER)
.setParentId(1),
new SpanTestData().setLabel("myseda:b server").setUri("myseda://b").setOperation("b").setKind(SpanKind.CLIENT)
.setParentId(4),
new SpanTestData().setLabel("myseda:c server").setUri("myseda://c").setOperation("c")
.setParentId(2),
new SpanTestData().setLabel("myseda:a server").setUri("myseda://a").setOperation("a")
.setKind(SpanKind.SERVER)
.setParentId(3),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
new SpanTestData().setLabel("myseda:c server").setUri("myseda://c").setOperation("c").setKind(SpanKind.CLIENT)
.setParentId(4),
new SpanTestData().setLabel("myseda:a server").setUri("myseda://a").setOperation("a")
.setKind(SpanKind.SERVER)
.setParentId(5),
new SpanTestData().setLabel("myseda:a server").setUri("myseda://a").setOperation("a")
.setParentId(6)
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
.setKind(SpanKind.SERVER).setParentId(7),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
.setKind(SpanKind.CLIENT)
};

CustomComponentNameRouteTest() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,27 @@ class MulticastParallelRouteTest extends CamelMicrometerObservationTestSupport {

private static SpanTestData[] testdata = {
new SpanTestData().setLabel("seda:b server").setUri("seda://b").setOperation("b")
.setParentId(2),
.setKind(SpanKind.SERVER)
.setParentId(1),
new SpanTestData().setLabel("seda:b server").setUri("seda://b").setOperation("b")
.setParentId(4)
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("seda:c server").setUri("seda://c").setOperation("c")
.setParentId(2),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setKind(SpanKind.SERVER)
.setParentId(3),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
new SpanTestData().setLabel("seda:c server").setUri("seda://c").setOperation("c")
.setParentId(4)
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setKind(SpanKind.SERVER)
.setParentId(5),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setParentId(6)
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
.setKind(SpanKind.SERVER).setParentId(7),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
.setKind(SpanKind.CLIENT)
};

MulticastParallelRouteTest() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,26 @@ class MulticastRouteTest extends CamelMicrometerObservationTestSupport {

private static SpanTestData[] testdata = {
new SpanTestData().setLabel("seda:b server").setUri("seda://b").setOperation("b")
.setParentId(2),
.setKind(SpanKind.SERVER)
.setParentId(1),
new SpanTestData().setLabel("seda:b server").setUri("seda://b").setOperation("b")
.setKind(SpanKind.CLIENT)
.setParentId(4),
new SpanTestData().setLabel("seda:c server").setUri("seda://c").setOperation("c")
.setParentId(2),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setKind(SpanKind.SERVER)
.setParentId(3),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
new SpanTestData().setLabel("seda:c server").setUri("seda://c").setOperation("c")
.setKind(SpanKind.CLIENT)
.setParentId(4),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setKind(SpanKind.SERVER)
.setParentId(5),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setKind(SpanKind.CLIENT)
.setParentId(6),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
.setKind(SpanKind.SERVER).setParentId(7),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start").setKind(SpanKind.CLIENT)
};

MulticastRouteTest() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,17 @@
class RouteConcurrentTest extends CamelMicrometerObservationTestSupport {

private static SpanTestData[] testdata = {
new SpanTestData().setLabel("seda:foo server").setUri("seda://foo").setOperation("foo")
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("seda:bar server").setUri("seda://bar").setOperation("bar")
.setParentId(2)
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("seda:foo server").setUri("seda://foo?concurrentConsumers=5").setOperation("foo")
.setKind(SpanKind.SERVER),
.setKind(SpanKind.SERVER)
.setParentId(0),
new SpanTestData().setLabel("seda:bar server").setUri("seda://bar?concurrentConsumers=5").setOperation("bar")
.setParentId(0)
.setKind(SpanKind.SERVER)
.setParentId(1),
};

RouteConcurrentTest() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,27 @@ class SpanProcessorsTest extends CamelMicrometerObservationTestSupport {

private static final SpanTestData[] TEST_DATA = {
new SpanTestData().setLabel("seda:b server").setUri("seda://b").setOperation("b")
.setParentId(2)
.setKind(SpanKind.SERVER)
.setParentId(1)
.addTag("b-tag", "request-header-value"),
new SpanTestData().setLabel("seda:b server").setUri("seda://b").setOperation("b")
.setKind(SpanKind.CLIENT)
.setParentId(4),
new SpanTestData().setLabel("seda:c server").setUri("seda://c").setOperation("c")
.setParentId(2),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setKind(SpanKind.SERVER)
.setParentId(3),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
new SpanTestData().setLabel("seda:c server").setUri("seda://c").setOperation("c")
.setKind(SpanKind.CLIENT)
.setParentId(4),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setKind(SpanKind.SERVER)
.setParentId(5),
new SpanTestData().setLabel("seda:a server").setUri("seda://a").setOperation("a")
.setKind(SpanKind.CLIENT)
.setParentId(6),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
.setKind(SpanKind.SERVER).setParentId(7),
new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start").setKind(SpanKind.CLIENT)
};

SpanProcessorsTest() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,17 @@
class TwoServiceTest extends CamelMicrometerObservationTestSupport {

private static SpanTestData[] testdata = {
new SpanTestData().setLabel("ServiceB server").setUri("direct://ServiceB").setOperation("service-b")
.setParentId(1),
new SpanTestData().setLabel("ServiceB server").setUri("direct://ServiceB").setOperation("ServiceB")
.setParentId(1)
.setKind(SpanKind.SERVER),
new SpanTestData().setLabel("ServiceB server").setUri("direct://ServiceB").setOperation("ServiceB")
.setParentId(2)
.setKind(SpanKind.CLIENT),
new SpanTestData().setLabel("ServiceA server").setUri("direct://ServiceA").setOperation("ServiceA")
.setKind(SpanKind.SERVER)
.setParentId(3)
.setKind(SpanKind.SERVER),
new SpanTestData().setLabel("ServiceA server").setUri("direct://ServiceA").setOperation("ServiceA")
.setKind(SpanKind.CLIENT)
};

TwoServiceTest() {
Expand Down
Loading