diff --git a/Cargo.lock b/Cargo.lock index 42f67c59..a7a986b9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -464,6 +464,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" + [[package]] name = "basic-cookies" version = "0.1.5" @@ -845,6 +851,16 @@ dependencies = [ "uuid", ] +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "pem-rfc7468", + "zeroize", +] + [[package]] name = "deranged" version = "0.3.11" @@ -1314,7 +1330,7 @@ dependencies = [ "ipnet", "once_cell", "rand 0.8.5", - "thiserror", + "thiserror 1.0.69", "tinyvec", "tokio", "tracing", @@ -1337,7 +1353,7 @@ dependencies = [ "rand 0.8.5", "resolv-conf", "smallvec", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -1485,7 +1501,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -1591,7 +1607,7 @@ dependencies = [ "hyper 1.6.0 (git+https://github.com/getsentry/hyper?rev=33f3dc16d0e6c926a47194ed7249540d4fadadc3)", "libc", "pin-project-lite", - "socket2", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -1612,7 +1628,7 @@ dependencies = [ "hyper 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc", "pin-project-lite", - "socket2", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -1814,13 +1830,24 @@ version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb" +[[package]] +name = "io-uring" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "libc", +] + [[package]] name = "ipconfig" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2", + "socket2 0.5.10", "widestring", "windows-sys 0.48.0", "winreg 0.50.0", @@ -2049,9 +2076,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" dependencies = [ "value-bag", ] @@ -2110,7 +2137,7 @@ checksum = "a0905009f54328c743a2046a86c88157621f473a2202cfa922cb716615c4b292" dependencies = [ "cadence", "metrics", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2481,6 +2508,15 @@ dependencies = [ "serde", ] +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -2819,7 +2855,7 @@ dependencies = [ "rand 0.9.1", "ryu", "sha1_smol", - "socket2", + "socket2 0.5.10", "tokio", "tokio-util", "url", @@ -2850,7 +2886,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3066,7 +3102,7 @@ dependencies = [ "sentry 0.32.3", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "uuid", @@ -3146,9 +3182,12 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "zeroize", +] [[package]] name = "rustls-webpki" @@ -3267,26 +3306,27 @@ dependencies = [ "sentry-panic 0.32.3", "sentry-tracing 0.32.3", "tokio", - "ureq", + "ureq 2.10.0", ] [[package]] name = "sentry" -version = "0.34.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5484316556650182f03b43d4c746ce0e3e48074a21e2f51244b648b6542e1066" +checksum = "507ac2be9bf2da56c831da57faf1dadd81f434bd282935cdb06193d0c94e8811" dependencies = [ "httpdate", "native-tls", "reqwest 0.12.9", - "sentry-backtrace 0.34.0", - "sentry-contexts 0.34.0", - "sentry-core 0.34.0", - "sentry-debug-images 0.34.0", - "sentry-panic 0.34.0", - "sentry-tracing 0.34.0", + "sentry-backtrace 0.41.0", + "sentry-contexts 0.41.0", + "sentry-core 0.41.0", + "sentry-debug-images 0.41.0", + "sentry-log", + "sentry-panic 0.41.0", + "sentry-tracing 0.41.0", "tokio", - "ureq", + "ureq 3.0.12", ] [[package]] @@ -3303,14 +3343,13 @@ dependencies = [ [[package]] name = "sentry-backtrace" -version = "0.34.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40aa225bb41e2ec9d7c90886834367f560efc1af028f1c5478a6cce6a59c463a" +checksum = "eb4416302fa5325181a120e0fe7d4afd83cd95e52a9b86afa34a8161383fe0dc" dependencies = [ "backtrace", - "once_cell", "regex", - "sentry-core 0.34.0", + "sentry-core 0.41.0", ] [[package]] @@ -3329,15 +3368,15 @@ dependencies = [ [[package]] name = "sentry-contexts" -version = "0.34.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a8dd746da3d16cb8c39751619cefd4fcdbd6df9610f3310fd646b55f6e39910" +checksum = "936752f42b6f651dcb257da0bfa235ecc79e82011c49ed3383c212cc582263ff" dependencies = [ "hostname 0.4.0", "libc", "os_info", "rustc_version", - "sentry-core 0.34.0", + "sentry-core 0.41.0", "uname", ] @@ -3356,13 +3395,12 @@ dependencies = [ [[package]] name = "sentry-core" -version = "0.34.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161283cfe8e99c8f6f236a402b9ccf726b201f365988b5bb637ebca0abbd4a30" +checksum = "00e9bd2cadaeda3af41e9fa5d14645127d6f6a4aec73da3ae38e477ecafd3682" dependencies = [ - "once_cell", - "rand 0.8.5", - "sentry-types 0.34.0", + "rand 0.9.1", + "sentry-types 0.41.0", "serde", "serde_json", ] @@ -3380,13 +3418,12 @@ dependencies = [ [[package]] name = "sentry-debug-images" -version = "0.34.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc6b25e945fcaa5e97c43faee0267eebda9f18d4b09a251775d8fef1086238a" +checksum = "e1e074fe9a0970c91999b23ed3195e6e30990d589fba3a68f20a1686af0f5cda" dependencies = [ "findshlibs", - "once_cell", - "sentry-core 0.34.0", + "sentry-core 0.41.0", ] [[package]] @@ -3404,11 +3441,21 @@ dependencies = [ "serde_json", "serde_yaml", "syn 2.0.101", - "thiserror", + "thiserror 1.0.69", "typify", "url", ] +[[package]] +name = "sentry-log" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a693f27e3f63ae085cf7c176b5c44038af27c8a0170d01db30ccf776c2d40ce3" +dependencies = [ + "log", + "sentry-core 0.41.0", +] + [[package]] name = "sentry-panic" version = "0.32.3" @@ -3421,12 +3468,12 @@ dependencies = [ [[package]] name = "sentry-panic" -version = "0.34.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc74f229c7186dd971a9491ffcbe7883544aa064d1589bd30b83fb856cd22d63" +checksum = "4651d34f3ba649d9e6dc1268443cae6728b8f741c2f0264004f8ecf5b247330d" dependencies = [ - "sentry-backtrace 0.34.0", - "sentry-core 0.34.0", + "sentry-backtrace 0.41.0", + "sentry-core 0.41.0", ] [[package]] @@ -3443,12 +3490,13 @@ dependencies = [ [[package]] name = "sentry-tracing" -version = "0.34.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3c5faf2103cd01eeda779ea439b68c4ee15adcdb16600836e97feafab362ec" +checksum = "c25c47d36bc80c74d26d568ffe970c37b337c061b7234ad6f2d159439c16f000" dependencies = [ - "sentry-backtrace 0.34.0", - "sentry-core 0.34.0", + "bitflags 2.6.0", + "sentry-backtrace 0.41.0", + "sentry-core 0.41.0", "tracing-core", "tracing-subscriber", ] @@ -3464,7 +3512,7 @@ dependencies = [ "rand 0.8.5", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "time", "url", "uuid", @@ -3472,16 +3520,16 @@ dependencies = [ [[package]] name = "sentry-types" -version = "0.34.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d68cdf6bc41b8ff3ae2a9c4671e97426dcdd154cc1d4b6b72813f285d6b163f" +checksum = "a08e7154abe2cd557f26fd70038452810748aefdf39bc973f674421224b147c1" dependencies = [ "debugid", "hex", - "rand 0.8.5", + "rand 0.9.1", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", "time", "url", "uuid", @@ -3707,7 +3755,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8aade1759da26233568437677cb15476321840223c3b02839eafa54890d50846" dependencies = [ - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3720,6 +3768,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "spin" version = "0.5.2" @@ -3860,7 +3918,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", ] [[package]] @@ -3874,6 +3941,17 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "thread_local" version = "1.1.8" @@ -3951,21 +4029,23 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.43.1" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "492a604e2fd7f814268a378409e6c92b5525d747d10db9a229723f55a417958c" +checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "slab", + "socket2 0.6.0", "tokio-macros", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4073,7 +4153,7 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "socket2", + "socket2 0.5.10", "tokio", "tokio-stream", "tower", @@ -4239,7 +4319,7 @@ dependencies = [ "schemars", "serde_json", "syn 2.0.101", - "thiserror", + "thiserror 1.0.69", "unicode-ident", ] @@ -4349,7 +4429,7 @@ dependencies = [ "rmp-serde", "rust_arroyo", "rustls", - "sentry 0.34.0", + "sentry 0.41.0", "sentry-kafka-schemas", "serde", "serde_json", @@ -4357,7 +4437,7 @@ dependencies = [ "serde_with", "similar-asserts", "socket-server-mocker", - "thiserror", + "thiserror 1.0.69", "time", "tokio", "tokio-metrics", @@ -4383,6 +4463,36 @@ dependencies = [ "url", ] +[[package]] +name = "ureq" +version = "3.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f0fde9bc91026e381155f8c67cb354bcd35260b2f4a29bcc84639f762760c39" +dependencies = [ + "base64 0.22.1", + "der", + "log", + "native-tls", + "percent-encoding", + "rustls-pemfile", + "rustls-pki-types", + "ureq-proto", + "utf-8", + "webpki-root-certs 0.26.11", +] + +[[package]] +name = "ureq-proto" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59db78ad1923f2b1be62b6da81fe80b173605ca0d57f85da2e005382adf693f7" +dependencies = [ + "base64 0.22.1", + "http 1.2.0", + "httparse", + "log", +] + [[package]] name = "url" version = "2.5.4" @@ -4395,6 +4505,12 @@ dependencies = [ "serde", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "utf16_iter" version = "1.0.5" @@ -4567,6 +4683,24 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" +dependencies = [ + "webpki-root-certs 1.0.2", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "which" version = "4.4.2" diff --git a/Cargo.toml b/Cargo.toml index ba1d1625..3210eb6e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,17 @@ serde = { version = "1.0.159", features = ["derive", "rc"] } serde_json = "1.0.93" figment = { version = "0.10", features = ["yaml", "env", "test"] } similar-asserts = "1.4.2" -sentry = { version = "0.34.0", features = ["tracing"] } +sentry = { version = "0.41.0", default-features = false, features = [ + # default features, except `release-health` is disabled + "backtrace", + "contexts", + "debug-images", + "panic", + "transport", + # additional features + "tracing", + "logs" +] } thiserror = "1.0.61" tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["json"] } diff --git a/src/logging.rs b/src/logging.rs index 8542c7d4..34068622 100644 --- a/src/logging.rs +++ b/src/logging.rs @@ -1,6 +1,6 @@ use std::{borrow::Cow, str::FromStr}; -use sentry::types::Dsn; +use sentry::{integrations::tracing::EventFilter, types::Dsn}; use serde::{Deserialize, Serialize}; use tracing::level_filters::LevelFilter; @@ -114,9 +114,17 @@ pub fn init(config: LoggingConfig) { .boxed(), }; + // Same as the default filter, except it sends everything at or above INFO as logs instead of breadcrumbs. + let sentry_layer = + sentry::integrations::tracing::layer().event_filter(|md| match *md.level() { + tracing::Level::ERROR => EventFilter::Event | EventFilter::Log, + tracing::Level::WARN | tracing::Level::INFO => EventFilter::Log, + tracing::Level::DEBUG | tracing::Level::TRACE => EventFilter::Ignore, + }); + let logs_subscriber = tracing_subscriber::registry() .with(format.with_filter(config.log_level.level_filter())) - .with(sentry::integrations::tracing::layer()); + .with(sentry_layer); logs_subscriber.init(); }