This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new a1802ab Update opentelemetry to 0.11 (#4684)
a1802ab is described below
commit a1802ab9792b41180d21ea85f712dcb2691a31e4
Author: Ruben Vargas Palma <[email protected]>
AuthorDate: Thu Nov 26 23:41:41 2020 -0600
Update opentelemetry to 0.11 (#4684)
Signed-off-by: Ruben Vargas <[email protected]>
---
components/camel-opentelemetry/pom.xml | 8 +--
.../camel/opentelemetry/AttributeProcessor.java | 4 +-
.../opentelemetry/OpenTelemetrySpanAdapter.java | 73 ++++++++++------------
.../camel/opentelemetry/OpenTelemetryTracer.java | 56 ++++++++---------
.../propagators/OpenTelemetryGetter.java | 5 ++
.../CamelOpenTelemetryTestSupport.java | 56 ++++++++---------
.../apache/camel/opentelemetry/SpanTestData.java | 2 +-
.../org/apache/camel/tracing/ExtractAdapter.java | 3 +
.../propagation/CamelHeadersExtractAdapter.java | 6 ++
.../CamelMessagingHeadersExtractAdapter.java | 6 ++
parent/pom.xml | 2 +-
11 files changed, 114 insertions(+), 107 deletions(-)
diff --git a/components/camel-opentelemetry/pom.xml
b/components/camel-opentelemetry/pom.xml
index bbe36d1..1b3a869 100644
--- a/components/camel-opentelemetry/pom.xml
+++ b/components/camel-opentelemetry/pom.xml
@@ -64,11 +64,6 @@
<version>${opentelemetry-version}</version>
</dependency>
<dependency>
- <groupId>io.opentelemetry</groupId>
- <artifactId>opentelemetry-exporters-otlp</artifactId>
- <version>${opentelemetry-version}</version>
- </dependency>
- <dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<scope>test</scope>
@@ -80,8 +75,9 @@
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
- <artifactId>opentelemetry-exporters-inmemory</artifactId>
+ <artifactId>opentelemetry-sdk-testing</artifactId>
<version>${opentelemetry-version}</version>
+ <scope>test</scope>
</dependency>
</dependencies>
diff --git
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/AttributeProcessor.java
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/AttributeProcessor.java
index 12b0249..104e97a 100644
---
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/AttributeProcessor.java
+++
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/AttributeProcessor.java
@@ -16,7 +16,7 @@
*/
package org.apache.camel.opentelemetry;
-import io.opentelemetry.trace.Span;
+import io.opentelemetry.api.trace.Span;
import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
@@ -30,7 +30,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * A processor which adds a attribute on the active {@link
io.opentelemetry.trace.Span} with an
+ * A processor which adds a attribute on the active {@link
io.opentelemetry.api.trace.Span} with an
* {@link org.apache.camel.Expression}
*/
public class AttributeProcessor extends AsyncProcessorSupport implements
Traceable, IdAware, RouteIdAware {
diff --git
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetrySpanAdapter.java
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetrySpanAdapter.java
index 06b47aa..b62f1ed 100644
---
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetrySpanAdapter.java
+++
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetrySpanAdapter.java
@@ -19,49 +19,44 @@ package org.apache.camel.opentelemetry;
import java.util.EnumMap;
import java.util.Map;
-import io.opentelemetry.OpenTelemetry;
-import io.opentelemetry.common.AttributeValue;
-import io.opentelemetry.common.Attributes;
-import io.opentelemetry.correlationcontext.CorrelationContext;
-import io.opentelemetry.correlationcontext.CorrelationContextManager;
-import io.opentelemetry.correlationcontext.EntryMetadata;
-import io.opentelemetry.trace.attributes.SemanticAttributes;
+import io.opentelemetry.api.baggage.Baggage;
+import io.opentelemetry.api.baggage.BaggageBuilder;
+import io.opentelemetry.api.baggage.EntryMetadata;
+import io.opentelemetry.api.common.Attributes;
+import io.opentelemetry.api.common.AttributesBuilder;
+import io.opentelemetry.api.trace.attributes.SemanticAttributes;
+import io.opentelemetry.context.Context;
import org.apache.camel.tracing.SpanAdapter;
import org.apache.camel.tracing.Tag;
public class OpenTelemetrySpanAdapter implements SpanAdapter {
- static final EntryMetadata DEFAULT_ENTRY_METADATA =
EntryMetadata.create(EntryMetadata.EntryTtl.UNLIMITED_PROPAGATION);
private static final String DEFAULT_EVENT_NAME = "log";
private static EnumMap<Tag, String> tagMap = new EnumMap<>(Tag.class);
static {
tagMap.put(Tag.COMPONENT, "component");
- tagMap.put(Tag.DB_TYPE, SemanticAttributes.DB_SYSTEM.key());
- tagMap.put(Tag.DB_STATEMENT, SemanticAttributes.DB_STATEMENT.key());
- tagMap.put(Tag.DB_INSTANCE, SemanticAttributes.DB_NAME.key());
- tagMap.put(Tag.HTTP_METHOD, SemanticAttributes.HTTP_METHOD.key());
- tagMap.put(Tag.HTTP_STATUS, SemanticAttributes.HTTP_STATUS_CODE.key());
- tagMap.put(Tag.HTTP_URL, SemanticAttributes.HTTP_URL.key());
+ tagMap.put(Tag.DB_TYPE, SemanticAttributes.DB_SYSTEM.getKey());
+ tagMap.put(Tag.DB_STATEMENT, SemanticAttributes.DB_STATEMENT.getKey());
+ tagMap.put(Tag.DB_INSTANCE, SemanticAttributes.DB_NAME.getKey());
+ tagMap.put(Tag.HTTP_METHOD, SemanticAttributes.HTTP_METHOD.getKey());
+ tagMap.put(Tag.HTTP_STATUS,
SemanticAttributes.HTTP_STATUS_CODE.getKey());
+ tagMap.put(Tag.HTTP_URL, SemanticAttributes.HTTP_URL.getKey());
tagMap.put(Tag.MESSAGE_BUS_DESTINATION, "message_bus.destination");
}
- io.opentelemetry.trace.Span span;
- private CorrelationContextManager contextManager;
- private CorrelationContext correlationContext;
- private OpenTelemetrySpanAdapter parent;
+ private Baggage baggage;
+ private io.opentelemetry.api.trace.Span span;
- OpenTelemetrySpanAdapter(io.opentelemetry.trace.Span span) {
+ OpenTelemetrySpanAdapter(io.opentelemetry.api.trace.Span span) {
this.span = span;
- this.contextManager = OpenTelemetry.getCorrelationContextManager();
}
- OpenTelemetrySpanAdapter(io.opentelemetry.trace.Span span,
CorrelationContext correlationContext) {
+ OpenTelemetrySpanAdapter(io.opentelemetry.api.trace.Span span, Baggage
baggage) {
this.span = span;
- this.contextManager = OpenTelemetry.getCorrelationContextManager();
- this.correlationContext = correlationContext;
+ this.baggage = baggage;
}
- io.opentelemetry.trace.Span getOpenTelemetrySpan() {
+ io.opentelemetry.api.trace.Span getOpenTelemetrySpan() {
return this.span;
}
@@ -115,7 +110,7 @@ public class OpenTelemetrySpanAdapter implements
SpanAdapter {
}
Attributes convertToAttributes(Map<String, ?> fields) {
- Attributes.Builder attributesBuilder = Attributes.newBuilder();
+ AttributesBuilder attributesBuilder = Attributes.builder();
for (Map.Entry<String, ?> entry : fields.entrySet()) {
String key = entry.getKey();
@@ -127,37 +122,37 @@ public class OpenTelemetrySpanAdapter implements
SpanAdapter {
|| value instanceof Short
|| value instanceof Integer
|| value instanceof Long) {
- attributesBuilder.setAttribute(key,
AttributeValue.longAttributeValue(((Number) value).longValue()));
+ attributesBuilder.put(key, ((Number) value).longValue());
} else if (value instanceof Float || value instanceof Double) {
- attributesBuilder.setAttribute(key,
AttributeValue.doubleAttributeValue(((Number) value).doubleValue()));
+ attributesBuilder.put(key, ((Number) value).doubleValue());
} else if (value instanceof Boolean) {
- attributesBuilder.setAttribute(key,
AttributeValue.booleanAttributeValue((Boolean) value));
+ attributesBuilder.put(key, (Boolean) value);
} else {
- attributesBuilder.setAttribute(key,
AttributeValue.stringAttributeValue(value.toString()));
+ attributesBuilder.put(key, value.toString());
}
}
return attributesBuilder.build();
}
- public CorrelationContext getCorrelationContext() {
- return this.correlationContext;
+ public Baggage getBaggage() {
+ return this.baggage;
}
- public void setCorrelationContext(CorrelationContext correlationContext) {
- this.correlationContext = correlationContext;
+ public void setBaggage(Baggage baggage) {
+ this.baggage = baggage;
}
public void setCorrelationContextItem(String key, String value) {
- CorrelationContext.Builder builder = contextManager.contextBuilder();
- if (correlationContext != null) {
- builder = builder.setParent(correlationContext);
+ BaggageBuilder builder = Baggage.builder();
+ if (baggage != null) {
+ builder = builder.setParent(Context.current().with(baggage));
}
- correlationContext = builder.put(key, value,
DEFAULT_ENTRY_METADATA).build();
+ baggage = builder.put(key, value, EntryMetadata.EMPTY).build();
}
public String getContextPropagationItem(String key) {
- if (correlationContext != null) {
- return correlationContext.getEntryValue(key);
+ if (baggage != null) {
+ return baggage.getEntryValue(key);
}
return null;
}
diff --git
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetryTracer.java
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetryTracer.java
index a3c1d90..0d5a3cd 100644
---
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetryTracer.java
+++
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetryTracer.java
@@ -18,15 +18,12 @@ package org.apache.camel.opentelemetry;
import java.util.Set;
-import io.grpc.Context;
-import io.opentelemetry.OpenTelemetry;
-import io.opentelemetry.correlationcontext.CorrelationContext;
-import io.opentelemetry.correlationcontext.CorrelationsContextUtils;
-import io.opentelemetry.trace.DefaultTracer;
-import io.opentelemetry.trace.Span;
-import io.opentelemetry.trace.SpanContext;
-import io.opentelemetry.trace.Tracer;
-import io.opentelemetry.trace.TracingContextUtils;
+import io.opentelemetry.api.OpenTelemetry;
+import io.opentelemetry.api.baggage.Baggage;
+import io.opentelemetry.api.trace.Span;
+import io.opentelemetry.api.trace.SpanBuilder;
+import io.opentelemetry.api.trace.Tracer;
+import io.opentelemetry.context.Context;
import org.apache.camel.Exchange;
import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.opentelemetry.propagators.OpenTelemetryGetter;
@@ -81,52 +78,51 @@ public class OpenTelemetryTracer extends
org.apache.camel.tracing.Tracer {
}
if (tracer == null) {
- tracer = OpenTelemetry.getTracer(instrumentationName);
+ tracer = OpenTelemetry.get().getTracer(instrumentationName);
}
if (tracer == null) {
// No tracer is available, so setup NoopTracer
- tracer = DefaultTracer.getInstance();
+ tracer = Tracer.getDefault();
}
}
@Override
protected SpanAdapter startSendingEventSpan(String operationName, SpanKind
kind, SpanAdapter parent) {
- Span.Builder builder =
tracer.spanBuilder(operationName).setSpanKind(mapToSpanKind(kind));
- CorrelationContext correlationContext = null;
+ Baggage baggage = null;
+ SpanBuilder builder =
tracer.spanBuilder(operationName).setSpanKind(mapToSpanKind(kind));
if (parent != null) {
OpenTelemetrySpanAdapter oTelSpanWrapper =
(OpenTelemetrySpanAdapter) parent;
Span parentSpan = oTelSpanWrapper.getOpenTelemetrySpan();
- correlationContext = oTelSpanWrapper.getCorrelationContext();
- builder = builder.setParent(parentSpan);
+ baggage = oTelSpanWrapper.getBaggage();
+ builder = builder.setParent(Context.current().with(parentSpan));
}
- return new OpenTelemetrySpanAdapter(builder.startSpan(),
correlationContext);
+ return new OpenTelemetrySpanAdapter(builder.startSpan(), baggage);
}
@Override
protected SpanAdapter startExchangeBeginSpan(
Exchange exchange, SpanDecorator sd, String operationName,
SpanKind kind, SpanAdapter parent) {
- Span.Builder builder = tracer.spanBuilder(operationName);
- CorrelationContext correlationContext = null;
+ SpanBuilder builder = tracer.spanBuilder(operationName);
+ Baggage baggage;
if (parent != null) {
OpenTelemetrySpanAdapter spanFromExchange =
(OpenTelemetrySpanAdapter) parent;
- builder =
builder.setParent(spanFromExchange.getOpenTelemetrySpan());
- correlationContext = spanFromExchange.getCorrelationContext();
+ builder =
builder.setParent(Context.current().with(spanFromExchange.getOpenTelemetrySpan()));
+ baggage = spanFromExchange.getBaggage();
} else {
ExtractAdapter adapter =
sd.getExtractAdapter(exchange.getIn().getHeaders(), encoding);
- Context ctx =
OpenTelemetry.getPropagators().getTextMapPropagator().extract(Context.current(),
adapter,
+ Context ctx =
OpenTelemetry.get().getPropagators().getTextMapPropagator().extract(Context.current(),
adapter,
new OpenTelemetryGetter(adapter));
- Span span = TracingContextUtils.getSpan(ctx);
- SpanContext parentFromHeaders = span.getContext();
- correlationContext =
CorrelationsContextUtils.getCorrelationContext(ctx);
- if (parentFromHeaders != null && parentFromHeaders.isValid()) {
-
builder.setParent(parentFromHeaders).setSpanKind(mapToSpanKind(sd.getReceiverSpanKind()));
+ Span span = Span.fromContext(ctx);
+ baggage = Baggage.fromContext(ctx);
+ if (span != null && span.getSpanContext().isValid()) {
+
builder.setParent(ctx).setSpanKind(mapToSpanKind(sd.getReceiverSpanKind()));
} else if (!(sd instanceof AbstractInternalSpanDecorator)) {
builder.setSpanKind(mapToSpanKind(sd.getReceiverSpanKind()));
}
}
- return new OpenTelemetrySpanAdapter(builder.startSpan(),
correlationContext);
+ return new OpenTelemetrySpanAdapter(builder.startSpan(), baggage);
}
@Override
@@ -138,9 +134,9 @@ public class OpenTelemetryTracer extends
org.apache.camel.tracing.Tracer {
@Override
protected void inject(SpanAdapter span, InjectAdapter adapter) {
OpenTelemetrySpanAdapter spanFromExchange = (OpenTelemetrySpanAdapter)
span;
- Context context =
TracingContextUtils.withSpan(spanFromExchange.getOpenTelemetrySpan(),
Context.current());
- context =
CorrelationsContextUtils.withCorrelationContext(spanFromExchange.getCorrelationContext(),
context);
- OpenTelemetry.getPropagators().getTextMapPropagator().inject(context,
adapter, new OpenTelemetrySetter());
+ Span otelSpan = spanFromExchange.getOpenTelemetrySpan();
+ Context ctx =
Context.current().with(otelSpan).with(spanFromExchange.getBaggage());
+
OpenTelemetry.get().getPropagators().getTextMapPropagator().inject(ctx,
adapter, new OpenTelemetrySetter());
}
}
diff --git
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/propagators/OpenTelemetryGetter.java
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/propagators/OpenTelemetryGetter.java
index 2254270..856c721 100644
---
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/propagators/OpenTelemetryGetter.java
+++
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/propagators/OpenTelemetryGetter.java
@@ -28,6 +28,11 @@ public class OpenTelemetryGetter implements
TextMapPropagator.Getter<ExtractAdap
}
@Override
+ public Iterable<String> keys(ExtractAdapter extractAdapter) {
+ return adapter.keys();
+ }
+
+ @Override
public String get(ExtractAdapter adapter, String key) {
return (String) adapter.get(key);
}
diff --git
a/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/CamelOpenTelemetryTestSupport.java
b/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/CamelOpenTelemetryTestSupport.java
index 32d5f1c..d7631c0 100644
---
a/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/CamelOpenTelemetryTestSupport.java
+++
b/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/CamelOpenTelemetryTestSupport.java
@@ -26,12 +26,12 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
-import io.opentelemetry.exporters.inmemory.InMemoryTracing;
-import io.opentelemetry.sdk.OpenTelemetrySdk;
+import io.opentelemetry.api.common.AttributeKey;
+import io.opentelemetry.api.trace.Tracer;
+import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.trace.data.SpanData;
-import io.opentelemetry.trace.TraceId;
-import io.opentelemetry.trace.Tracer;
+import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
import org.apache.camel.CamelContext;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.apache.camel.tracing.SpanDecorator;
@@ -41,10 +41,17 @@ import static
org.junit.jupiter.api.Assertions.assertNotNull;
public class CamelOpenTelemetryTestSupport extends CamelTestSupport {
- InMemoryTracing inMemorytracing;
+ static final AttributeKey<String> CAMEL_URI_KEY =
AttributeKey.stringKey("camel-uri");
+ static final AttributeKey<String> COMPONENT_KEY =
AttributeKey.stringKey("component");
+ static final AttributeKey<String> PRE_KEY = AttributeKey.stringKey("pre");
+ static final AttributeKey<String> POST_KEY =
AttributeKey.stringKey("post");
+ static final AttributeKey<String> MESSAGE_KEY =
AttributeKey.stringKey("message");
+
+ private InMemorySpanExporter inMemorySpanExporter =
InMemorySpanExporter.create();
private SpanTestData[] testdata;
private Tracer tracer;
private OpenTelemetryTracer ottracer;
+ private TracerSdkProvider tracerFactory =
TracerSdkProvider.builder().build();
public CamelOpenTelemetryTestSupport(SpanTestData[] testdata) {
this.testdata = testdata;
@@ -54,9 +61,8 @@ public class CamelOpenTelemetryTestSupport extends
CamelTestSupport {
protected CamelContext createCamelContext() throws Exception {
CamelContext context = super.createCamelContext();
ottracer = new OpenTelemetryTracer();
- TracerSdkProvider provider =
OpenTelemetrySdk.getTracerProvider().builder().build();
- inMemorytracing =
InMemoryTracing.builder().setTracerProvider(provider).build();
- tracer = provider.get("tracerTest");
+
tracerFactory.addSpanProcessor(SimpleSpanProcessor.builder(inMemorySpanExporter).build());
+ tracer = tracerFactory.get("tracerTest");
ottracer.setTracer(tracer);
ottracer.setExcludePatterns(getExcludePatterns());
ottracer.addDecorator(new TestSEDASpanDecorator());
@@ -73,10 +79,10 @@ public class CamelOpenTelemetryTestSupport extends
CamelTestSupport {
}
protected void verify(boolean async) {
- List<SpanData> spans =
inMemorytracing.getSpanExporter().getFinishedSpanItems();
+ List<SpanData> spans = inMemorySpanExporter.getFinishedSpanItems();
spans.forEach(mockSpan -> {
System.out.println("Span: " + mockSpan);
- System.out.println("\tComponent: " +
mockSpan.getAttributes().get("component"));
+ System.out.println("\tComponent: " +
mockSpan.getAttributes().get(COMPONENT_KEY));
System.out.println("\tTags: " + mockSpan.getAttributes());
System.out.println("\tLogs: ");
@@ -99,8 +105,8 @@ public class CamelOpenTelemetryTestSupport extends
CamelTestSupport {
protected SpanData findSpan(SpanTestData testdata, List<SpanData> spans) {
return spans.stream().filter(s -> {
boolean matched = s.getName().equals(testdata.getOperation());
- if (s.getAttributes().get("camel-uri") != null) {
- matched = matched &&
s.getAttributes().get("camel.uri").equals(testdata.getUri());
+ if (s.getAttributes().get(CAMEL_URI_KEY) != null) {
+ matched = matched &&
s.getAttributes().get(CAMEL_URI_KEY).equals(testdata.getUri());
}
matched = matched && s.getKind().equals(testdata.getKind());
return matched;
@@ -112,22 +118,18 @@ public class CamelOpenTelemetryTestSupport extends
CamelTestSupport {
}
protected void verifyTraceSpanNumbers(int numOfTraces, int
numSpansPerTrace) {
- Map<TraceId, List<SpanData>> traces = new HashMap<>();
+ Map<String, List<SpanData>> traces = new HashMap<>();
- List<SpanData> finishedSpans =
inMemorytracing.getSpanExporter().getFinishedSpanItems();
+ List<SpanData> finishedSpans =
inMemorySpanExporter.getFinishedSpanItems();
// Sort spans into separate traces
for (int i = 0; i < finishedSpans.size(); i++) {
- List<SpanData> spans =
traces.get(finishedSpans.get(i).getTraceId());
- if (spans == null) {
- spans = new ArrayList<>();
- traces.put(finishedSpans.get(i).getTraceId(), spans);
- }
+ List<SpanData> spans =
traces.computeIfAbsent(finishedSpans.get(i).getTraceId(), k -> new
ArrayList<>());
spans.add(finishedSpans.get(i));
}
assertEquals(numOfTraces, traces.size());
- for (Map.Entry<TraceId, List<SpanData>> spans : traces.entrySet()) {
+ for (Map.Entry<String, List<SpanData>> spans : traces.entrySet()) {
assertEquals(numSpansPerTrace, spans.getValue().size());
}
}
@@ -136,7 +138,7 @@ public class CamelOpenTelemetryTestSupport extends
CamelTestSupport {
SpanData span = spans.get(index);
SpanTestData td = testdata[index];
- String component =
span.getAttributes().get("component").getStringValue();
+ String component = span.getAttributes().get(COMPONENT_KEY);
assertNotNull(component);
if (td.getUri() != null) {
@@ -144,8 +146,8 @@ public class CamelOpenTelemetryTestSupport extends
CamelTestSupport {
}
if ("camel-seda".equals(component)) {
- assertNotNull(span.getAttributes().get("pre"));
- assertNotNull(span.getAttributes().get("post"));
+ assertNotNull(span.getAttributes().get(PRE_KEY));
+ assertNotNull(span.getAttributes().get(POST_KEY));
}
assertEquals(td.getOperation(), span.getName(), td.getLabel());
@@ -155,8 +157,7 @@ public class CamelOpenTelemetryTestSupport extends
CamelTestSupport {
if (!td.getLogMessages().isEmpty()) {
assertEquals(td.getLogMessages().size(), span.getEvents().size(),
td.getLabel());
for (int i = 0; i < td.getLogMessages().size(); i++) {
- assertEquals(td.getLogMessages().get(i),
-
span.getEvents().get(i).getAttributes().get("message").getStringValue());
+ assertEquals(td.getLogMessages().get(i),
span.getEvents().get(i).getAttributes().get(MESSAGE_KEY));
}
}
@@ -165,15 +166,14 @@ public class CamelOpenTelemetryTestSupport extends
CamelTestSupport {
}
if (!td.getTags().isEmpty()) {
for (Map.Entry<String, String> entry : td.getTags().entrySet()) {
- assertEquals(entry.getValue(),
span.getAttributes().get(entry.getKey()).getStringValue());
+ assertEquals(entry.getValue(),
span.getAttributes().get(AttributeKey.stringKey(entry.getKey())));
}
}
}
protected void verifySameTrace() {
- assertEquals(1,
-
inMemorytracing.getSpanExporter().getFinishedSpanItems().stream().map(s ->
s.getTraceId()).distinct().count());
+ assertEquals(1,
inMemorySpanExporter.getFinishedSpanItems().stream().map(s ->
s.getTraceId()).distinct().count());
}
}
diff --git
a/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/SpanTestData.java
b/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/SpanTestData.java
index 9c9e64d..f7d8ba3 100644
---
a/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/SpanTestData.java
+++
b/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/SpanTestData.java
@@ -22,7 +22,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import io.opentelemetry.trace.Span;
+import io.opentelemetry.api.trace.Span;
public class SpanTestData {
diff --git
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/ExtractAdapter.java
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/ExtractAdapter.java
index cc670db..e2ed5bf 100644
---
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/ExtractAdapter.java
+++
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/ExtractAdapter.java
@@ -18,9 +18,12 @@ package org.apache.camel.tracing;
import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
public interface ExtractAdapter {
Iterator<Map.Entry<String, String>> iterator();
Object get(String key);
+
+ Set<String> keys();
}
diff --git
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersExtractAdapter.java
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersExtractAdapter.java
index f849d53..c1be58b 100644
---
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersExtractAdapter.java
+++
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersExtractAdapter.java
@@ -19,6 +19,7 @@ package org.apache.camel.tracing.propagation;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
import org.apache.camel.tracing.ExtractAdapter;
@@ -40,4 +41,9 @@ public final class CamelHeadersExtractAdapter implements
ExtractAdapter {
public Object get(String key) {
return this.map.get(key);
}
+
+ @Override
+ public Set<String> keys() {
+ return map.keySet();
+ }
}
diff --git
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapter.java
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapter.java
index 4c71cd3..4765a7c 100644
---
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapter.java
+++
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapter.java
@@ -20,6 +20,7 @@ import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
import org.apache.camel.tracing.ExtractAdapter;
@@ -50,6 +51,11 @@ public final class CamelMessagingHeadersExtractAdapter
implements ExtractAdapter
return this.map.get(key);
}
+ @Override
+ public Set<String> keys() {
+ return map.keySet();
+ }
+
/**
* Decode dashes (encoded in {@link CamelMessagingHeadersInjectAdapter}
Dash encoding and decoding is required by
* JMS. This is implemented here rather than specifically to JMS so that
other Camel messaging endpoints can take
diff --git a/parent/pom.xml b/parent/pom.xml
index dc26ce0..44318a1 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -436,7 +436,7 @@
<ognl-version>3.1.12</ognl-version>
<openjpa-version>3.1.2</openjpa-version>
<openstack4j-version>3.8</openstack4j-version>
- <opentelemetry-version>0.8.0</opentelemetry-version>
+ <opentelemetry-version>0.11.0</opentelemetry-version>
<!-- cannot upgrade opentracing until
https://github.com/eclipse/microprofile-opentracing v2 is released -->
<opentracing-version>0.31.0</opentracing-version>
<opentracing-tracerresolver-version>0.1.8</opentracing-tracerresolver-version>