From edc750125d74e270bfda9207e2731764f85fa24e Mon Sep 17 00:00:00 2001 From: Colton Allen Date: Tue, 5 Mar 2024 10:58:52 -0600 Subject: [PATCH] feat(replays): Log event-id on replay-event (de)serialization failure (#3221) Closes: https://github.com/getsentry/relay/issues/3219 #skip-changelog --- relay-server/src/services/processor/replay.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/relay-server/src/services/processor/replay.rs b/relay-server/src/services/processor/replay.rs index 62dd459a39..e5dca9a7bd 100644 --- a/relay-server/src/services/processor/replay.rs +++ b/relay-server/src/services/processor/replay.rs @@ -69,6 +69,7 @@ pub fn process( ItemType::ReplayEvent => { match handle_replay_event_item( item.payload(), + &event_id, project_config, client_addr, user_agent, @@ -120,6 +121,7 @@ pub fn process( fn handle_replay_event_item( payload: Bytes, + event_id: &Option, config: &ProjectConfig, client_ip: Option, user_agent: &RawUserAgentInfo<&str>, @@ -128,12 +130,20 @@ fn handle_replay_event_item( Ok(replay) => match replay.to_json() { Ok(json) => Ok(json.into_bytes().into()), Err(error) => { - relay_log::error!(error = &error as &dyn Error, "failed to serialize replay"); + relay_log::error!( + error = &error as &dyn Error, + ?event_id, + "failed to serialize replay" + ); Ok(payload) } }, Err(error) => { - relay_log::warn!(error = &error as &dyn Error, "invalid replay event"); + relay_log::warn!( + error = &error as &dyn Error, + ?event_id, + "invalid replay event" + ); Err(Outcome::Invalid(match error { ReplayError::NoContent => DiscardReason::InvalidReplayEventNoPayload, ReplayError::CouldNotScrub(_) => DiscardReason::InvalidReplayEventPii, @@ -242,7 +252,8 @@ fn handle_replay_video_item( }; // Process as a replay-event envelope item. - let replay_event = handle_replay_event_item(replay_event, config, client_ip, user_agent)?; + let replay_event = + handle_replay_event_item(replay_event, event_id, config, client_ip, user_agent)?; // Process as a replay-recording envelope item. let replay_recording =