Browse Source

fix(replay): Let the Issue>Replay and Transaction>Replay tab counts look back 90d instead of 14 (#68396)

<img width="851" alt="SCR-20240406-jkia"
src="https://github.com/getsentry/sentry/assets/187460/54d4b842-4b08-4bab-a437-287bf5b74d53">


Fixes https://github.com/getsentry/sentry/issues/68057
Ryan Albrecht 11 months ago
parent
commit
9014dccd67

+ 13 - 5
static/app/utils/replayCount/useReplayCountForIssues.tsx

@@ -4,10 +4,18 @@ import {IssueCategory} from 'sentry/types';
 import useReplayCount from 'sentry/utils/replayCount/useReplayCount';
 import useOrganization from 'sentry/utils/useOrganization';
 
+interface Props {
+  bufferLimit?: number;
+  statsPeriod?: string;
+}
+
 /**
  * Query results for whether an Issue/Group has replays associated.
  */
-export default function useReplayCountForIssues() {
+export default function useReplayCountForIssues({
+  bufferLimit = 25,
+  statsPeriod = '14d',
+}: Props = {}) {
   const organization = useOrganization();
   const {
     getOne: getOneError,
@@ -15,11 +23,11 @@ export default function useReplayCountForIssues() {
     hasOne: hasOneError,
     hasMany: hasManyError,
   } = useReplayCount({
-    bufferLimit: 25,
+    bufferLimit,
     dataSource: 'discover',
     fieldName: 'issue.id',
     organization,
-    statsPeriod: '14d',
+    statsPeriod,
   });
   const {
     getOne: getOneIssue,
@@ -27,11 +35,11 @@ export default function useReplayCountForIssues() {
     hasOne: hasOneIssue,
     hasMany: hasManyIssue,
   } = useReplayCount({
-    bufferLimit: 25,
+    bufferLimit,
     dataSource: 'search_issues',
     fieldName: 'issue.id',
     organization,
-    statsPeriod: '14d',
+    statsPeriod,
   });
 
   return useMemo(

+ 11 - 3
static/app/utils/replayCount/useReplayCountForTransactions.tsx

@@ -3,17 +3,25 @@ import {useMemo} from 'react';
 import useReplayCount from 'sentry/utils/replayCount/useReplayCount';
 import useOrganization from 'sentry/utils/useOrganization';
 
+interface Props {
+  bufferLimit?: number;
+  statsPeriod?: string;
+}
+
 /**
  * Query results for whether a Transaction has replays associated.
  */
-export default function useReplayCountForTransactions() {
+export default function useReplayCountForTransactions({
+  bufferLimit = 25,
+  statsPeriod = '14d',
+}: Props = {}) {
   const organization = useOrganization();
   const {getOne, getMany, hasOne, hasMany} = useReplayCount({
-    bufferLimit: 25,
+    bufferLimit,
     dataSource: 'discover',
     fieldName: 'transaction',
     organization,
-    statsPeriod: '90d',
+    statsPeriod,
   });
 
   return useMemo(

+ 4 - 4
static/app/views/issueDetails/groupReplays/groupReplays.spec.tsx

@@ -182,7 +182,7 @@ describe('GroupReplays', () => {
               returnIds: true,
               data_source: 'discover',
               query: `issue.id:[${mockGroup.id}]`,
-              statsPeriod: '14d',
+              statsPeriod: '90d',
               project: -1,
             },
           })
@@ -213,7 +213,7 @@ describe('GroupReplays', () => {
               queryReferrer: 'issueReplays',
               query: `id:[${REPLAY_ID_1},${REPLAY_ID_2}]`,
               sort: '-started_at',
-              statsPeriod: '14d',
+              statsPeriod: '90d',
             }),
           })
         );
@@ -516,7 +516,7 @@ describe('GroupReplays', () => {
             returnIds: true,
             data_source: 'discover',
             query: `issue.id:[${mockGroup.id}]`,
-            statsPeriod: '14d',
+            statsPeriod: '90d',
             project: -1,
           },
         })
@@ -589,7 +589,7 @@ describe('GroupReplays', () => {
               returnIds: true,
               data_source: 'discover',
               query: `issue.id:[${mockGroup.id}]`,
-              statsPeriod: '14d',
+              statsPeriod: '90d',
               project: -1,
             },
           })

+ 3 - 1
static/app/views/issueDetails/groupReplays/groupReplays.tsx

@@ -149,7 +149,9 @@ function GroupReplaysTable({
   );
   const location = useLocation();
   const urlParams = useUrlParams();
-  const {getReplayCountForIssue} = useReplayCountForIssues();
+  const {getReplayCountForIssue} = useReplayCountForIssues({
+    statsPeriod: '90d',
+  });
 
   const replayListData = useReplayList({
     eventView,

+ 3 - 3
static/app/views/issueDetails/groupReplays/useReplaysFromIssue.tsx

@@ -11,7 +11,7 @@ import useApi from 'sentry/utils/useApi';
 import useCleanQueryParamsOnRouteLeave from 'sentry/utils/useCleanQueryParamsOnRouteLeave';
 import {REPLAY_LIST_FIELDS} from 'sentry/views/replays/types';
 
-export default function useReplayFromIssue({
+export default function useReplaysFromIssue({
   group,
   location,
   organization,
@@ -39,7 +39,7 @@ export default function useReplayFromIssue({
             returnIds: true,
             query: `issue.id:[${group.id}]`,
             data_source: dataSource,
-            statsPeriod: '14d',
+            statsPeriod: '90d',
             environment: location.query.environment,
             project: ALL_ACCESS_PROJECTS,
           },
@@ -62,7 +62,7 @@ export default function useReplayFromIssue({
       version: 2,
       fields: REPLAY_LIST_FIELDS,
       query: replayIds.length ? `id:[${String(replayIds)}]` : `id:1`,
-      range: '14d',
+      range: '90d',
       projects: [],
       orderby: decodeScalar(location.query.sort, DEFAULT_SORT),
     });

+ 3 - 1
static/app/views/issueDetails/header.tsx

@@ -58,7 +58,9 @@ function GroupHeaderTabs({
 }: GroupHeaderTabsProps) {
   const organization = useOrganization();
 
-  const {getReplayCountForIssue} = useReplayCountForIssues();
+  const {getReplayCountForIssue} = useReplayCountForIssues({
+    statsPeriod: '90d',
+  });
   const replaysCount = getReplayCountForIssue(group.id, group.issueCategory);
 
   const projectFeatures = new Set(project ? project.features : []);

+ 3 - 1
static/app/views/performance/transactionSummary/header.tsx

@@ -110,7 +110,9 @@ function TransactionHeader({
     [hasWebVitals, location, projects, eventView]
   );
 
-  const {getReplayCountForTransaction} = useReplayCountForTransactions();
+  const {getReplayCountForTransaction} = useReplayCountForTransactions({
+    statsPeriod: '90d',
+  });
   const replaysCount = getReplayCountForTransaction(transactionName);
 
   const hasTransactionSummaryCleanupFlag = organization.features.includes(

+ 1 - 1
static/app/views/performance/transactionSummary/transactionReplays/transactionReplays.tsx

@@ -38,7 +38,7 @@ function TransactionReplays() {
         ...location,
         query: {
           ...location.query,
-          statsPeriod: '14d',
+          statsPeriod: '90d',
         },
       }}
       organization={organization}