This is an automated email from the ASF dual-hosted git repository.

zbendhiba pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus-examples.git

commit 4e7e9ea25ec1762c4b947a71273cb7cebb017d87
Author: Lukas Lowinger <[email protected]>
AuthorDate: Tue Aug 9 11:54:17 2022 +0200

    Support for running on Kubernetes and OCP + possibility to run two separete 
connected apps
---
 observability/README.adoc                          |  9 +----
 observability/pom.xml                              | 38 +++++++++++++++++++++-
 .../main/java/org/acme/observability/Routes.java   |  8 ++---
 .../observability/{Routes.java => TimerRoute.java} | 10 ++----
 .../tracing/LoggingSpanExporterProducer.java       |  2 +-
 .../src/main/resources/application.properties      | 10 ++++--
 .../org/acme/observability/ObservabilityTest.java  |  7 ++++
 7 files changed, 60 insertions(+), 24 deletions(-)

diff --git a/observability/README.adoc b/observability/README.adoc
index 5a697a9..2f2aee7 100644
--- a/observability/README.adoc
+++ b/observability/README.adoc
@@ -31,13 +31,6 @@ To view all Camel metrics do:
 $ curl localhost:8080/q/metrics/application
 ----
 
-To retrieve metrics in JSON format, pass the `Accept` HTTP header in the 
request:
-
-[source,shell]
-----
-$ curl -s -H"Accept: application/json" localhost:8080/q/metrics/application
-----
-
 === Health endpoint
 
 Camel provides some out of the box liveness and readiness checks. To see this 
working, interrogate the `/q/health/live` and `/q/health/ready` endpoints:
@@ -92,7 +85,7 @@ $ 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.
 
