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 2023/05/16 04:33:48 UTC
[camel] branch camel-3.x updated: Upgrades micrometer (#10091)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-3.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.x by this push:
new ab057a71bcb Upgrades micrometer (#10091)
ab057a71bcb is described below
commit ab057a71bcb133a07e5cc5b099a4bef79471d3b8
Author: Marcin Grzejszczak <mg...@vmware.com>
AuthorDate: Tue May 16 06:33:39 2023 +0200
Upgrades micrometer (#10091)
---
.../observation/MicrometerObservationTracer.java | 27 ++++++++++++++++++----
parent/pom.xml | 4 ++--
2 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/components/camel-observation/src/main/java/org/apache/camel/observation/MicrometerObservationTracer.java b/components/camel-observation/src/main/java/org/apache/camel/observation/MicrometerObservationTracer.java
index e8b931456f6..9097c6dcc4c 100644
--- a/components/camel-observation/src/main/java/org/apache/camel/observation/MicrometerObservationTracer.java
+++ b/components/camel-observation/src/main/java/org/apache/camel/observation/MicrometerObservationTracer.java
@@ -24,7 +24,9 @@ import io.micrometer.observation.transport.ReceiverContext;
import io.micrometer.observation.transport.RequestReplyReceiverContext;
import io.micrometer.observation.transport.RequestReplySenderContext;
import io.micrometer.observation.transport.SenderContext;
+import io.micrometer.tracing.Span;
import io.micrometer.tracing.Tracer;
+import io.micrometer.tracing.handler.TracingObservationHandler;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.api.management.ManagedResource;
@@ -130,18 +132,35 @@ public class MicrometerObservationTracer extends org.apache.camel.tracing.Tracer
@Override
protected SpanAdapter startSendingEventSpan(
- String operationName, SpanKind kind, SpanAdapter parentObservation, Exchange exchange,
+ String operationName, SpanKind kind, SpanAdapter parent, Exchange exchange,
InjectAdapter injectAdapter) {
Observation.Context context = spanKindToContextOnInject(kind, injectAdapter, exchange);
Observation observation = Observation.createNotStarted(CAMEL_CONTEXT_NAME, () -> context, observationRegistry);
observation.contextualName(operationName);
- if (parentObservation != null) {
- observation.parentObservation(getParentObservation(parentObservation));
+ Observation parentObservation = getParentObservation(parent);
+ Tracer.SpanInScope scope = null;
+ try {
+ if (parentObservation != observationRegistry.getCurrentObservation()) {
+ // Because Camel allows to close scopes multiple times
+ TracingObservationHandler.TracingContext tracingContext = parentObservation.getContextView().get(TracingObservationHandler.TracingContext.class);
+ Span parentSpan = tracingContext.getSpan();
+ scope = tracer.withSpan(parentSpan);
+ }
+ if (parentObservation != null) {
+ observation.parentObservation(parentObservation);
+ }
+ return new MicrometerObservationSpanAdapter(observation.start(), tracer);
+ } finally {
+ if (scope != null) {
+ scope.close();
+ }
}
- return new MicrometerObservationSpanAdapter(observation.start(), tracer);
}
private static Observation getParentObservation(SpanAdapter parentObservation) {
+ if (parentObservation == null) {
+ return null;
+ }
MicrometerObservationSpanAdapter observationWrapper = (MicrometerObservationSpanAdapter) parentObservation;
return observationWrapper.getMicrometerObservation();
}
diff --git a/parent/pom.xml b/parent/pom.xml
index 69bb99460d0..5b353cd8f17 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -393,8 +393,8 @@
<maven-wagon-version>3.5.2</maven-wagon-version>
<maven-war-plugin-version>3.3.1</maven-war-plugin-version>
<metrics-version>4.2.15</metrics-version>
- <micrometer-version>1.10.5</micrometer-version>
- <micrometer-tracing-version>1.0.3</micrometer-tracing-version>
+ <micrometer-version>1.10.7</micrometer-version>
+ <micrometer-tracing-version>1.0.6</micrometer-tracing-version>
<microprofile-config-version>2.0.1</microprofile-config-version>
<microprofile-metrics-version>3.0.1</microprofile-metrics-version>
<microprofile-fault-tolerance-version>3.0</microprofile-fault-tolerance-version>