diff --git a/opentelemetry-quickstart/pom.xml b/opentelemetry-quickstart/pom.xml index 6eb29347d0..f99a54563e 100644 --- a/opentelemetry-quickstart/pom.xml +++ b/opentelemetry-quickstart/pom.xml @@ -52,11 +52,6 @@ io.quarkus quarkus-observability-devservices-lgtm - - io.quarkus - quarkus-opentelemetry-exporter-otlp - 3.9.5 - diff --git a/opentelemetry-quickstart/src/main/java/org/acme/opentelemetry/TracedResource.java b/opentelemetry-quickstart/src/main/java/org/acme/opentelemetry/TracedResource.java index ff775ee8f7..5eacc1d1d3 100644 --- a/opentelemetry-quickstart/src/main/java/org/acme/opentelemetry/TracedResource.java +++ b/opentelemetry-quickstart/src/main/java/org/acme/opentelemetry/TracedResource.java @@ -1,7 +1,7 @@ package org.acme.opentelemetry; -import com.google.common.util.concurrent.AtomicDouble; -import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.metrics.LongCounter; import io.opentelemetry.api.metrics.Meter; import jakarta.annotation.PostConstruct; import jakarta.inject.Inject; @@ -24,18 +24,21 @@ public class TracedResource { @Context UriInfo uriInfo; + @Inject + OpenTelemetry openTelemetry; + private Meter meter; - private AtomicDouble xValue = new AtomicDouble(0.0); + private LongCounter longCounter; @PostConstruct public void init() { - meter = GlobalOpenTelemetry.getMeter("myservice"); + meter = openTelemetry.getMeter("myservice"); - meter.gaugeBuilder("service.xvalue") + longCounter = meter.counterBuilder("service.xvalue") .setDescription("Current value of X in the service") .setUnit("units") - .buildWithCallback(measurement -> measurement.record(xValue.get())); + .build(); } @GET @@ -59,13 +62,14 @@ public String chain() { @GET @Path("/metrics/set") @Produces(MediaType.APPLICATION_JSON) - public String setMetric(@QueryParam("value") Double value) { - if (value == null) { - LOG.warn("Attempted to set metric without providing a value."); - return "{\"status\":\"failure\", \"message\":\"Value parameter is missing\"}"; + public String setMetric(@QueryParam("value") long value) { + if (value <= 0) { + LOG.warn("Attempted to set metric with a non-positive value."); + return "{\"status\":\"failure\", \"message\":\"Value parameter must be positive\"}"; } - xValue.set(value); - LOG.infof("Metric 'xvalue' set to: %f", value); + longCounter.add(value); + + LOG.infof("Metric 'xvalue' set to: %d", value); return "{\"status\":\"success\", \"xvalue\":" + value + "}"; } } diff --git a/opentelemetry-quickstart/src/test/java/org/acme/opentelemetry/TracedResourceTest.java b/opentelemetry-quickstart/src/test/java/org/acme/opentelemetry/TracedResourceTest.java index 423e6e302e..e54bf63781 100644 --- a/opentelemetry-quickstart/src/test/java/org/acme/opentelemetry/TracedResourceTest.java +++ b/opentelemetry-quickstart/src/test/java/org/acme/opentelemetry/TracedResourceTest.java @@ -30,7 +30,7 @@ public void testChainEndpoint() { @Test public void testSetMetricEndpoint() { - Double testValue = 42.0; + long testValue = 42L; given() .queryParam("value", testValue) @@ -38,7 +38,7 @@ public void testSetMetricEndpoint() { .then() .statusCode(200) .body("status", is("success")) - .body("xvalue", is(testValue.floatValue())); + .body("xvalue", is((int)testValue)); } }