From 7b3e2b6dd79b37d3844eb2345a9c6ebebf455de9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 29 Jul 2026 20:31:36 +0000 Subject: [PATCH 1/2] Fix Sentry 0.49 client options API usage --- src/lib.rs | 27 ++++++++++++++------------- tests/tests.rs | 7 +++++-- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 8bda8ce..81d6edb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -83,19 +83,20 @@ impl RocketSentry { } fn init(&self, dsn: &str, traces_sample_rate: f32, environment: Cow<'static, str>) { - let guard = sentry::init(( - dsn, - ClientOptions { - before_send: Some(Arc::new(|event| { - info!("Sending event to Sentry: {}", event.event_id); - Some(event) - })), - traces_sample_rate, - traces_sampler: self.traces_sampler.clone(), - environment: Some(environment), - ..Default::default() - }, - )); + let mut client_options = ClientOptions::new() + .before_send(|event| { + info!("Sending event to Sentry: {}", event.event_id); + Some(event) + }) + .environment(environment); + + if let Some(traces_sampler) = self.traces_sampler.as_ref().map(Arc::clone) { + client_options = client_options.traces_sampler(move |ctx| traces_sampler(ctx)); + } else if traces_sample_rate > 0f32 { + client_options = client_options.traces_sample_rate(traces_sample_rate); + } + + let guard = sentry::init((dsn, client_options)); if guard.is_enabled() { // Tuck the ClientInitGuard in the fairing, so it lives as long as the server. diff --git a/tests/tests.rs b/tests/tests.rs index 43d31c4..e67ba97 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -1,7 +1,7 @@ use figment::Figment; use rocket::Config; use rocket_sentry::RocketSentry; -use sentry::{Hub, TransactionContext}; +use sentry::{Hub, TracesSamplingStrategy, TransactionContext}; use std::sync::Arc; const SENTRY_DSN_CONFIG: (&str, &str) = ("sentry_dsn", "https://123@sentry.io/456"); @@ -48,7 +48,10 @@ async fn fairing_init_with_specific_traces_sampler() { .expect("Rocket failed to ignite"); let sentry_client = hub.client().unwrap(); - assert!(sentry_client.options().traces_sampler.is_some()); + assert!(matches!( + sentry_client.options().traces_sampling_strategy, + TracesSamplingStrategy::Function(_) + )); } async fn init_rocket_using_figment(figment: Figment) { From 817803f50b20c9c8c16a6fcbc16b8835dccce8bd Mon Sep 17 00:00:00 2001 From: Marti Raudsepp Date: Wed, 12 Aug 2026 16:55:40 +0000 Subject: [PATCH 2/2] simplify --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 81d6edb..d6381e1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -92,7 +92,7 @@ impl RocketSentry { if let Some(traces_sampler) = self.traces_sampler.as_ref().map(Arc::clone) { client_options = client_options.traces_sampler(move |ctx| traces_sampler(ctx)); - } else if traces_sample_rate > 0f32 { + } else if traces_sample_rate > 0.0 { client_options = client_options.traces_sample_rate(traces_sample_rate); }