From 8bd1464df0479c6c2647c8ee41ccca892df304d1 Mon Sep 17 00:00:00 2001 From: Dan Bond Date: Tue, 12 Apr 2022 03:55:50 -0700 Subject: [PATCH] Use log facade (#3) --- Cargo.toml | 3 ++- README.md | 2 +- src/server.rs | 18 +++++++++++++++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 581ee67..a719998 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "metrics_server" -version = "0.4.1" +version = "0.5.0" authors = ["Dan Bond "] edition = "2021" rust-version = "1.58" @@ -16,6 +16,7 @@ include = ["src/**/*", "tests", "examples", "LICENSE", "README.md"] [dependencies] tiny_http = { version = "0.11", features = ["ssl-rustls"] } +log = "0.4" [dev-dependencies] prometheus-client = "0.15" diff --git a/README.md b/README.md index 4a62bcc..89c4679 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ This crate provides a thread safe, minimalstic HTTP/S server used to buffer metr Include the lib in your `Cargo.toml` dependencies: ```toml [dependencies] -metrics_server = "0.4" +metrics_server = "0.5" ``` ### HTTP diff --git a/src/server.rs b/src/server.rs index bed524f..f6942dd 100644 --- a/src/server.rs +++ b/src/server.rs @@ -3,6 +3,7 @@ use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::{Arc, Mutex}; use std::thread; +use log::{debug, error}; use tiny_http::{Method, Response, Server}; /// A thread-safe datastore for serving metrics via a HTTP/S server. @@ -93,17 +94,28 @@ impl MetricsServer { break; } + debug!( + "metrics_server: request received [url: {}, remote addr: {}, http version: {}]", + req.url(), + req.remote_addr(), + req.http_version(), + ); + // Only serve the /metrics path. if req.url() != "/metrics" { let res = Response::empty(404); - let _ = req.respond(res); + if let Err(e) = req.respond(res) { + error!("metrics_server error: {}", e); + }; continue; } // Only respond to GET requests. if req.method() != &Method::Get { let res = Response::empty(405); - let _ = req.respond(res); + if let Err(e) = req.respond(res) { + error!("metrics_server error: {}", e); + }; continue; } @@ -111,7 +123,7 @@ impl MetricsServer { let metrics = s.data.lock().unwrap(); let res = Response::from_data(metrics.as_slice()); if let Err(e) = req.respond(res) { - eprintln!("metrics_server error: {}", e); + error!("metrics_server error: {}", e); }; } }