#![feature(proc_macro_hygiene, decl_macro)] #[macro_use] extern crate rocket; extern crate rocket_prometheus_logger; use rocket_prometheus_logger::prometheus_fairing; #[get("/")] fn hello() -> &'static str { "Hello, world!" } fn rocket() -> rocket::Rocket { rocket::ignite() .attach(prometheus_fairing::PrometheusLogger{ address: String::from("http://127.0.0.1:9091/"), metric_name: String::from("endpoint_logging"), username: String::from("user"), password: String::from("pass"), }) .mount("/", routes![hello]) } fn main() { rocket().launch(); } #[cfg(test)] mod test { use super::rocket; use rocket::local::Client; use rocket::http::Status; #[test] fn test_hello() { let client = Client::new(rocket()).unwrap(); let mut response = client.get("/").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.body_string(), Some("Hello, world!".into())); assert!(response.headers().contains("X-Test-Prometheus-Logger-Duration")); assert_eq!(response.headers().get_one("X-Test-Prometheus-Logger-Method"), Some("GET")); assert_eq!(response.headers().get_one("X-Test-Prometheus-Logger-Status"), Some("200 OK")); } }