From 82f5cb4513857045f4c0071acf6b28af28927bb8 Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Fri, 28 Feb 2025 19:26:16 +0100 Subject: [PATCH] Add tracing --- Cargo.lock | 106 +++++++++++++++++++++++++++++++++++++++++- Cargo.toml | 4 ++ src/main.rs | 4 ++ src/twitch_webhook.rs | 4 +- 4 files changed, 116 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a6edc45..106006e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1082,6 +1082,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + [[package]] name = "libc" version = "0.2.170" @@ -1177,6 +1183,16 @@ dependencies = [ "tempfile", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -1245,6 +1261,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "percent-encoding" version = "2.3.1" @@ -1711,6 +1733,15 @@ dependencies = [ "digest", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + [[package]] name = "shlex" version = "1.3.0" @@ -1884,6 +1915,9 @@ dependencies = [ "retainer", "teloxide", "tokio", + "tower-http 0.6.2", + "tracing", + "tracing-subscriber", "twitch_api", "twitch_oauth2", ] @@ -1914,7 +1948,7 @@ dependencies = [ "tokio-stream", "tokio-util", "tower 0.4.13", - "tower-http", + "tower-http 0.5.2", "url", ] @@ -1995,6 +2029,16 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + [[package]] name = "tinystr" version = "0.7.6" @@ -2121,6 +2165,22 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower-http" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" +dependencies = [ + "bitflags 2.8.0", + "bytes", + "http 1.2.0", + "http-body 1.0.1", + "pin-project-lite", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -2141,9 +2201,21 @@ checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", + "tracing-attributes", "tracing-core", ] +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "tracing-core" version = "0.1.33" @@ -2151,6 +2223,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", ] [[package]] @@ -2276,6 +2374,12 @@ dependencies = [ "getrandom 0.3.1", ] +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + [[package]] name = "vcpkg" version = "0.2.15" diff --git a/Cargo.toml b/Cargo.toml index bf5bf0a..2927d62 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,8 +15,12 @@ twitch_api = { version = "0.7.0", features = ["reqwest", "helix", "eventsub", "h twitch_oauth2 = "0.15.1" axum = { version = "0.8.1", features = ["http2"] } +tower-http = { version = "0.6.2", features = ["trace"] } http-body-util = "0.1.2" retainer = "0.3.0" reqwest = "0.12.12" + +tracing = "0.1.37" +tracing-subscriber = "0.3.16" diff --git a/src/main.rs b/src/main.rs index 5cd68c1..669f413 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,6 +11,10 @@ use twitch_webhook::start_twitch_webhook; #[tokio::main] async fn main() { + tracing_subscriber::fmt() + .with_max_level(tracing::Level::DEBUG) + .init(); + let subscription_manager = Arc::new(SubscriptionManager::new()); subscription_manager.init().await; diff --git a/src/twitch_webhook.rs b/src/twitch_webhook.rs index 862c262..77cfaf4 100644 --- a/src/twitch_webhook.rs +++ b/src/twitch_webhook.rs @@ -11,6 +11,7 @@ use eyre::{Context, ContextCompat}; use futures::TryStreamExt as _; use http_body_util::BodyExt as _; use tokio::{net::TcpListener, sync::RwLock}; +use tower_http::trace::TraceLayer; use twitch_api::{ HelixClient, client::ClientDefault, @@ -183,7 +184,8 @@ impl TwitchWebhookServer { "/twitch/eventsub/", post(move |cache, request| twitch_eventsub(cache, request)), ) - .layer(Extension(retainer)); + .layer(Extension(retainer)) + .layer(TraceLayer::new_for_http()); let address = SocketAddr::new([0, 0, 0, 0].into(), CONFIG.twitch_webhook_port);