rocket_health

Crates.iorocket_health
lib.rsrocket_health
version0.2.0
created_at2025-07-12 14:05:50.339351+00
updated_at2025-09-14 11:12:52.725594+00
descriptionDrop-in /health route for Rocket APIs with uptime and rolling average latency metrics.
homepage
repositoryhttps://github.com/juliengriffoul/rocket_health
max_upload_size
id1749330
size54,482
Julien Griffoul (juliengriffoul)

documentation

README

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
Commit count: 13

cargo fmt