Skip to content

Commit 97efb24

Browse files
committed
review: ReplayProcessingConfig
1 parent d76fbde commit 97efb24

File tree

1 file changed

+27
-27
lines changed

1 file changed

+27
-27
lines changed

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

+27-27
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ pub fn process(
4141
return Ok(());
4242
}
4343

44-
let rs = {
44+
let rpc = {
4545
let meta = state.envelope().meta();
4646

47-
ReplayState {
47+
ReplayProcessingConfig {
4848
config: &state.project_state.config,
4949
global_config,
5050
geoip_lookup,
@@ -63,7 +63,7 @@ pub fn process(
6363
.project_state
6464
.has_feature(Feature::SessionReplayRecordingScrubbing)
6565
{
66-
let datascrubbing_config = rs
66+
let datascrubbing_config = rpc
6767
.config
6868
.datascrubbing_settings
6969
.pii_config()
@@ -72,7 +72,7 @@ pub fn process(
7272

7373
Some(RecordingScrubber::new(
7474
state.config.max_replay_uncompressed_size(),
75-
rs.config.pii_config.as_ref(),
75+
rpc.config.pii_config.as_ref(),
7676
datascrubbing_config,
7777
))
7878
} else {
@@ -89,7 +89,7 @@ pub fn process(
8989

9090
match item.ty() {
9191
ItemType::ReplayEvent => {
92-
let replay_event = handle_replay_event_item(item.payload(), &rs)?;
92+
let replay_event = handle_replay_event_item(item.payload(), &rpc)?;
9393
item.set_payload(ContentType::Json, replay_event);
9494
}
9595
ItemType::ReplayRecording => {
@@ -99,7 +99,7 @@ pub fn process(
9999
}
100100
ItemType::ReplayVideo => {
101101
let replay_video =
102-
handle_replay_video_item(item.payload(), scrubber.as_mut(), &rs)?;
102+
handle_replay_video_item(item.payload(), scrubber.as_mut(), &rpc)?;
103103
item.set_payload(ContentType::OctetStream, replay_video);
104104
}
105105
_ => {}
@@ -110,7 +110,7 @@ pub fn process(
110110
}
111111

112112
#[derive(Debug)]
113-
struct ReplayState<'a> {
113+
struct ReplayProcessingConfig<'a> {
114114
pub config: &'a ProjectConfig,
115115
pub global_config: &'a GlobalConfig,
116116
pub geoip_lookup: Option<&'a GeoIpLookup>,
@@ -125,16 +125,16 @@ struct ReplayState<'a> {
125125

126126
fn handle_replay_event_item(
127127
payload: Bytes,
128-
state: &ReplayState<'_>,
128+
config: &ReplayProcessingConfig<'_>,
129129
) -> Result<Bytes, ProcessingError> {
130-
match process_replay_event(&payload, state) {
130+
match process_replay_event(&payload, config) {
131131
Ok(replay) => {
132132
if let Some(replay_type) = replay.value() {
133133
relay_filter::should_filter(
134134
replay_type,
135-
state.client_addr,
136-
&state.config.filter_settings,
137-
state.global_config.filters(),
135+
config.client_addr,
136+
&config.config.filter_settings,
137+
config.global_config.filters(),
138138
)
139139
.map_err(ProcessingError::ReplayFiltered)?;
140140

@@ -145,9 +145,9 @@ fn handle_replay_event_item(
145145
metric!(counter(RelayCounters::ReplayExceededSegmentLimit) += 1);
146146

147147
relay_log::warn!(
148-
event_id = ?state.event_id,
149-
project_id = state.project_id.map(|v| v.value()),
150-
organization_id = state.organization_id,
148+
event_id = ?config.event_id,
149+
project_id = config.project_id.map(|v| v.value()),
150+
organization_id = config.organization_id,
151151
segment_id = segment_id,
152152
"replay segment-exceeded-limit"
153153
);
@@ -160,7 +160,7 @@ fn handle_replay_event_item(
160160
Err(error) => {
161161
relay_log::error!(
162162
error = &error as &dyn Error,
163-
event_id = ?state.event_id,
163+
event_id = ?config.event_id,
164164
"failed to serialize replay"
165165
);
166166
Ok(payload)
@@ -170,9 +170,9 @@ fn handle_replay_event_item(
170170
Err(error) => {
171171
relay_log::warn!(
172172
error = &error as &dyn Error,
173-
event_id = ?state.event_id,
174-
project_id = state.project_id.map(|v| v.value()),
175-
organization_id = state.organization_id,
173+
event_id = ?config.event_id,
174+
project_id = config.project_id.map(|v| v.value()),
175+
organization_id = config.organization_id,
176176
"invalid replay event"
177177
);
178178
Err(match error {
@@ -196,7 +196,7 @@ fn handle_replay_event_item(
196196
/// Validates, normalizes, and scrubs PII from a replay event.
197197
fn process_replay_event(
198198
payload: &[u8],
199-
state: &ReplayState<'_>,
199+
config: &ReplayProcessingConfig<'_>,
200200
) -> Result<Annotated<Replay>, ReplayError> {
201201
let mut replay =
202202
Annotated::<Replay>::from_json_bytes(payload).map_err(ReplayError::CouldNotParse)?;
@@ -208,18 +208,18 @@ fn process_replay_event(
208208
replay::validate(replay_value)?;
209209
replay::normalize(
210210
&mut replay,
211-
state.client_addr,
212-
state.user_agent.as_deref(),
213-
state.geoip_lookup,
211+
config.client_addr,
212+
config.user_agent.as_deref(),
213+
config.geoip_lookup,
214214
);
215215

216-
if let Some(ref config) = state.config.pii_config {
216+
if let Some(ref config) = config.config.pii_config {
217217
let mut processor = PiiProcessor::new(config.compiled());
218218
processor::process_value(&mut replay, &mut processor, ProcessingState::root())
219219
.map_err(|e| ReplayError::CouldNotScrub(e.to_string()))?;
220220
}
221221

222-
let pii_config = state
222+
let pii_config = config
223223
.config
224224
.datascrubbing_settings
225225
.pii_config()
@@ -272,7 +272,7 @@ struct ReplayVideoEvent {
272272
fn handle_replay_video_item(
273273
payload: Bytes,
274274
scrubber: Option<&mut RecordingScrubber>,
275-
state: &ReplayState<'_>,
275+
config: &ReplayProcessingConfig<'_>,
276276
) -> Result<Bytes, ProcessingError> {
277277
let ReplayVideoEvent {
278278
replay_event,
@@ -282,7 +282,7 @@ fn handle_replay_video_item(
282282
.map_err(|_| ProcessingError::InvalidReplay(DiscardReason::InvalidReplayVideoEvent))?;
283283

284284
// Process as a replay-event envelope item.
285-
let replay_event = handle_replay_event_item(replay_event, state)?;
285+
let replay_event = handle_replay_event_item(replay_event, config)?;
286286

287287
// Process as a replay-recording envelope item.
288288
let replay_recording = handle_replay_recording_item(replay_recording, scrubber)?;

0 commit comments

Comments
 (0)