Chapter 9. Observability

In this chapter, you’ll learn about observability and why it is important to have in the microservices architecture. Observability answers the question of how your system is behaving by observing some parameters like error codes, performance, or any kind of business metric. Quarkus integrates with several technologies used for observability natively.

This chapter will include recipes for how to accomplish the following tasks:

  • Define health checks

  • Provide metrics to the monitoring system

  • Configure distributed tracing to have an overview of a request inside the mesh

9.1 Using Automatic Health Checks

Problem

You want to check whether the service is up and running and able to handle requests correctly.

Solution

The MicroProfile Health specification provides an API to probe the state of a service from another machine (e.g., Kubernetes Controller).

To enable MicroProfile Health in a Quarkus application, you need to register only the quarkus-smallrye-health extension:

./mvnw quarkus:add-extension -Dextensions="quarkus-smallrye-health"

With the extension in the classpath, Quarkus automatically registers a default liveness and readiness probe, which both return UP when the service is up and running:

./mvnw compile quarkus:dev

curl localhost:8080/health/live 1

{
    "status": "UP", 
    "checks": [ 
    ]
}


curl localhost:8080/health/ready 

{
 "status": "UP", ...

Get Quarkus Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.