Browse Source

feat(issues): Add custom issues granularity (#80204)

Scott Cooper 4 months ago
parent
commit
5ae0fbf0d4

+ 14 - 1
static/app/components/charts/utils.tsx

@@ -102,7 +102,7 @@ export class GranularityLadder {
   }
 }
 
-export type Fidelity = 'high' | 'medium' | 'low' | 'metrics';
+export type Fidelity = 'high' | 'medium' | 'low' | 'metrics' | 'issues';
 
 export function getInterval(datetimeObj: DateTimeObject, fidelity: Fidelity = 'medium') {
   const diffInMinutes = getDiffInMinutes(datetimeObj);
@@ -112,6 +112,7 @@ export function getInterval(datetimeObj: DateTimeObject, fidelity: Fidelity = 'm
     medium: mediumFidelityLadder,
     low: lowFidelityLadder,
     metrics: metricsFidelityLadder,
+    issues: issuesFidelityLadder,
   }[fidelity].getInterval(diffInMinutes);
 }
 
@@ -150,6 +151,18 @@ const metricsFidelityLadder = new GranularityLadder([
   [0, '1m'],
 ]);
 
+const issuesFidelityLadder = new GranularityLadder([
+  [SIXTY_DAYS, '1d'],
+  [THIRTY_DAYS, '12h'],
+  [TWO_WEEKS, '4h'],
+  [ONE_WEEK, '2h'],
+  [FORTY_EIGHT_HOURS, '1h'],
+  [TWENTY_FOUR_HOURS, '20m'],
+  [SIX_HOURS, '5m'],
+  [ONE_HOUR, '1m'],
+  [0, '1m'],
+]);
+
 /**
  * Duplicate of getInterval, except that we do not support <1h granularity
  * Used by OrgStatsV2 API

+ 1 - 1
static/app/views/issueDetails/streamline/useIssueDetailsDiscoverQuery.tsx

@@ -24,7 +24,7 @@ export function useIssueDetailsEventView({
   const {selection: pageFilters} = usePageFilters();
   const searchQuery = useEventQuery({group});
   const periodQuery = getPeriod(pageFilters.datetime);
-  const interval = getInterval(pageFilters.datetime, 'metrics');
+  const interval = getInterval(pageFilters.datetime, 'issues');
   const config = getConfigForIssueType(group, group.project);
 
   const query = [`issue:${group.shortId}`, searchQuery]