Holter is intended to be a simple implementation of web-based monitoring metrics scraping
and healthcheck endpoints. It creates a small Axum webserver with a /metrics
and a /healthz
endpoint for exporing Prometheus metrics for scraping (collected in rust by the metrics
crate)
as well as a healthcheck endpoint for monitoring availability and health behind automated infra
solutions such as Kubernetes container orchestration (when wrapped in a container HEALTHCHECK) or
when fronted by an application load balancer.
By default, the server listens on the local 127.0.0.1
address at the default Prometheus port
9090
but this can be configured by passing it a std::netSocketAddr
at startup. The service can
also be configured, via the db
feature to monitor the ability to reach any database supported by
sqlx
by pinging the database on each healthcheck endpoint request.
default
: bare bones metrics and healthz rest endpointsdb
: monitoring of a sqlx database connectionapi-metrics
: provides a tower middleware that, when injected into an axum router, measures and returns request/response latency histograms and invocation counts on all endpoints served by the router.