#rocket #metrics #health

rocket_health

Drop-in /health route for Rocket APIs with uptime and rolling average latency metrics

2 unstable releases

Uses new Rust 2024

0.2.0 Sep 14, 2025
0.1.0 Jul 12, 2025

#1138 in HTTP server

Download history 119/week @ 2025-07-09 7/week @ 2025-07-16 9/week @ 2025-07-23 4/week @ 2025-08-20 129/week @ 2025-09-10 22/week @ 2025-09-17 7/week @ 2025-09-24 12/week @ 2025-10-01

170 downloads per month

MIT/Apache

17KB
125 lines

rocket_health

๐Ÿ”ง Drop-in /health route for Rocket APIs with uptime and rolling average latency metrics.

Crates.io Docs.rs CI


โœจ Features

  • ๐Ÿš€ Easy integration into any Rocket API
  • ๐Ÿ“ˆ Tracks server uptime
  • โšก Measures average response latency (rolling window)
  • ๐Ÿ“ค Exposes /health route returning structured JSON

Example response:

{
  "status": "ok",
  "uptime_seconds": 432.123,
  "mean_latency_seconds": 0.0054
}

๐Ÿ“ฆ Installation

Add to your Cargo.toml:

[dependencies]
rocket_health = "0.1"
rocket = { version = "0.5", features = ["json"] }

๐Ÿš€ Usage

Step 1: Mount health route and fairing

#[macro_use] extern crate rocket;
use rocket_health::mount_health_route;

#[launch]
fn rocket() -> _ {
    let rocket = rocket::build();
    mount_health_route(rocket)
}

Step 2: Start your Rocket app

The /health route is now available:

GET /health

Returns uptime and latency in seconds (float). Latency is computed using a sliding window of the last 100 requests.


๐Ÿงช Testing

You can unit test the handler or compute test coverage using cargo-tarpaulin:

cargo install cargo-tarpaulin
cargo tarpaulin --out Html --ignore-tests --line --target-dir tarpaulin-target/ --skip-clean

Dependencies

~16โ€“48MB
~792K SLoC