This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus-examples.git
commit 44266a192754ddb8aec3730b1f8ee45cbc08d852 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
