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));
}
}