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 875395a Fix observability example for Kubernetes env
875395a is described below
commit 875395a3c55e9f945a4368466d7a5ffeee72d49d
Author: Lukas Lowinger <[email protected]>
AuthorDate: Tue Mar 11 18:32:46 2025 +0100
Fix observability example for Kubernetes env
---
observability/pom.xml | 5 +++++
.../java/org/acme/observability/TimerRoute.java | 2 +-
.../health/camel/CustomLivenessCheck.java | 2 +-
.../org/acme/observability/ObservabilityTest.java | 21 ++++++++++++---------
4 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/observability/pom.xml b/observability/pom.xml
index 9373d71..e8b5838 100644
--- a/observability/pom.xml
+++ b/observability/pom.xml
@@ -114,6 +114,11 @@
<artifactId>rest-assured</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.awaitility</groupId>
+ <artifactId>awaitility</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
diff --git a/observability/src/main/java/org/acme/observability/TimerRoute.java
b/observability/src/main/java/org/acme/observability/TimerRoute.java
index 2d237bc..2c59b2c 100644
--- a/observability/src/main/java/org/acme/observability/TimerRoute.java
+++ b/observability/src/main/java/org/acme/observability/TimerRoute.java
@@ -22,7 +22,7 @@ public class TimerRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
- from("timer:greeting?period=10000")
+ from("timer:greeting?delay=10000&period=10000")
.bean("timerCounter", "count")
.to("http://{{greeting-app.service.host}}:{{greeting-app.service.port}}/greeting");
}
diff --git
a/observability/src/main/java/org/acme/observability/health/camel/CustomLivenessCheck.java
b/observability/src/main/java/org/acme/observability/health/camel/CustomLivenessCheck.java
index 6294ccd..7f48f40 100644
---
a/observability/src/main/java/org/acme/observability/health/camel/CustomLivenessCheck.java
+++
b/observability/src/main/java/org/acme/observability/health/camel/CustomLivenessCheck.java
@@ -40,7 +40,7 @@ public class CustomLivenessCheck extends AbstractHealthCheck {
int hits = hitCount.incrementAndGet();
// Flag the check as DOWN on every 5th invocation (but not on
Kubernetes), else it is UP
- if (hits % 5 == 0 && System.getenv("KUBERNETES_NAMESPACE") == null) {
+ if (hits % 5 == 0 && System.getenv("KUBERNETES_PORT") == null) {
builder.down();
} else {
builder.up();
diff --git
a/observability/src/test/java/org/acme/observability/ObservabilityTest.java
b/observability/src/test/java/org/acme/observability/ObservabilityTest.java
index a6115a7..f8fdc4a 100644
--- a/observability/src/test/java/org/acme/observability/ObservabilityTest.java
+++ b/observability/src/test/java/org/acme/observability/ObservabilityTest.java
@@ -16,10 +16,12 @@
*/
package org.acme.observability;
+import java.time.Duration;
import java.util.Arrays;
import io.quarkus.test.junit.QuarkusTest;
import io.restassured.RestAssured;
+import org.awaitility.Awaitility;
import org.eclipse.microprofile.config.ConfigProvider;
import org.hamcrest.Matchers;
import org.junit.jupiter.api.Test;
@@ -47,15 +49,16 @@ public class ObservabilityTest {
@Test
public void metrics() {
// Verify Camel metrics are available
- String prometheusMetrics = RestAssured
- .get(getManagementPrefix() + "/observe/metrics")
- .then()
- .statusCode(200)
- .extract()
- .body().asString();
-
- assertEquals(3,
- Arrays.stream(prometheusMetrics.split("\n")).filter(line ->
line.contains("purpose=\"example\"")).count());
+
Awaitility.await().pollInterval(Duration.ofSeconds(5)).atMost(Duration.ofMinutes(1)).untilAsserted(()
-> {
+ String prometheusMetrics = RestAssured
+ .get(getManagementPrefix() + "/observe/metrics")
+ .then()
+ .statusCode(200)
+ .extract()
+ .body().asString();
+ assertEquals(3,
+ Arrays.stream(prometheusMetrics.split("\n")).filter(line
-> line.contains("purpose=\"example\"")).count());
+ });
}
@Test