workflowAnalyticsEvents.tsx 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. import type {GroupStatus} from 'sentry/types/group';
  2. import type {CommonGroupAnalyticsData} from 'sentry/utils/events';
  3. import type {Tab} from 'sentry/views/issueDetails/types';
  4. type RuleViewed = {
  5. alert_type: 'issue' | 'metric';
  6. project_id: string;
  7. };
  8. interface IssueDetailsWithAlert extends CommonGroupAnalyticsData {
  9. project_id: number;
  10. /** The time that the alert was initially fired. */
  11. alert_date?: string;
  12. /** Id of the rule that triggered the alert */
  13. alert_rule_id?: string;
  14. /** The type of alert notification - email/slack */
  15. alert_type?: string;
  16. }
  17. export type BaseEventAnalyticsParams = {
  18. event_id: string;
  19. has_commit: boolean;
  20. has_exception_group: boolean;
  21. has_local_variables: boolean;
  22. has_next_event: boolean;
  23. has_previous_event: boolean;
  24. has_profile: boolean;
  25. has_release: boolean;
  26. has_source_context: boolean;
  27. has_source_maps: boolean;
  28. has_trace: boolean;
  29. is_symbolicated: boolean;
  30. num_commits: number;
  31. num_event_tags: number;
  32. num_in_app_stack_frames: number;
  33. num_stack_frames: number;
  34. num_threads_with_names: number;
  35. resolved_with: string[];
  36. error_has_replay?: boolean;
  37. error_has_user_feedback?: boolean;
  38. event_errors?: string;
  39. event_mechanism?: string;
  40. event_platform?: string;
  41. event_runtime?: string;
  42. event_type?: string;
  43. frames_with_sourcemaps_percent?: number;
  44. frames_without_source_maps_percent?: number;
  45. has_graphql_request?: boolean;
  46. has_otel?: boolean;
  47. release_user_agent?: string;
  48. sdk_name?: string;
  49. sdk_version?: string;
  50. };
  51. type BaseTour = {
  52. duration: number;
  53. step: number;
  54. };
  55. type ReleasesTour = BaseTour & {project_id: string};
  56. export type TeamInsightsEventParameters = {
  57. 'alert_builder.filter': {query: string; session_id?: string};
  58. 'alert_builder.noisy_warning_agreed': {};
  59. 'alert_builder.noisy_warning_viewed': {};
  60. 'alert_details.viewed': {alert_id: number};
  61. 'alert_rule_details.viewed': {alert: string; has_chartcuterie: string; rule_id: number};
  62. 'alert_rules.viewed': {sort: string};
  63. 'alert_stream.viewed': {};
  64. 'alert_wizard.option_selected': {alert_type: string};
  65. 'edit_alert_rule.add_row': {
  66. name: string;
  67. project_id: string;
  68. type: string;
  69. };
  70. 'edit_alert_rule.delete_row': {
  71. name: string;
  72. project_id: string;
  73. type: string;
  74. };
  75. 'edit_alert_rule.incompatible_rule': {};
  76. 'edit_alert_rule.notification_test': {success: boolean};
  77. 'edit_alert_rule.viewed': RuleViewed;
  78. 'issue_alert_rule_details.edit_clicked': {rule_id: number};
  79. 'issue_details.action_clicked': IssueDetailsWithAlert & {
  80. action_type:
  81. | 'deleted'
  82. | 'mark_reviewed'
  83. | 'bookmarked'
  84. | 'subscribed'
  85. | 'shared'
  86. | 'discarded'
  87. | 'open_in_discover'
  88. | 'assign'
  89. | GroupStatus;
  90. action_status_details?: string;
  91. action_substatus?: string;
  92. assigned_suggestion_reason?: string;
  93. assigned_type?: string;
  94. };
  95. 'issue_details.attachment_tab.screenshot_modal_deleted': {};
  96. 'issue_details.attachment_tab.screenshot_modal_download': {};
  97. 'issue_details.attachment_tab.screenshot_modal_opened': {};
  98. 'issue_details.attachment_tab.screenshot_title_clicked': {};
  99. 'issue_details.event_json_clicked': {group_id: number};
  100. 'issue_details.event_navigation_clicked': {button: string; project_id: number};
  101. 'issue_details.issue_tab.screenshot_dropdown_deleted': {};
  102. 'issue_details.issue_tab.screenshot_dropdown_download': {};
  103. 'issue_details.issue_tab.screenshot_modal_deleted': {};
  104. 'issue_details.issue_tab.screenshot_modal_download': {};
  105. 'issue_details.issue_tab.screenshot_modal_opened': {};
  106. 'issue_details.issue_tab.trace_timeline_clicked': {
  107. event_id: string;
  108. group_id: string;
  109. };
  110. 'issue_details.issue_tab.trace_timeline_more_events_clicked': {
  111. num_hidden: number;
  112. };
  113. 'issue_details.merged_tab.unmerge_clicked': {
  114. /**
  115. * comma separated list of event ids that were unmerged
  116. */
  117. event_ids_unmerged: string;
  118. group_id: string;
  119. total_unmerged: number;
  120. };
  121. 'issue_details.resources_link_clicked': {
  122. group_id: string | undefined;
  123. resource: string;
  124. };
  125. 'issue_details.suspect_commits.commit_clicked': IssueDetailsWithAlert & {
  126. has_pull_request: boolean;
  127. suspect_commit_calculation: string;
  128. suspect_commit_index: number;
  129. };
  130. 'issue_details.suspect_commits.pull_request_clicked': IssueDetailsWithAlert & {
  131. suspect_commit_calculation: string;
  132. suspect_commit_index: number;
  133. };
  134. 'issue_details.tab_changed': IssueDetailsWithAlert & {
  135. tab: Tab;
  136. };
  137. 'project_creation_page.created': {
  138. issue_alert: 'Default' | 'Custom' | 'No Rule';
  139. project_id: string;
  140. rule_id: string;
  141. };
  142. 'project_detail.change_chart': {chart_index: number; metric: string};
  143. 'project_detail.open_anr_issues': {};
  144. 'project_detail.open_discover': {};
  145. 'project_detail.open_issues': {};
  146. 'project_detail.performance_tour.advance': BaseTour;
  147. 'project_detail.performance_tour.close': BaseTour;
  148. 'project_detail.releases_tour.advance': ReleasesTour;
  149. 'project_detail.releases_tour.close': ReleasesTour;
  150. 'release_detail.pagination': {direction: string};
  151. 'releases_list.click_add_release_health': {
  152. project_id: number;
  153. };
  154. };
  155. export type TeamInsightsEventKey = keyof TeamInsightsEventParameters;
  156. export const workflowEventMap: Record<TeamInsightsEventKey, string | null> = {
  157. 'alert_builder.filter': 'Alert Builder: Filter',
  158. 'alert_builder.noisy_warning_viewed': 'Alert Builder: Noisy Warning Viewed',
  159. 'alert_builder.noisy_warning_agreed': 'Alert Builder: Noisy Warning Agreed',
  160. 'alert_details.viewed': 'Alert Details: Viewed',
  161. 'alert_rule_details.viewed': 'Alert Rule Details: Viewed',
  162. 'alert_rules.viewed': 'Alert Rules: Viewed',
  163. 'alert_stream.viewed': 'Alert Stream: Viewed',
  164. 'alert_wizard.option_selected': 'Alert Wizard: Option Selected',
  165. 'edit_alert_rule.add_row': 'Edit Alert Rule: Add Row',
  166. 'edit_alert_rule.delete_row': 'Edit Alert Rule: Delete Row',
  167. 'edit_alert_rule.viewed': 'Edit Alert Rule: Viewed',
  168. 'edit_alert_rule.incompatible_rule': 'Edit Alert Rule: Incompatible Rule',
  169. 'edit_alert_rule.notification_test': 'Edit Alert Rule: Notification Test',
  170. 'issue_alert_rule_details.edit_clicked': 'Issue Alert Rule Details: Edit Clicked',
  171. 'issue_details.action_clicked': 'Issue Details: Action Clicked',
  172. 'issue_details.attachment_tab.screenshot_title_clicked':
  173. 'Attachment Tab: Screenshot title clicked',
  174. 'issue_details.attachment_tab.screenshot_modal_deleted':
  175. 'Attachment Tab: Screenshot deleted from modal',
  176. 'issue_details.attachment_tab.screenshot_modal_download':
  177. 'Attachment Tab: Screenshot downloaded from modal',
  178. 'issue_details.attachment_tab.screenshot_modal_opened':
  179. 'Attachment Tab: Screenshot modal opened',
  180. 'issue_details.event_json_clicked': 'Issue Details: Event JSON Clicked',
  181. 'issue_details.event_navigation_clicked': 'Issue Details: Event Navigation Clicked',
  182. 'issue_details.issue_tab.screenshot_dropdown_deleted':
  183. 'Issue Details: Screenshot deleted from dropdown',
  184. 'issue_details.issue_tab.screenshot_dropdown_download':
  185. 'Issue Details: Screenshot downloaded from dropdown',
  186. 'issue_details.issue_tab.screenshot_modal_deleted':
  187. 'Issue Details: Screenshot deleted from modal',
  188. 'issue_details.issue_tab.screenshot_modal_download':
  189. 'Issue Details: Screenshot downloaded from modal',
  190. 'issue_details.issue_tab.screenshot_modal_opened':
  191. 'Issue Details: Screenshot modal opened',
  192. 'issue_details.issue_tab.trace_timeline_clicked':
  193. 'Issue Details: Trace Timeline Clicked',
  194. 'issue_details.issue_tab.trace_timeline_more_events_clicked':
  195. 'Issue Details: Trace Timeline More Events Clicked',
  196. 'issue_details.resources_link_clicked': 'Issue Details: Resources Link Clicked',
  197. 'issue_details.suspect_commits.commit_clicked': 'Issue Details: Suspect Commit Clicked',
  198. 'issue_details.suspect_commits.pull_request_clicked':
  199. 'Issue Details: Suspect Pull Request Clicked',
  200. 'issue_details.tab_changed': 'Issue Details: Tab Changed',
  201. 'issue_details.merged_tab.unmerge_clicked': 'Issue Details: Unmerge Clicked',
  202. 'project_creation_page.created': 'Project Create: Project Created',
  203. 'project_detail.open_issues': 'Project Detail: Open issues from project detail',
  204. 'project_detail.open_discover': 'Project Detail: Open discover from project detail',
  205. 'project_detail.open_anr_issues': 'Project Detail: Open issues from ANR rate scorecard',
  206. 'project_detail.change_chart': 'Project Detail: Change Chart',
  207. 'project_detail.performance_tour.advance': 'Project Detail: Performance Tour Advance',
  208. 'project_detail.performance_tour.close': 'Project Detail: Performance Tour Close',
  209. 'project_detail.releases_tour.advance': 'Project Detail: Releases Tour Advance',
  210. 'project_detail.releases_tour.close': 'Project Detail: Releases Tour Close',
  211. 'release_detail.pagination': 'Release Detail: Pagination',
  212. 'releases_list.click_add_release_health': 'Releases List: Click Add Release Health',
  213. };