From 14cc462e570d57e0a8a59a7a5e93ac9db475f5e1 Mon Sep 17 00:00:00 2001 From: Colton Allen Date: Fri, 25 Jul 2025 15:11:05 -0500 Subject: [PATCH 1/2] Add metrics for replay-event presence tracking --- src/sentry/replays/consumers/recording.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/sentry/replays/consumers/recording.py b/src/sentry/replays/consumers/recording.py index 77382dc03dda89..775ade502b78f3 100644 --- a/src/sentry/replays/consumers/recording.py +++ b/src/sentry/replays/consumers/recording.py @@ -15,6 +15,7 @@ from sentry_kafka_schemas.schema_types.ingest_replay_recordings_v1 import ReplayRecording from sentry_sdk import set_tag +from sentry import metrics from sentry.conf.types.kafka_definition import Topic, get_topic_codec from sentry.filestore.gcs import GCS_RETRYABLE_ERRORS from sentry.replays.usecases.ingest import ( @@ -108,6 +109,9 @@ def parse_recording_event(message: bytes) -> Event: if replay_event_json: replay_event = json.loads(cast(bytes, replay_event_json)) else: + # Check if any events are not present in the pipeline. We need + # to know because we want to write to Snuba from here soon. + metrics.incr("sentry.replays.consumer.recording.missing-replay-event") replay_event = None replay_video_raw = recording.get("replay_video") From 195df87ebb030ca2b58ad2923fe695ca0f5cb45e Mon Sep 17 00:00:00 2001 From: Colton Allen Date: Fri, 25 Jul 2025 15:29:54 -0500 Subject: [PATCH 2/2] Fix import --- src/sentry/replays/consumers/recording.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/sentry/replays/consumers/recording.py b/src/sentry/replays/consumers/recording.py index 775ade502b78f3..090f3f9fe32de6 100644 --- a/src/sentry/replays/consumers/recording.py +++ b/src/sentry/replays/consumers/recording.py @@ -15,7 +15,6 @@ from sentry_kafka_schemas.schema_types.ingest_replay_recordings_v1 import ReplayRecording from sentry_sdk import set_tag -from sentry import metrics from sentry.conf.types.kafka_definition import Topic, get_topic_codec from sentry.filestore.gcs import GCS_RETRYABLE_ERRORS from sentry.replays.usecases.ingest import ( @@ -26,7 +25,7 @@ process_recording_event, track_recording_metadata, ) -from sentry.utils import json +from sentry.utils import json, metrics RECORDINGS_CODEC: Codec[ReplayRecording] = get_topic_codec(Topic.INGEST_REPLAYS_RECORDINGS)