Skip to content

Commit a1a6267

Browse files
authored
ref(server): Eliminate some of the unnecessary arcs passed (#4766)
We have a lot of unnecessary arc clones, configs being passed as `Arc<T>`, whey they really should just take a reference. This cleans up some of these cases. I did specifically not touch the spans/transactions codepaths.
1 parent 9310686 commit a1a6267

File tree

7 files changed

+76
-66
lines changed

7 files changed

+76
-66
lines changed

relay-server/src/services/processor.rs

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1272,8 +1272,8 @@ impl EnvelopeProcessorService {
12721272
managed_envelope: &mut TypedEnvelope<Group>,
12731273
event: Annotated<Event>,
12741274
extracted_metrics: &mut ProcessingExtractedMetrics,
1275-
project_info: Arc<ProjectInfo>,
1276-
rate_limits: Arc<RateLimits>,
1275+
project_info: &ProjectInfo,
1276+
rate_limits: &RateLimits,
12771277
) -> Result<Annotated<Event>, ProcessingError> {
12781278
let global_config = self.inner.global_config.current();
12791279
// Cached quotas first, they are quick to evaluate and some quotas (indexed) are not
@@ -1284,8 +1284,8 @@ impl EnvelopeProcessorService {
12841284
event,
12851285
extracted_metrics,
12861286
&global_config,
1287-
project_info.clone(),
1288-
rate_limits.clone(),
1287+
project_info,
1288+
rate_limits,
12891289
)
12901290
.await?;
12911291

@@ -1668,8 +1668,8 @@ impl EnvelopeProcessorService {
16681668
managed_envelope,
16691669
event,
16701670
&mut extracted_metrics,
1671-
project_info.clone(),
1672-
rate_limits,
1671+
&project_info,
1672+
&rate_limits,
16731673
)
16741674
.await?;
16751675

@@ -1749,7 +1749,7 @@ impl EnvelopeProcessorService {
17491749
&event,
17501750
config.clone(),
17511751
project_id,
1752-
project_info.clone(),
1752+
&project_info,
17531753
);
17541754
profile::transfer_id(&mut event, profile_id);
17551755
});
@@ -1862,8 +1862,8 @@ impl EnvelopeProcessorService {
18621862
managed_envelope,
18631863
Annotated::empty(),
18641864
&mut extracted_metrics,
1865-
project_info.clone(),
1866-
rate_limits,
1865+
&project_info,
1866+
&rate_limits,
18671867
)
18681868
.await?;
18691869

@@ -1921,8 +1921,8 @@ impl EnvelopeProcessorService {
19211921
managed_envelope,
19221922
event,
19231923
&mut extracted_metrics,
1924-
project_info.clone(),
1925-
rate_limits,
1924+
&project_info,
1925+
&rate_limits,
19261926
)
19271927
.await?;
19281928

