@@ -1188,7 +1188,7 @@ dependencies = [
"tokio",
"tokio-tungstenite",
"tower",
- "tower-http",
+ "tower-http 0.3.5",
"tower-layer",
"tower-service",
]
@@ -1225,7 +1225,7 @@ dependencies = [
"serde_json",
"tokio",
"tower",
- "tower-http",
+ "tower-http 0.3.5",
"tower-layer",
"tower-service",
]
@@ -2121,6 +2121,7 @@ dependencies = [
"toml 0.8.10",
"tonic",
"tower",
+ "tower-http 0.4.4",
"tracing",
"tracing-log",
"tracing-subscriber",
@@ -10052,6 +10053,25 @@ dependencies = [
"tower-service",
]
+[[package]]
+name = "tower-http"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140"
+dependencies = [
+ "bitflags 2.4.1",
+ "bytes 1.5.0",
+ "futures-core",
+ "futures-util",
+ "http 0.2.9",
+ "http-body",
+ "http-range-header",
+ "pin-project-lite 0.2.13",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
[[package]]
name = "tower-layer"
version = "0.3.2"
@@ -233,6 +233,7 @@ thiserror = "1.0.29"
tiktoken-rs = "0.5.7"
time = { version = "0.3", features = ["serde", "serde-well-known", "formatting"] }
toml = "0.8"
+tower-http = "0.4.4"
tree-sitter = { version = "0.20", features = ["wasm"] }
tree-sitter-astro = { git = "https://github.com/virchau13/tree-sitter-astro.git", rev = "e924787e12e8a03194f36a113290ac11d6dc10f3" }
tree-sitter-bash = { git = "https://github.com/tree-sitter/tree-sitter-bash", rev = "7331995b19b8f8aba2d5e26deb51d2195c18bc94" }
@@ -1,3 +1,3 @@
-collab: RUST_LOG=${RUST_LOG:-warn,collab=info} cargo run --package=collab serve
+collab: RUST_LOG=${RUST_LOG:-warn,tower_http=info,collab=info} cargo run --package=collab serve
livekit: livekit-server --dev
blob_store: MINIO_ROOT_USER=the-blob-store-access-key MINIO_ROOT_PASSWORD=the-blob-store-secret-key minio server .blob_store
@@ -61,6 +61,7 @@ tokio-tungstenite = "0.17"
toml.workspace = true
tonic = "0.6"
tower = "0.4"
+tower-http = { workspace = true, features = ["trace"] }
tracing = "0.1.34"
tracing-log = "0.1.3"
tracing-subscriber = { version = "0.3.11", features = ["env-filter", "json"] }
@@ -12,6 +12,8 @@ use std::{
sync::Arc,
};
use tokio::signal::unix::SignalKind;
+use tower_http::trace::{self, TraceLayer};
+use tracing::Level;
use tracing_log::LogTracer;
use tracing_subscriber::{filter::EnvFilter, fmt::format::JsonFields, Layer};
use util::ResultExt;
@@ -72,13 +74,18 @@ async fn main() -> Result<()> {
if let Some(rpc_server) = rpc_server.clone() {
app = app.merge(collab::rpc::routes(rpc_server))
}
- app = app.merge(
- Router::new()
- .route("/", get(handle_root))
- .route("/healthz", get(handle_liveness_probe))
- .merge(collab::api::events::router())
- .layer(Extension(state.clone())),
- );
+ app = app
+ .merge(
+ Router::new()
+ .route("/", get(handle_root))
+ .route("/healthz", get(handle_liveness_probe))
+ .merge(collab::api::events::router())
+ .layer(Extension(state.clone())),
+ )
+ .layer(
+ TraceLayer::new_for_http()
+ .on_response(trace::DefaultOnResponse::new().level(Level::INFO)),
+ );
axum::Server::from_tcp(listener)?
.serve(app.into_make_service_with_connect_info::<SocketAddr>())