Skip to content

Monitoring & Observability

XTDB offers a suite of tools & templates to facilitate monitoring and observability. These include a Healthz Server for health checks, Metrics for performance insights, integrations with third-party monitoring systems and Grafana dashboards for visualizing the health and performance of XTDB nodes.

The Healthz Server is a lightweight HTTP server that runs by default on all XTDB nodes. It provides health indicators, making it useful for monitoring in containerized and orchestrated environments.

The Healthz Server can be configured to run on a custom port:

healthz:
# Port to run the Healthz Server on.
# Default: 8080 (can be set as an !Env value).
port: 8080

The following routes are exposed by the Healthz Server and can be used to monitor the node’s status:

  • /healthz/started: Indicates whether the node has completed startup and has caught up on indexing.
    • Recommended for startup probes.
    • We recommend configuring a generous initial timeout, as it waits for indexing to stabilize.
  • /healthz/alive: Confirms the application is running without critical errors.
  • /healthz/ready: Signals that the node is ready to process requests.

XTDB provides various metrics for monitoring the health and performance of its nodes. These metrics are available via Prometheus and can also be integrated with cloud-based observability services.

By default, XTDB nodes expose metrics in the Prometheus format. These can be accessed at the following endpoint on the Healthz Server:

<node_url>:<healthz_port>/metrics

XTDB nodes can be configured to report metrics to the following cloud-based monitoring services:

XTDB provides pre-built Grafana dashboards for monitoring the health and performance of XTDB clusters and individual nodes.

For more information on how to set these up on Grafana, see the “Monitoring XTDB with Grafana” guide.