diff --git a/pom.xml b/pom.xml
index acf8d53..a5b7ac5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,6 +58,15 @@
rest-assured
test
+
+ io.quarkus
+ quarkus-micrometer-registry-prometheus
+
+
+ javax.inject
+ javax.inject
+ 1
+
diff --git a/src/main/java/com/redhat/MeatHelper.java b/src/main/java/com/redhat/MeatHelper.java
index e7db533..050dc83 100644
--- a/src/main/java/com/redhat/MeatHelper.java
+++ b/src/main/java/com/redhat/MeatHelper.java
@@ -7,21 +7,27 @@
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
+import jakarta.inject.Inject;
import org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition;
import org.eclipse.microprofile.openapi.annotations.Operation;
import org.eclipse.microprofile.openapi.annotations.info.Info;
import org.eclipse.microprofile.openapi.annotations.parameters.Parameter;
+import io.micrometer.core.instrument.MeterRegistry;
+import io.micrometer.core.instrument.Tags;
+import io.micrometer.core.instrument.config.MeterFilter;
@ApplicationScoped
@OpenAPIDefinition(
info = @Info(
title = "Meat Temperature API",
version = "1.0.0",
- description = "An API that provides recommended cooking temperatures for various types of meat!"
+ description = "An API that provides recommended cooking temperatures for various types of meat"
)
)
@Path("/meat")
-public class MeatHelper {
+public class MeatHelper {
+ @Inject
+ MeterRegistry registry;
@GET
@Path("/{meat}/{doneness}")
@@ -32,6 +38,8 @@ public String getTemperature(
@Parameter(description = "The desired level of doneness (e.g. 'rare', 'medium', 'well-done')") @PathParam("doneness") String doneness) {
int temperature = 0;
+ registry.config()
+ .meterFilter(MeterFilter.acceptNameStartsWith("http_server_"));
switch (meat.toLowerCase()) {
case "beef":
@@ -127,6 +135,7 @@ public String getTemperature(
default:
return "Unknown meat: " + meat;
}
+ registry.counter("temperature check counter", Tags.of("meat", meat)).increment();
return String.format("Recommended temperature for %s %s: %d°F", meat, doneness, temperature);
}