mod metric; mod collectors; use tiny_http::{Server, Response, Method}; use anyhow::{Context, Result}; use collectors::time; fn main() -> Result<()> { let server = Server::http("0.0.0.0:9100").unwrap(); for request in server.incoming_requests() { if request.method() != &Method::Get || request.url() != "/metrics" { let response = Response::from_string("Not Found").with_status_code(404); request.respond(response)?; continue; } println!("request! method: {:?}, url: {:?}, headers: {:?}", request.method(), request.url(), request.headers() ); let mut output = String::new(); output.push_str(&time::scrape().prometheus()); let response = Response::from_string(output); request.respond(response)?; } Ok(()) }