@@ -1956,14 +1956,14 @@ impl EnvelopeProcessorService {
19561956
&self,
19571957
managed_envelope: &mut TypedEnvelope<ProfileChunkGroup>,
19581958
project_info: Arc<ProjectInfo>,
1959-
_rate_limits: Arc<RateLimits>,
1959+
rate_limits: Arc<RateLimits>,
19601960
) -> Result<Option<ProcessingExtractedMetrics>, ProcessingError> {
19611961
profile_chunk::filter(managed_envelope, project_info.clone());
19621962

19631963
if_processing!(self.inner.config, {
19641964
profile_chunk::process(
19651965
managed_envelope,
1966-
project_info.clone(),
1966+
&project_info,
19671967
&self.inner.global_config.current(),
19681968
&self.inner.config,
19691969
);
@@ -1973,8 +1973,8 @@ impl EnvelopeProcessorService {
19731973
managed_envelope,
19741974
Annotated::empty(),
19751975
&mut ProcessingExtractedMetrics::new(),
1976-
project_info,
1977-
_rate_limits,
1976+
&project_info,
1977+
&rate_limits,
19781978
)
19791979
.await?;
19801980

@@ -1988,7 +1988,7 @@ impl EnvelopeProcessorService {
19881988
config: Arc<Config>,
19891989
project_id: ProjectId,
19901990
project_info: Arc<ProjectInfo>,
1991-
_rate_limits: Arc<RateLimits>,
1991+
rate_limits: Arc<RateLimits>,
19921992
) -> Result<Option<ProcessingExtractedMetrics>, ProcessingError> {
19931993
let mut extracted_metrics = ProcessingExtractedMetrics::new();
19941994

@@ -1999,15 +1999,15 @@ impl EnvelopeProcessorService {
19991999
&Annotated::empty(),
20002000
config,
20012001
project_id,
2002-
project_info.clone(),
2002+
&project_info,
20032003
);
20042004

20052005
self.enforce_quotas(
20062006
managed_envelope,
20072007
Annotated::empty(),
20082008
&mut extracted_metrics,
2009-
project_info.clone(),
2010-
_rate_limits,
2009+
&project_info,
2010+
&rate_limits,
20112011
)
20122012
.await?;
20132013

@@ -2029,16 +2029,16 @@ impl EnvelopeProcessorService {
20292029
session::process(
20302030
managed_envelope,
20312031
&mut extracted_metrics,
2032-
project_info.clone(),
2032+
&project_info,
20332033
&self.inner.config,
20342034
);
20352035

20362036
self.enforce_quotas(
20372037
managed_envelope,
20382038
Annotated::empty(),
20392039
&mut extracted_metrics,
2040-
project_info,
2041-
rate_limits,
2040+
&project_info,
2041+
&rate_limits,
20422042
)
20432043
.await?;
20442044

@@ -2059,15 +2059,15 @@ impl EnvelopeProcessorService {
20592059
managed_envelope,
20602060
Annotated::empty(),
20612061
&mut extracted_metrics,
2062-
project_info.clone(),
2063-
rate_limits,
2062+
&project_info,
2063+
&rate_limits,
20642064
)
20652065
.await?;
20662066

20672067
report::process_client_reports(
20682068
managed_envelope,
2069-
config,
2070-
project_info,
2069+
&config,
2070+
&project_info,
20712071
self.inner.addrs.outcome_aggregator.clone(),
20722072
);
20732073

@@ -2087,17 +2087,17 @@ impl EnvelopeProcessorService {
20872087
replay::process(
20882088
managed_envelope,
20892089
&self.inner.global_config.current(),
2090-
config,
2091-
project_info.clone(),
2090+
&config,
2091+
&project_info,
20922092
self.inner.geoip_lookup.as_ref(),
20932093
)?;
20942094

20952095
self.enforce_quotas(
20962096
managed_envelope,
20972097
Annotated::empty(),
20982098
&mut extracted_metrics,
2099-
project_info,
2100-
rate_limits,
2099+
&project_info,
2100+
&rate_limits,
21012101
)
21022102
.await?;
21032103

@@ -2116,8 +2116,8 @@ impl EnvelopeProcessorService {
21162116
managed_envelope,
21172117
Annotated::empty(),
21182118
&mut ProcessingExtractedMetrics::new(),
2119-
project_info,
2120-
rate_limits,
2119+
&project_info,
2120+
&rate_limits,
21212121
)
21222122
.await?;
21232123

@@ -2140,22 +2140,22 @@ impl EnvelopeProcessorService {
21402140

21412141
ourlog::filter(
21422142
managed_envelope,
2143-
self.inner.config.clone(),
2144-
project_info.clone(),
2143+
&self.inner.config,
2144+
&project_info,
21452145
&self.inner.global_config.current(),
21462146
);
21472147

21482148
self.enforce_quotas(
21492149
managed_envelope,
21502150
Annotated::empty(),
21512151
&mut extracted_metrics,
2152-
project_info.clone(),
2153-
rate_limits,
2152+
&project_info,
2153+
&rate_limits,
21542154
)
21552155
.await?;
21562156

21572157
if_processing!(self.inner.config, {
2158-
ourlog::process(managed_envelope, project_info.clone())?;
2158+
ourlog::process(managed_envelope, &project_info)?;
21592159
});
21602160

21612161
Ok(Some(extracted_metrics))
@@ -2206,8 +2206,8 @@ impl EnvelopeProcessorService {
22062206
managed_envelope,
22072207
Annotated::empty(),
22082208
&mut extracted_metrics,
2209-
project_info,
2210-
rate_limits,
2209+
&project_info,
2210+
&rate_limits,
22112211
)
22122212
.await?;
22132213

@@ -3323,8 +3323,8 @@ impl RateLimiter {
33233323
event: Annotated<Event>,
33243324
_extracted_metrics: &mut ProcessingExtractedMetrics,
33253325
global_config: &GlobalConfig,
3326-
project_info: Arc<ProjectInfo>,
3327-
rate_limits: Arc<RateLimits>,
3326+
project_info: &ProjectInfo,
3327+
rate_limits: &RateLimits,
33283328
) -> Result<EnforcementResult, ProcessingError> {
33293329
if managed_envelope.envelope().is_empty() && event.value().is_none() {
33303330
return Ok(EnforcementResult::new(event, RateLimits::default()));

relay-server/src/services/processor/ourlog.rs

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
//! Log processing code.
2-
use std::sync::Arc;
32
43
use crate::services::processor::LogGroup;
54
use relay_config::Config;
@@ -28,11 +27,11 @@ use {
2827
/// Removes logs from the envelope if the feature is not enabled.
2928
pub fn filter(
3029
managed_envelope: &mut TypedEnvelope<LogGroup>,
31-
config: Arc<Config>,
32-
project_info: Arc<ProjectInfo>,
30+
config: &Config,
31+
project_info: &ProjectInfo,
3332
global_config: &GlobalConfig,
3433
) {
35-
let logging_disabled = should_filter(&config, &project_info, Feature::OurLogsIngestion);
34+
let logging_disabled = should_filter(config, project_info, Feature::OurLogsIngestion);
3635
let logs_sampled = global_config
3736
.options
3837
.ourlogs_ingestion_sample_rate
@@ -54,7 +53,7 @@ pub fn filter(
5453
#[cfg(feature = "processing")]
5554
pub fn process(
5655
managed_envelope: &mut TypedEnvelope<LogGroup>,
57-
project_info: Arc<ProjectInfo>,
56+
project_info: &ProjectInfo,
5857
) -> Result<(), ProcessingError> {
5958
let log_items = managed_envelope
6059
.envelope()
@@ -228,7 +227,7 @@ mod tests {
228227

229228
use relay_system::Addr;
230229

231-
fn params() -> (TypedEnvelope<LogGroup>, Arc<ProjectInfo>) {
230+
fn params() -> (TypedEnvelope<LogGroup>, ProjectInfo) {
232231
let bytes = Bytes::from(
233232
r#"{"dsn":"https://e12d836b15bb49d7bbf99e64295d995b:@sentry.io/42"}
234233
{"type":"otel_log"}
@@ -243,7 +242,6 @@ mod tests {
243242
.features
244243
.0
245244
.insert(Feature::OurLogsIngestion);
246-
let project_info = Arc::new(project_info);
247245

248246
let managed_envelope = ManagedEnvelope::new(
249247
dummy_envelope,
@@ -260,15 +258,20 @@ mod tests {
260258
#[test]
261259
fn test_logs_sampled_default() {
262260
let global_config = GlobalConfig::default();
263-
let config = Arc::new(Config::default());
261+
let config = Config::default();
264262
assert!(
265263
global_config
266264
.options
267265
.ourlogs_ingestion_sample_rate
268266
.is_none()
269267
);
270268
let (mut managed_envelope, project_info) = params();
271-
filter(&mut managed_envelope, config, project_info, &global_config);
269+
filter(
270+
&mut managed_envelope,
271+
&config,
272+
&project_info,
273+
&global_config,
274+
);
272275
assert!(
273276
managed_envelope
274277
.envelope()
@@ -283,9 +286,14 @@ mod tests {
283286
fn test_logs_sampled_explicit() {
284287
let mut global_config = GlobalConfig::default();
285288
global_config.options.ourlogs_ingestion_sample_rate = Some(1.0);
286-
let config = Arc::new(Config::default());
289+
let config = Config::default();
287290
let (mut managed_envelope, project_info) = params();
288-
filter(&mut managed_envelope, config, project_info, &global_config);
291+
filter(
292+
&mut managed_envelope,
293+
&config,
294+
&project_info,
295+
&global_config,
296+
);
289297
assert!(
290298
managed_envelope
291299
.envelope()
@@ -300,9 +308,14 @@ mod tests {
300308
fn test_logs_sampled_dropped() {
301309
let mut global_config = GlobalConfig::default();
302310
global_config.options.ourlogs_ingestion_sample_rate = Some(0.0);
303-
let config = Arc::new(Config::default());
311+
let config = Config::default();
304312
let (mut managed_envelope, project_info) = params();
305-
filter(&mut managed_envelope, config, project_info, &global_config);
313+
filter(
314+
&mut managed_envelope,
315+
&config,
316+
&project_info,
317+
&global_config,
318+
);
306319
assert!(
307320
!managed_envelope
308321
.envelope()

relay-server/src/services/processor/profile.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ pub fn filter<Group>(
2525
event: &Annotated<Event>,
2626
config: Arc<Config>,
2727
project_id: ProjectId,
28-
project_info: Arc<ProjectInfo>,
28+
project_info: &ProjectInfo,
2929
) -> Option<ProfileId> {
30-
let profiling_disabled = should_filter(&config, &project_info, Feature::Profiling);
30+
let profiling_disabled = should_filter(&config, project_info, Feature::Profiling);
3131
let has_transaction = event_type(event) == Some(EventType::Transaction);
3232
let keep_unsampled_profiles = true;
3333

relay-server/src/services/processor/profile_chunk.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ pub fn filter<Group>(managed_envelope: &mut TypedEnvelope<Group>, project_info:
3535
#[cfg(feature = "processing")]
3636
pub fn process(
3737
managed_envelope: &mut TypedEnvelope<ProfileChunkGroup>,
38-
project_info: Arc<ProjectInfo>,
38+
project_info: &ProjectInfo,
3939
global_config: &GlobalConfig,
4040
config: &Config,
4141
) {

relay-server/src/services/processor/replay.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
//! Replay related processor code.
22
use std::error::Error;
33
use std::net::IpAddr;
4-
use std::sync::Arc;
54

65
use crate::envelope::{ContentType, ItemType};
76
use crate::services::outcome::DiscardReason;
@@ -28,12 +27,12 @@ use serde::{Deserialize, Serialize};
2827
pub fn process(
2928
managed_envelope: &mut TypedEnvelope<ReplayGroup>,
3029
global_config: &GlobalConfig,
31-
config: Arc<Config>,
32-
project_info: Arc<ProjectInfo>,
30+
config: &Config,
31+
project_info: &ProjectInfo,
3332
geoip_lookup: Option<&GeoIpLookup>,
3433
) -> Result<(), ProcessingError> {
3534
// If the replay feature is not enabled drop the items silently.
36-
if should_filter(&config, &project_info, Feature::SessionReplay) {
35+
if should_filter(config, project_info, Feature::SessionReplay) {
3736
managed_envelope.drop_items_silently();
3837
return Ok(());
3938
}

0 commit comments

Comments
 (0)