-The `netty-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
+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 3 spans showing the progression of the message exchange through 
each endpoint.
 
 For convenience, tracing events are also logged to the application console.
diff --git a/observability/pom.xml b/observability/pom.xml
index d71bf78..5657123 100644
--- a/observability/pom.xml
+++ b/observability/pom.xml
@@ -80,7 +80,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-netty-http</artifactId>
+            <artifactId>camel-quarkus-platform-http</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-http</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
@@ -392,6 +396,38 @@
                 </plugins>
             </build>
         </profile>
+        <profile>
+            <id>kubernetes</id>
+            <activation>
+                <property>
+                    <name>kubernetes</name>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>io.quarkus</groupId>
+                    <artifactId>quarkus-kubernetes</artifactId>
+                </dependency>
+                <dependency>
+                    <groupId>io.quarkus</groupId>
+                    <artifactId>quarkus-container-image-jib</artifactId>
+                </dependency>
+            </dependencies>
+        </profile>
+        <profile>
+            <id>openshift</id>
+            <activation>
+                <property>
+                    <name>openshift</name>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>io.quarkus</groupId>
+                    <artifactId>quarkus-openshift</artifactId>
+                </dependency>
+            </dependencies>
+        </profile>
     </profiles>
 
 </project>
diff --git a/observability/src/main/java/org/acme/observability/Routes.java 
b/observability/src/main/java/org/acme/observability/Routes.java
index 8f1be8f..27bf12d 100644
--- a/observability/src/main/java/org/acme/observability/Routes.java
+++ b/observability/src/main/java/org/acme/observability/Routes.java
@@ -22,11 +22,11 @@ public class Routes extends RouteBuilder {
 
     @Override
     public void configure() throws Exception {
-        // Invokes a simple greeting endpoint every 10 seconds
-        from("timer:greeting?period=10000")
-                .to("netty-http:http://localhost:8099/greeting";);
+        from("platform-http:/greeting")
+                .removeHeaders("*")
+                
.to("http://localhost:{{greeting-provider-app.service.port}}/greeting-provider";);
 
-        from("netty-http:0.0.0.0:8099/greeting")
+        from("platform-http:/greeting-provider")
                 // Random delay to simulate latency
                 .delay(simple("${random(1000, 5000)}"))
                 .setBody(constant("Hello From Camel Quarkus!"));
diff --git a/observability/src/main/java/org/acme/observability/Routes.java 
b/observability/src/main/java/org/acme/observability/TimerRoute.java
similarity index 71%
copy from observability/src/main/java/org/acme/observability/Routes.java
copy to observability/src/main/java/org/acme/observability/TimerRoute.java
index 8f1be8f..0b8fd0f 100644
--- a/observability/src/main/java/org/acme/observability/Routes.java
+++ b/observability/src/main/java/org/acme/observability/TimerRoute.java
@@ -18,17 +18,11 @@ package org.acme.observability;
 
 import org.apache.camel.builder.RouteBuilder;
 
-public class Routes extends RouteBuilder {
+public class TimerRoute extends RouteBuilder {
 
     @Override
     public void configure() throws Exception {
-        // Invokes a simple greeting endpoint every 10 seconds
         from("timer:greeting?period=10000")
-                .to("netty-http:http://localhost:8099/greeting";);
-
-        from("netty-http:0.0.0.0:8099/greeting")
-                // Random delay to simulate latency
-                .delay(simple("${random(1000, 5000)}"))
-                .setBody(constant("Hello From Camel Quarkus!"));
+                
.to("http://{{greeting-app.service.host}}:{{greeting-app.service.port}}/greeting";);
     }
 }
diff --git 
a/observability/src/main/java/org/acme/observability/tracing/LoggingSpanExporterProducer.java
 
b/observability/src/main/java/org/acme/observability/tracing/LoggingSpanExporterProducer.java
index e3ccd2d..d9fed66 100644
--- 
a/observability/src/main/java/org/acme/observability/tracing/LoggingSpanExporterProducer.java
+++ 
b/observability/src/main/java/org/acme/observability/tracing/LoggingSpanExporterProducer.java
@@ -30,6 +30,6 @@ public class LoggingSpanExporterProducer {
 
     @Produces
     public SpanExporter loggingSpanExporter() {
-        return LoggingSpanExporter.create();
+        return new LoggingSpanExporter();
     }
 }
diff --git a/observability/src/main/resources/application.properties 
b/observability/src/main/resources/application.properties
index d604261..66fde5c 100644
--- a/observability/src/main/resources/application.properties
+++ b/observability/src/main/resources/application.properties
@@ -24,9 +24,9 @@ quarkus.banner.enabled = false
 quarkus.application.name=camel-quarkus-observability
 
 # For OTLP
-quarkus.opentelemetry.tracer.exporter.otlp.endpoint=http://localhost:4317
+quarkus.opentelemetry.tracer.exporter.otlp.endpoint=http://${TELEMETRY_COLLECTOR_COLLECTOR_SERVICE_HOST:localhost}:4317
 # For Jaeger
-# quarkus.opentelemetry.tracer.exporter.jaeger.endpoint=http://localhost:14250
+# 
quarkus.opentelemetry.tracer.exporter.jaeger.endpoint=http://${MY_JAEGER_COLLECTOR_SERVICE_HOST:localhost}:14250
 
 # Allow metrics to be exported as JSON. Not strictly required and is disabled 
by default
 quarkus.micrometer.export.json.enabled = true
@@ -35,3 +35,9 @@ quarkus.micrometer.export.json.enabled = true
 # Camel
 #
 camel.context.name = camel-quarkus-observability
+greeting-app.service.host=${CAMEL_QUARKUS_OBSERVABILITY_SERVICE_HOST:localhost}
+greeting-app.service.port=${CAMEL_QUARKUS_OBSERVABILITY_SERVICE_PORT_HTTP:${quarkus.http.port}}
+%test.greeting-app.service.port=${quarkus.http.test-port}
+greeting-provider-app.service.host=localhost
+greeting-provider-app.service.port=${quarkus.http.port}
+%test.greeting-provider-app.service.port=${quarkus.http.test-port}
diff --git 
a/observability/src/test/java/org/acme/observability/ObservabilityTest.java 
b/observability/src/test/java/org/acme/observability/ObservabilityTest.java
index e87b19a..319ac86 100644
--- a/observability/src/test/java/org/acme/observability/ObservabilityTest.java
+++ b/observability/src/test/java/org/acme/observability/ObservabilityTest.java
@@ -30,6 +30,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 @QuarkusTest
 public class ObservabilityTest {
 
+    @Test
+    public void greeting() {
+        RestAssured.get("/greeting")
+                .then()
+                .statusCode(200);
+    }
+
     @Test
     public void metrics() {
         // Verify Camel metrics are available

Reply via email to