Skip to content

Commit

Permalink
Start sentry transactions for each component
Browse files Browse the repository at this point in the history
  • Loading branch information
cmanallen committed Mar 5, 2025
1 parent 8db938c commit 3a7dd29
Showing 1 changed file with 31 additions and 15 deletions.
46 changes: 31 additions & 15 deletions src/sentry/replays/consumers/recording_buffered.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import logging
from collections.abc import Mapping

import sentry_sdk
from arroyo.backends.kafka.consumer import KafkaPayload
from arroyo.processing.strategies import FilterStep, RunTask, RunTaskInThreads
from arroyo.processing.strategies.abstract import ProcessingStrategy, ProcessingStrategyFactory
from arroyo.processing.strategies.commit import CommitOffsets
from arroyo.types import Commit, Message, Partition
from django.conf import settings

from sentry.filestore.gcs import GCS_RETRYABLE_ERRORS
from sentry.replays.usecases.ingest import (
Expand Down Expand Up @@ -44,21 +46,35 @@ def create_with_partitions(


def process_message(message: Message[KafkaPayload]) -> ProcessedRecordingMessage | None:
try:
return process_recording_message(parse_recording_message(message.payload.value))
except DropSilently:
return None
except Exception:
logger.exception("Failed to process replay recording message.")
return None
with sentry_sdk.start_transaction(
name="replays.consumer.recording_buffered.process_message",
op="replays.consumer.recording_buffered",
custom_sampling_context={
"sample_rate": getattr(settings, "SENTRY_REPLAY_RECORDINGS_CONSUMER_APM_SAMPLING", 0)
},
):
try:
return process_recording_message(parse_recording_message(message.payload.value))
except DropSilently:
return None
except Exception:
logger.exception("Failed to process replay recording message.")
return None


def commit_message(message: Message[ProcessedRecordingMessage]) -> None:
try:
commit_recording_message(message.payload)
return None
except GCS_RETRYABLE_ERRORS:
raise
except Exception:
logger.exception("Failed to commit replay recording message.")
return None
with sentry_sdk.start_transaction(
name="replays.consumer.recording_buffered.commit_message",
op="replays.consumer.recording_buffered",
custom_sampling_context={
"sample_rate": getattr(settings, "SENTRY_REPLAY_RECORDINGS_CONSUMER_APM_SAMPLING", 0)
},
):
try:
commit_recording_message(message.payload)
return None
except GCS_RETRYABLE_ERRORS:
raise
except Exception:
logger.exception("Failed to commit replay recording message.")
return None

0 comments on commit 3a7dd29

Please sign in to comment.