|
1 | 1 | import logging |
2 | 2 | from collections.abc import Generator, Iterator |
3 | | -from datetime import UTC, datetime, timedelta |
| 3 | +from datetime import datetime, timedelta |
4 | 4 | from typing import Any, TypedDict |
5 | 5 | from urllib.parse import urlparse |
6 | 6 |
|
|
26 | 26 | from sentry.services.eventstore.models import Event |
27 | 27 | from sentry.snuba.referrer import Referrer |
28 | 28 | from sentry.utils import json, metrics |
| 29 | +from sentry.utils.dates import outside_retention_with_modified_start |
29 | 30 | from sentry.utils.platform_categories import MOBILE |
30 | 31 |
|
31 | 32 | logger = logging.getLogger(__name__) |
@@ -556,21 +557,24 @@ def rpc_get_replay_summary_logs( |
556 | 557 | replay_start = processed_response[0].get("started_at") |
557 | 558 | replay_end = processed_response[0].get("finished_at") |
558 | 559 | if replay_start: |
559 | | - start = max( |
560 | | - datetime.fromisoformat(replay_start) - timedelta(seconds=10), |
561 | | - datetime.now(UTC) - timedelta(days=90), |
562 | | - ) |
| 560 | + start = max(datetime.fromisoformat(replay_start) - timedelta(seconds=10), start) |
563 | 561 | if replay_end: |
564 | | - end = min(datetime.fromisoformat(replay_end) + timedelta(seconds=10), datetime.now(UTC)) |
| 562 | + end = min(datetime.fromisoformat(replay_end) + timedelta(seconds=10), end) |
| 563 | + |
| 564 | + # Clamp start to the organization's retention period. |
| 565 | + _, start = outside_retention_with_modified_start(start, end, project.organization) |
565 | 566 |
|
566 | 567 | # Fetch same-trace errors. |
567 | | - trace_connected_errors = fetch_trace_connected_errors( |
568 | | - project=project, |
569 | | - trace_ids=trace_ids, |
570 | | - start=start, |
571 | | - end=end, |
572 | | - limit=100, |
573 | | - ) |
| 568 | + if start >= end: |
| 569 | + trace_connected_errors = [] |
| 570 | + else: |
| 571 | + trace_connected_errors = fetch_trace_connected_errors( |
| 572 | + project=project, |
| 573 | + trace_ids=trace_ids, |
| 574 | + start=start, |
| 575 | + end=end, |
| 576 | + limit=100, |
| 577 | + ) |
574 | 578 | trace_connected_error_ids = {x["id"] for x in trace_connected_errors} |
575 | 579 |
|
576 | 580 | # Fetch directly linked errors, if they weren't returned by the trace query. |
|
0 commit comments