diff --git a/Cargo.lock b/Cargo.lock index 7cd636b0a0..aebea5e195 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,158 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "actix-codec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-sink", + "memchr", + "pin-project-lite", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "actix-http" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44dfe5c9e0004c623edc65391dfd51daa201e7e30ebd9c9bedf873048ec32bc2" +dependencies = [ + "actix-codec", + "actix-rt", + "actix-service", + "actix-utils", + "base64 0.22.1", + "bitflags", + "bytes", + "bytestring", + "derive_more", + "encoding_rs", + "foldhash", + "futures-core", + "http 0.2.12", + "httparse", + "httpdate", + "itoa", + "language-tags", + "local-channel", + "mime", + "percent-encoding", + "pin-project-lite", + "rand 0.9.1", + "sha1", + "smallvec", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "actix-router" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8" +dependencies = [ + "bytestring", + "cfg-if", + "http 0.2.12", + "regex-lite", + "serde", + "tracing", +] + +[[package]] +name = "actix-rt" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" +dependencies = [ + "futures-core", + "tokio", +] + +[[package]] +name = "actix-server" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65064ea4a457eaf07f2fba30b4c695bf43b721790e9530d26cb6f9019ff7502" +dependencies = [ + "actix-rt", + "actix-service", + "actix-utils", + "futures-core", + "futures-util", + "mio", + "socket2", + "tokio", + "tracing", +] + +[[package]] +name = "actix-service" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "actix-utils" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" +dependencies = [ + "local-waker", + "pin-project-lite", +] + +[[package]] +name = "actix-web" +version = "4.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2e3b15b3dc6c6ed996e4032389e9849d4ab002b1e92fbfe85b5f307d1479b4d" +dependencies = [ + "actix-codec", + "actix-http", + "actix-router", + "actix-rt", + "actix-server", + "actix-service", + "actix-utils", + "bytes", + "bytestring", + "cfg-if", + "derive_more", + "encoding_rs", + "foldhash", + "futures-core", + "futures-util", + "impl-more", + "itoa", + "language-tags", + "log", + "mime", + "once_cell", + "pin-project-lite", + "regex-lite", + "serde", + "serde_json", + "serde_urlencoded", + "smallvec", + "socket2", + "time", + "tracing", + "url", +] + [[package]] name = "addr2line" version = "0.24.2" @@ -861,6 +1013,15 @@ dependencies = [ "either", ] +[[package]] +name = "bytestring" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f" +dependencies = [ + "bytes", +] + [[package]] name = "cargo-manifest" version = "0.19.1" @@ -2206,6 +2367,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foreign-types" version = "0.3.2" @@ -3005,6 +3172,12 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "impl-more" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" + [[package]] name = "indexmap" version = "2.9.0" @@ -3151,6 +3324,12 @@ dependencies = [ "uuid", ] +[[package]] +name = "language-tags" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" + [[package]] name = "lazy_static" version = "1.5.0" @@ -3283,6 +3462,23 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +[[package]] +name = "local-channel" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8" +dependencies = [ + "futures-core", + "futures-sink", + "local-waker", +] + +[[package]] +name = "local-waker" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487" + [[package]] name = "lock_api" version = "0.4.12" @@ -3459,6 +3655,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", + "log", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] @@ -4785,13 +4982,14 @@ dependencies = [ [[package]] name = "sentry" -version = "0.37.0" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "255914a8e53822abd946e2ce8baa41d4cded6b8e938913b7f7b9da5b7ab44335" +checksum = "a505499b38861edd82b5a688fa06ba4ba5875bb832adeeeba22b7b23fc4bc39a" dependencies = [ "httpdate", "native-tls", "reqwest", + "sentry-actix", "sentry-backtrace", "sentry-contexts", "sentry-core", @@ -4803,23 +5001,35 @@ dependencies = [ "ureq", ] +[[package]] +name = "sentry-actix" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ad8bfdcfbc6e0d0dacaa5728555085ef459fa9226cfc2fe64eefa4b8038b7f" +dependencies = [ + "actix-http", + "actix-web", + "bytes", + "futures-util", + "sentry-core", +] + [[package]] name = "sentry-backtrace" -version = "0.37.0" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00293cd332a859961f24fd69258f7e92af736feaeb91020cff84dac4188a4302" +checksum = "8dace796060e4ad10e3d1405b122ae184a8b2e71dce05ae450e4f81b7686b0d9" dependencies = [ "backtrace", - "once_cell", "regex", "sentry-core", ] [[package]] name = "sentry-contexts" -version = "0.37.0" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "961990f9caa76476c481de130ada05614cd7f5aa70fb57c2142f0e09ad3fb2aa" +checksum = "87bd9e6b51ffe2bc7188ebe36cb67557cb95749c08a3f81f33e8c9b135e0d1bc" dependencies = [ "hostname", "libc", @@ -4831,12 +5041,11 @@ dependencies = [ [[package]] name = "sentry-core" -version = "0.37.0" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a6409d845707d82415c800290a5d63be5e3df3c2e417b0997c60531dfbd35ef" +checksum = "7426d4beec270cfdbb50f85f0bb2ce176ea57eed0b11741182a163055a558187" dependencies = [ - "once_cell", - "rand 0.8.5", + "rand 0.9.1", "sentry-types", "serde", "serde_json", @@ -4844,20 +5053,19 @@ dependencies = [ [[package]] name = "sentry-debug-images" -version = "0.37.0" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71ab5df4f3b64760508edfe0ba4290feab5acbbda7566a79d72673065888e5cc" +checksum = "9df15c066c04f34c4dfd496a8e76590106b93283f72ef1a47d8fb24d88493424" dependencies = [ "findshlibs", - "once_cell", "sentry-core", ] [[package]] name = "sentry-panic" -version = "0.37.0" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "609b1a12340495ce17baeec9e08ff8ed423c337c1a84dffae36a178c783623f3" +checksum = "c92beed69b776a162b6d269bef1eaa3e614090b6df45a88d9b239c4fdbffdfba" dependencies = [ "sentry-backtrace", "sentry-core", @@ -4865,9 +5073,9 @@ dependencies = [ [[package]] name = "sentry-tower" -version = "0.37.0" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b98005537e38ee3bc10e7d36e7febe9b8e573d03f2ddd85fcdf05d21f9abd6d" +checksum = "53e699974e956e032e08e3595ca67590860b0d7aa522ede2214094eb13200880" dependencies = [ "axum", "http 1.3.1", @@ -4880,9 +5088,9 @@ dependencies = [ [[package]] name = "sentry-tracing" -version = "0.37.0" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f4e86402d5c50239dc7d8fd3f6d5e048221d5fcb4e026d8d50ab57fe4644cb" +checksum = "55c323492795de90824f3198562e33dd74ae3bc852fbb13c0cabec54a1cf73cd" dependencies = [ "sentry-backtrace", "sentry-core", @@ -4892,16 +5100,16 @@ dependencies = [ [[package]] name = "sentry-types" -version = "0.37.0" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3f117b8755dbede8260952de2aeb029e20f432e72634e8969af34324591631" +checksum = "04b6c9287202294685cb1f749b944dbbce8160b81a1061ecddc073025fed129f" dependencies = [ "debugid", "hex", - "rand 0.8.5", + "rand 0.9.1", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.12", "time", "url", "uuid", @@ -5439,6 +5647,7 @@ dependencies = [ "bytes", "libc", "mio", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", diff --git a/Cargo.toml b/Cargo.toml index 4d90cfed92..f645b58e22 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -114,7 +114,7 @@ reqwest = { version = "=0.12.15", features = ["gzip", "json"] } rss = { version = "=2.0.12", default-features = false, features = ["atom"] } secrecy = "=0.10.3" semver = { version = "=1.0.26", features = ["serde"] } -sentry = { version = "=0.37.0", features = ["tracing", "tower", "tower-axum-matched-path", "tower-http"] } +sentry = { version = "=0.38.1", features = ["tracing", "tower", "tower-axum-matched-path", "tower-http"] } serde = { version = "=1.0.219", features = ["derive"] } serde_json = "=1.0.140" sha2 = "=0.10.9" @@ -148,6 +148,6 @@ diesel = { version = "=2.2.10", features = ["r2d2"] } googletest = "=0.14.0" insta = { version = "=1.43.1", features = ["glob", "json", "redactions"] } regex = "=1.11.1" -sentry = { version = "=0.37.0", features = ["test"] } +sentry = { version = "=0.38.1", features = ["test"] } tokio = "=1.45.0" zip = { version = "=2.6.1", default-features = false, features = ["deflate"] } diff --git a/crates/crates_io_worker/Cargo.toml b/crates/crates_io_worker/Cargo.toml index d61d0f5d3f..0ed85bf19f 100644 --- a/crates/crates_io_worker/Cargo.toml +++ b/crates/crates_io_worker/Cargo.toml @@ -12,7 +12,7 @@ anyhow = "=1.0.98" diesel = { version = "=2.2.10", features = ["postgres", "serde_json"] } diesel-async = { version = "=0.5.2", features = ["async-connection-wrapper", "deadpool", "postgres"] } futures-util = "=0.3.31" -sentry-core = { version = "=0.37.0", features = ["client"] } +sentry-core = { version = "=0.38.1", features = ["client"] } serde = { version = "=1.0.219", features = ["derive"] } serde_json = "=1.0.140" thiserror = "=2.0.12" diff --git a/src/middleware.rs b/src/middleware.rs index c23142e301..07d63534bd 100644 --- a/src/middleware.rs +++ b/src/middleware.rs @@ -39,7 +39,7 @@ pub fn apply_axum_middleware(state: AppState, router: Router<()>) -> Router { let middlewares_1 = tower::ServiceBuilder::new() .layer(sentry_tower::NewSentryLayer::new_from_top()) - .layer(sentry_tower::SentryHttpLayer::with_transaction()) + .layer(sentry_tower::SentryHttpLayer::new().enable_transaction()) .layer(from_fn(self::real_ip::middleware)) .layer(from_fn(log_request::log_requests)) .layer(CatchPanicLayer::new()) diff --git a/src/util/tracing.rs b/src/util/tracing.rs index 15ff4ec3f4..e8f8e568a0 100644 --- a/src/util/tracing.rs +++ b/src/util/tracing.rs @@ -54,7 +54,7 @@ fn init_with_default_level(level: LevelFilter) { pub fn event_filter(metadata: &Metadata<'_>) -> EventFilter { match metadata.level() { &Level::ERROR if metadata.target() == "http" => EventFilter::Breadcrumb, - &Level::ERROR => EventFilter::Exception, + &Level::ERROR => EventFilter::Event, &Level::WARN | &Level::INFO => EventFilter::Breadcrumb, &Level::DEBUG | &Level::TRACE => EventFilter::Ignore, }