Skip to content

Commit b69d82a

Browse files
authored
fix: use release-health flag in sentry-actix and remove it from subcrates where unneeded (#787)
* fix: use `release-health` flag in `sentry-actix` and remove it from subcrates where not needed * Update lib.rs * Update lib.rs * gate options as well * tests * Update lib.rs * remove unnecessary cfg macros
1 parent c3987a6 commit b69d82a

File tree

7 files changed

+31
-30
lines changed

7 files changed

+31
-30
lines changed

sentry-actix/src/lib.rs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -284,18 +284,24 @@ where
284284
));
285285

286286
let client = hub.client();
287-
let track_sessions = client.as_ref().is_some_and(|client| {
288-
let options = client.options();
289-
options.auto_session_tracking
290-
&& options.session_mode == sentry_core::SessionMode::Request
291-
});
287+
292288
let max_request_body_size = client
293289
.as_ref()
294290
.map(|client| client.options().max_request_body_size)
295291
.unwrap_or(MaxRequestBodySize::None);
296-
if track_sessions {
297-
hub.start_session();
292+
293+
#[cfg(feature = "release-health")]
294+
{
295+
let track_sessions = client.as_ref().is_some_and(|client| {
296+
let options = client.options();
297+
options.auto_session_tracking
298+
&& options.session_mode == sentry_core::SessionMode::Request
299+
});
300+
if track_sessions {
301+
hub.start_session();
302+
}
298303
}
304+
299305
let with_pii = client
300306
.as_ref()
301307
.is_some_and(|client| client.options().send_default_pii);
@@ -673,6 +679,7 @@ mod tests {
673679
assert_eq!(request.method, Some("GET".into()));
674680
}
675681

682+
#[cfg(feature = "release-health")]
676683
#[actix_web::test]
677684
async fn test_track_session() {
678685
let envelopes = sentry::test::with_captured_envelopes_options(

sentry-core/src/clientoptions.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -174,14 +174,10 @@ pub struct ClientOptions {
174174
/// When automatic session tracking is enabled, a new "user-mode" session
175175
/// is started at the time of `sentry::init`, and will persist for the
176176
/// application lifetime.
177-
///
178-
/// **NOTE**: The `release-health` feature (enabled by default) needs to be enabled for this option to have
179-
/// any effect.
177+
#[cfg(feature = "release-health")]
180178
pub auto_session_tracking: bool,
181179
/// Determine how Sessions are being tracked.
182-
///
183-
/// **NOTE**: The `release-health` feature (enabled by default) needs to be enabled for this option to have
184-
/// any effect.
180+
#[cfg(feature = "release-health")]
185181
pub session_mode: SessionMode,
186182
/// Border frames which indicate a border from a backtrace to
187183
/// useless internals. Some are automatically included.
@@ -232,7 +228,8 @@ impl fmt::Debug for ClientOptions {
232228

233229
let integrations: Vec<_> = self.integrations.iter().map(|i| i.name()).collect();
234230

235-
f.debug_struct("ClientOptions")
231+
let mut debug_struct = f.debug_struct("ClientOptions");
232+
debug_struct
236233
.field("dsn", &self.dsn)
237234
.field("debug", &self.debug)
238235
.field("release", &self.release)
@@ -260,9 +257,14 @@ impl fmt::Debug for ClientOptions {
260257
.field("http_proxy", &self.http_proxy)
261258
.field("https_proxy", &self.https_proxy)
262259
.field("shutdown_timeout", &self.shutdown_timeout)
263-
.field("accept_invalid_certs", &self.accept_invalid_certs)
260+
.field("accept_invalid_certs", &self.accept_invalid_certs);
261+
262+
#[cfg(feature = "release-health")]
263+
debug_struct
264264
.field("auto_session_tracking", &self.auto_session_tracking)
265-
.field("session_mode", &self.session_mode)
265+
.field("session_mode", &self.session_mode);
266+
267+
debug_struct
266268
.field("extra_border_frames", &self.extra_border_frames)
267269
.field("trim_backtraces", &self.trim_backtraces)
268270
.field("user_agent", &self.user_agent)
@@ -295,7 +297,9 @@ impl Default for ClientOptions {
295297
https_proxy: None,
296298
shutdown_timeout: Duration::from_secs(2),
297299
accept_invalid_certs: false,
300+
#[cfg(feature = "release-health")]
298301
auto_session_tracking: false,
302+
#[cfg(feature = "release-health")]
299303
session_mode: SessionMode::Application,
300304
extra_border_frames: vec![],
301305
trim_backtraces: true,

sentry-core/src/session.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,8 @@ mod session_impl {
2020
SessionStatus, SessionUpdate,
2121
};
2222

23-
#[cfg(feature = "release-health")]
2423
use crate::scope::StackLayer;
2524

26-
#[cfg(feature = "release-health")]
2725
use crate::types::random_uuid;
2826
use crate::{Client, Envelope};
2927

@@ -45,7 +43,6 @@ mod session_impl {
4543
}
4644

4745
impl Session {
48-
#[cfg(feature = "release-health")]
4946
pub fn from_stack(stack: &StackLayer) -> Option<Self> {
5047
let client = stack.client.as_ref()?;
5148
let options = client.options();
@@ -121,7 +118,6 @@ mod session_impl {
121118
}
122119
}
123120

124-
#[cfg(feature = "release-health")]
125121
pub(crate) fn create_envelope_item(&mut self) -> Option<EnvelopeItem> {
126122
if self.dirty {
127123
let item = self.session_update.clone().into();
@@ -135,7 +131,6 @@ mod session_impl {
135131

136132
// as defined here: https://develop.sentry.dev/sdk/envelopes/#size-limits
137133
const MAX_SESSION_ITEMS: usize = 100;
138-
#[cfg(feature = "release-health")]
139134
const FLUSH_INTERVAL: Duration = Duration::from_secs(60);
140135

141136
#[derive(Debug, Default)]
@@ -202,7 +197,6 @@ mod session_impl {
202197

203198
impl SessionFlusher {
204199
/// Creates a new Flusher that will submit envelopes to the given `transport`.
205-
#[cfg(feature = "release-health")]
206200
pub fn new(transport: TransportArc, mode: SessionMode) -> Self {
207201
let queue = Arc::new(Mutex::new(Default::default()));
208202
#[allow(clippy::mutex_atomic)]
@@ -464,7 +458,6 @@ mod session_impl {
464458
},
465459
crate::ClientOptions {
466460
release: Some("some-release".into()),
467-
#[cfg(feature = "release-health")]
468461
session_mode: SessionMode::Request,
469462
..Default::default()
470463
},

sentry-opentelemetry/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ all-features = true
1818
[dependencies]
1919
sentry-core = { version = "0.37.0", path = "../sentry-core", features = [
2020
"client",
21-
"release-health"
2221
] }
2322
opentelemetry = { version = "0.29.0", default-features = false }
2423
opentelemetry_sdk = { version = "0.29.0", default-features = false, features = [

sentry-tower/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@ rust-version = "1.81"
1616
all-features = true
1717

1818
[features]
19-
default = ["release-health"]
19+
default = []
2020
http = ["dep:http", "pin-project", "url"]
2121
axum-matched-path = ["http", "axum/matched-path"]
22-
release-health = ["sentry-core/release-health"]
2322

2423
[dependencies]
2524
axum = { version = "0.8", optional = true, default-features = false }

sentry-tracing/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@ rust-version = "1.81"
1616
all-features = true
1717

1818
[features]
19-
default = ["release-health"]
19+
default = []
2020
backtrace = ["dep:sentry-backtrace"]
21-
release-health = ["sentry-core/release-health"]
2221

2322
[dependencies]
2423
sentry-core = { version = "0.37.0", path = "../sentry-core", features = [

sentry/src/init.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,9 @@ where
9797
{
9898
let opts = apply_defaults(opts.into());
9999

100-
#[allow(unused)]
100+
#[cfg(feature = "release-health")]
101101
let auto_session_tracking = opts.auto_session_tracking;
102-
#[allow(unused)]
102+
#[cfg(feature = "release-health")]
103103
let session_mode = opts.session_mode;
104104

105105
let client = Arc::new(Client::from(opts));

0 commit comments

Comments
 (0)