This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch camel-quarkus-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus-examples.git
The following commit(s) were added to refs/heads/camel-quarkus-main by this
push:
new ab62afe4 Migrate Observability example from Jaeger to Tempo
ab62afe4 is described below
commit ab62afe4b95029a0f6ccfd5c0def5793d91e4e21
Author: Lukas Lowinger <[email protected]>
AuthorDate: Mon Feb 16 12:41:45 2026 +0100
Migrate Observability example from Jaeger to Tempo
Fixes apache/camel-quarkus#8163
---
observability/README.adoc | 23 ++++++++----------
observability/docker-compose.yml | 28 ----------------------
observability/pom.xml | 16 +++++++++++++
.../src/main/resources/application.properties | 3 +--
4 files changed, 27 insertions(+), 43 deletions(-)
diff --git a/observability/README.adoc b/observability/README.adoc
index a97eb282..e80262dc 100644
--- a/observability/README.adoc
+++ b/observability/README.adoc
@@ -29,7 +29,7 @@ It comes with the following capabilities.
* `camel-quarkus-microprofile-health` for health checks
* `camel-quarkus-management` for JMX monitoring and management
* `camel-quarkus-micrometer` for Micrometer metrics, together with support for
exporting them in Prometheus format
-* `camel-quarkus-opentelemetry` for tracing
+* `camel-quarkus-opentelemetry2` for tracing
The `camel-quarkus-observability-services` extension exposes the above
capabilities under a common HTTP endpoint context path of `/observe`.
@@ -144,13 +144,16 @@ You can also directly leverage MicroProfile Health APIs
to create checks. Class
=== Tracing
-To be able to diagnose problems in Camel Quarkus applications, It's useful to
instrument method calls, HTTP interactions etc with OpenTelemetry.
+To be able to diagnose problems in Camel Quarkus applications, it's useful to
instrument method calls, HTTP interactions etc with OpenTelemetry.
-Configure the OpenTelemetry exporter in `application.properties`:
+If you are running example in the Development mode, then Observability dev
service is enabled (for more information, visit
https://quarkus.io/guides/observability-devservices-lgtm[Observability Dev
Services with Grafana OTel LGTM]).
+Observability dev service will run OTel collector in the background and the
`quarkus.otel.exporter.otlp.endpoint` property is automatically set to the OTel
collector endpoint as seen from the outside of the Docker container.
+
+In production you would rather configure real OTel collector and you would
configure the OpenTelemetry exporter in `application.properties` as follows:
[source, text]
----
-# We are using a property placeholder to be able to test this example in
convenient way in a cloud environment
+# We are using a property placeholder to be able to use this example in
convenient way in a cloud environment
quarkus.otel.exporter.otlp.traces.endpoint =
http://${TELEMETRY_COLLECTOR_COLLECTOR_SERVICE_HOST:localhost}:4317
# To enable tracing (it is disabled by default via
camel-quarkus-observability-services)
quarkus.otel.sdk.disabled=false
@@ -158,17 +161,11 @@ quarkus.otel.sdk.disabled=false
NOTE: For information about other OpenTelemetry exporters, refer to the Camel
Quarkus OpenTelemetry
https://camel.apache.org/camel-quarkus/next/reference/extensions/opentelemetry.html#extensions-opentelemetry-usage-exporters[extension
documentation].
-To view tracing events, start a tracing server. A simple way of doing this is
with Docker Compose:
-
-[source,shell]
-----
-$ docker-compose up -d
-----
-
-With the server running, browse to http://localhost:16686. Then choose
'camel-quarkus-observability' from the 'Service' drop down and click the 'Find
Traces' button.
+To view tracing events find `grafana.endpoint` in your log (it will use random
port) browse to eg. http://localhost:32768.
+Then follow instructions at
https://quarkus.io/guides/observability-devservices-lgtm#explore.
The `platform-http` consumer route introduces a random delay to simulate
latency, hence the overall time of each trace should be different. When viewing
a trace, you should see
-a hierarchy of 6 spans showing the progression of the message exchange through
each endpoint.
+a hierarchy of 8 spans showing the progression of the message exchange through
each endpoint.
=== Jolokia & Hawtio
diff --git a/observability/docker-compose.yml b/observability/docker-compose.yml
deleted file mode 100644
index 38179d75..00000000
--- a/observability/docker-compose.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-version: "2"
-services:
-
- # Jaeger
- jaeger-all-in-one:
- image: jaegertracing/all-in-one:1.57
- ports:
- - "16686:16686"
- - "4317:4317"
- environment:
- - COLLECTOR_OTLP_ENABLED=true
\ No newline at end of file
diff --git a/observability/pom.xml b/observability/pom.xml
index 4d9913a1..d73689c4 100644
--- a/observability/pom.xml
+++ b/observability/pom.xml
@@ -99,6 +99,11 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-observability-devservices-lgtm</artifactId>
+ <scope>provided</scope>
+ </dependency>
<!-- test dependencies -->
<dependency>
@@ -435,5 +440,16 @@
</dependency>
</dependencies>
</profile>
+ <profile>
+ <id>skip-testcontainers-tests</id>
+ <activation>
+ <property>
+ <name>skip-testcontainers-tests</name>
+ </property>
+ </activation>
+ <properties>
+ <skipTests>true</skipTests>
+ </properties>
+ </profile>
</profiles>
</project>
diff --git a/observability/src/main/resources/application.properties
b/observability/src/main/resources/application.properties
index b8b7a645..036e4931 100644
--- a/observability/src/main/resources/application.properties
+++ b/observability/src/main/resources/application.properties
@@ -26,10 +26,9 @@ quarkus.management.port=9876
quarkus.application.name = camel-quarkus-observability
# Enables optional tracing of each Camel processor
-# quarkus.camel.opentelemetry.trace-processors=true
+# quarkus.camel.opentelemetry2.trace-processors=true
# For OTLP
-quarkus.otel.exporter.otlp.traces.endpoint =
http://${TELEMETRY_COLLECTOR_COLLECTOR_SERVICE_HOST:localhost}:4317
quarkus.otel.exporter.otlp.traces.timeout = 30s
# To enable tracing (it is disabled by default via
camel-quarkus-observability-services)
quarkus.otel.sdk.disabled=false