workflowAnalyticsEvents.tsx 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import type {IssueCategory, ResolutionStatus} from 'sentry/types';
  2. import {Tab} from 'sentry/views/organizationGroupDetails/types';
  3. type RuleViewed = {
  4. alert_type: 'issue' | 'metric';
  5. project_id: string;
  6. };
  7. type IssueDetailsWithAlert = {
  8. group_id: number;
  9. issue_category: IssueCategory;
  10. project_id: number;
  11. /** The time that the alert was initially fired. */
  12. alert_date?: string;
  13. /** Id of the rule that triggered the alert */
  14. alert_rule_id?: string;
  15. /** The type of alert notification - email/slack */
  16. alert_type?: string;
  17. };
  18. export type BaseEventAnalyticsParams = {
  19. event_id: string;
  20. has_commit: boolean;
  21. has_release: boolean;
  22. has_source_maps: boolean;
  23. has_trace: boolean;
  24. num_commits: number;
  25. num_in_app_stack_frames: number;
  26. num_stack_frames: number;
  27. num_threads_with_names: number;
  28. event_platform?: string;
  29. event_type?: string;
  30. sdk_name?: string;
  31. sdk_version?: string;
  32. };
  33. export type TeamInsightsEventParameters = {
  34. 'alert_builder.filter': {query: string; session_id?: string};
  35. 'alert_details.viewed': {alert_id: number};
  36. 'alert_rule_details.viewed': {alert: string; has_chartcuterie: string; rule_id: number};
  37. 'alert_rules.viewed': {sort: string};
  38. 'alert_stream.viewed': {};
  39. 'alert_wizard.option_selected': {alert_type: string};
  40. 'alert_wizard.option_viewed': {alert_type: string};
  41. 'edit_alert_rule.add_row': {
  42. name: string;
  43. project_id: string;
  44. type: string;
  45. };
  46. 'edit_alert_rule.viewed': RuleViewed;
  47. 'issue_alert_rule_details.edit_clicked': {rule_id: number};
  48. 'issue_alert_rule_details.viewed': {rule_id: number};
  49. 'issue_details.action_clicked': IssueDetailsWithAlert & {
  50. action_type:
  51. | 'deleted'
  52. | 'mark_reviewed'
  53. | 'bookmarked'
  54. | 'subscribed'
  55. | 'shared'
  56. | 'discarded'
  57. | 'open_in_discover'
  58. | 'assign'
  59. | ResolutionStatus;
  60. assigned_suggestion_reason?: string;
  61. };
  62. 'issue_details.attachment_tab.screenshot_modal_deleted': {};
  63. 'issue_details.attachment_tab.screenshot_modal_download': {};
  64. 'issue_details.attachment_tab.screenshot_modal_opened': {};
  65. 'issue_details.attachment_tab.screenshot_title_clicked': {};
  66. 'issue_details.event_json_clicked': {group_id: number};
  67. 'issue_details.event_navigation_clicked': {button: string; project_id: number};
  68. 'issue_details.issue_tab.screenshot_dropdown_deleted': {};
  69. 'issue_details.issue_tab.screenshot_dropdown_download': {};
  70. 'issue_details.issue_tab.screenshot_modal_deleted': {};
  71. 'issue_details.issue_tab.screenshot_modal_download': {};
  72. 'issue_details.issue_tab.screenshot_modal_opened': {};
  73. 'issue_details.suspect_commits': IssueDetailsWithAlert & {count: number};
  74. 'issue_details.suspect_commits.commit_clicked': IssueDetailsWithAlert & {
  75. has_pull_request: boolean;
  76. };
  77. 'issue_details.suspect_commits.pull_request_clicked': IssueDetailsWithAlert;
  78. 'issue_details.tab_changed': IssueDetailsWithAlert & {
  79. tab: Tab;
  80. };
  81. 'issue_details.viewed': IssueDetailsWithAlert &
  82. BaseEventAnalyticsParams & {
  83. error_count: number;
  84. error_has_replay: boolean;
  85. event_errors: string;
  86. group_has_replay: boolean;
  87. has_owner: boolean;
  88. is_assigned: boolean;
  89. issue_age: number;
  90. num_comments: number;
  91. has_external_issue?: boolean;
  92. integration_assignment_source?: string;
  93. issue_level?: string;
  94. issue_status?: string;
  95. project_has_replay?: boolean;
  96. project_platform?: string;
  97. };
  98. 'new_alert_rule.viewed': RuleViewed & {
  99. duplicate_rule: string;
  100. session_id: string;
  101. wizard_v3: string;
  102. };
  103. 'project_creation_page.created': {
  104. issue_alert: 'Default' | 'Custom' | 'No Rule';
  105. project_id: string;
  106. rule_id: string;
  107. };
  108. 'project_creation_page.viewed': {};
  109. 'team_insights.viewed': {};
  110. };
  111. export type TeamInsightsEventKey = keyof TeamInsightsEventParameters;
  112. export const workflowEventMap: Record<TeamInsightsEventKey, string | null> = {
  113. 'alert_builder.filter': 'Alert Builder: Filter',
  114. 'alert_details.viewed': 'Alert Details: Viewed',
  115. 'alert_rule_details.viewed': 'Alert Rule Details: Viewed',
  116. 'alert_rules.viewed': 'Alert Rules: Viewed',
  117. 'alert_stream.viewed': 'Alert Stream: Viewed',
  118. 'alert_wizard.option_selected': 'Alert Wizard: Option Selected',
  119. 'alert_wizard.option_viewed': 'Alert Wizard: Option Viewed',
  120. 'edit_alert_rule.add_row': 'Edit Alert Rule: Add Row',
  121. 'edit_alert_rule.viewed': 'Edit Alert Rule: Viewed',
  122. 'issue_alert_rule_details.edit_clicked': 'Issue Alert Rule Details: Edit Clicked',
  123. 'issue_alert_rule_details.viewed': 'Issue Alert Rule Details: Viewed',
  124. 'issue_details.action_clicked': 'Issue Details: Action Clicked',
  125. 'issue_details.attachment_tab.screenshot_title_clicked':
  126. 'Attachment Tab: Screenshot title clicked',
  127. 'issue_details.attachment_tab.screenshot_modal_deleted':
  128. 'Attachment Tab: Screenshot deleted from modal',
  129. 'issue_details.attachment_tab.screenshot_modal_download':
  130. 'Attachment Tab: Screenshot downloaded from modal',
  131. 'issue_details.attachment_tab.screenshot_modal_opened':
  132. 'Attachment Tab: Screenshot modal opened',
  133. 'issue_details.event_json_clicked': 'Issue Details: Event JSON Clicked',
  134. 'issue_details.event_navigation_clicked': 'Issue Details: Event Navigation Clicked',
  135. 'issue_details.issue_tab.screenshot_dropdown_deleted':
  136. 'Issue Details: Screenshot deleted from dropdown',
  137. 'issue_details.issue_tab.screenshot_dropdown_download':
  138. 'Issue Details: Screenshot downloaded from dropdown',
  139. 'issue_details.issue_tab.screenshot_modal_deleted':
  140. 'Issue Details: Screenshot deleted from modal',
  141. 'issue_details.issue_tab.screenshot_modal_download':
  142. 'Issue Details: Screenshot downloaded from modal',
  143. 'issue_details.issue_tab.screenshot_modal_opened':
  144. 'Issue Details: Screenshot modal opened',
  145. 'issue_details.viewed': 'Issue Details: Viewed',
  146. 'issue_details.suspect_commits': 'Issue Details: Suspect Commits',
  147. 'issue_details.suspect_commits.commit_clicked': 'Issue Details: Suspect Commit Clicked',
  148. 'issue_details.suspect_commits.pull_request_clicked':
  149. 'Issue Details: Suspect Pull Request Clicked',
  150. 'issue_details.tab_changed': 'Issue Details: Tab Changed',
  151. 'new_alert_rule.viewed': 'New Alert Rule: Viewed',
  152. 'team_insights.viewed': 'Team Insights: Viewed',
  153. 'project_creation_page.viewed': 'Project Create: Creation page viewed',
  154. 'project_creation_page.created': 'Project Create: Project Created',
  155. };