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