issueAnalyticsEvents.tsx 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. type IssueStream = {
  2. group_id: string;
  3. tab: string;
  4. was_shown_suggestion: boolean;
  5. };
  6. type QuicktraceMissingInstrumentationPaylod = {
  7. project_id: number;
  8. platform?: string;
  9. };
  10. export type QuicktraceMissingInstrumentation = {
  11. 'quick_trace.missing_instrumentation.dismissed': QuicktraceMissingInstrumentationPaylod;
  12. 'quick_trace.missing_instrumentation.docs': QuicktraceMissingInstrumentationPaylod;
  13. 'quick_trace.missing_instrumentation.snoozed': QuicktraceMissingInstrumentationPaylod;
  14. };
  15. export type IssueEventParameters = QuicktraceMissingInstrumentation & {
  16. 'event_cause.dismissed': {};
  17. 'event_cause.docs_clicked': {};
  18. 'event_cause.snoozed': {};
  19. 'event_cause.viewed': {
  20. platform?: string;
  21. project_id?: string;
  22. };
  23. 'inbox_tab.issue_clicked': {
  24. group_id: string;
  25. };
  26. 'issue.quick_trace_status': {
  27. is_performance_issue: boolean;
  28. status: string;
  29. };
  30. 'issue.search_sidebar_clicked': {};
  31. 'issue.shared_publicly': {};
  32. 'issue_details.performance.autogrouped_siblings_toggle': {};
  33. 'issue_details.performance.hidden_spans_expanded': {};
  34. 'issue_error_banner.viewed': {
  35. error_message: string[];
  36. error_type: string[];
  37. group?: string;
  38. platform?: string;
  39. };
  40. 'issue_group_details.tab.clicked': {
  41. tab: string;
  42. browser?: string;
  43. device?: string;
  44. os?: string;
  45. platform?: string;
  46. };
  47. 'issue_search.empty': {
  48. query: string;
  49. search_source: string;
  50. search_type: string;
  51. };
  52. 'issue_search.failed': {
  53. error: string;
  54. search_source: string;
  55. search_type: string;
  56. };
  57. 'issues_stream.issue_assigned': IssueStream & {
  58. assigned_type: string;
  59. did_assign_suggestion: boolean;
  60. assigned_suggestion_reason?: string;
  61. };
  62. 'issues_stream.issue_clicked': IssueStream;
  63. 'issues_stream.paginate': {
  64. direction: string;
  65. };
  66. 'issues_stream.realtime_clicked': {
  67. enabled: boolean;
  68. };
  69. 'issues_stream.sort_changed': {
  70. sort: string;
  71. };
  72. 'issues_tab.viewed': {
  73. num_issues: number;
  74. num_perf_issues: number;
  75. page: number;
  76. query: string;
  77. tab?: string;
  78. };
  79. 'quick_trace.connected_services': {
  80. projects: number;
  81. };
  82. 'quick_trace.dropdown.clicked': {
  83. node_key: string;
  84. };
  85. 'quick_trace.dropdown.clicked_extra': {
  86. node_key: string;
  87. };
  88. 'quick_trace.missing_service.dismiss': {
  89. platform: string;
  90. };
  91. 'quick_trace.missing_service.docs': {
  92. platform: string;
  93. };
  94. 'quick_trace.node.clicked': {
  95. node_key: string;
  96. };
  97. resolve_issue: {release: string};
  98. 'span_view.embedded_child.hide': {};
  99. 'span_view.embedded_child.show': {};
  100. 'tag.clicked': {
  101. is_clickable: boolean;
  102. };
  103. };
  104. export type IssueEventKey = keyof IssueEventParameters;
  105. export const issueEventMap: Record<IssueEventKey, string | null> = {
  106. 'event_cause.viewed': null, // send to main event store only due to high event volume
  107. 'event_cause.docs_clicked': 'Event Cause Docs Clicked',
  108. 'event_cause.snoozed': 'Event Cause Snoozed',
  109. 'event_cause.dismissed': 'Event Cause Dismissed',
  110. 'issue_error_banner.viewed': 'Issue Error Banner Viewed',
  111. 'issues_tab.viewed': 'Viewed Issues Tab', // high volume but send to our secondary event store anyways
  112. 'issue_search.failed': 'Issue Search: Failed',
  113. 'issue_search.empty': 'Issue Search: Empty',
  114. 'issue.search_sidebar_clicked': 'Issue Search Sidebar Clicked',
  115. 'inbox_tab.issue_clicked': 'Clicked Issue from Inbox Tab',
  116. 'issues_stream.realtime_clicked': 'Issues Stream: Realtime Clicked',
  117. 'issues_stream.issue_clicked': 'Clicked Issue from Issues Stream',
  118. 'issues_stream.issue_assigned': 'Assigned Issue from Issues Stream',
  119. 'issues_stream.sort_changed': 'Changed Sort on Issues Stream',
  120. 'issues_stream.paginate': 'Paginate Issues Stream',
  121. 'issue.shared_publicly': 'Issue Shared Publicly',
  122. resolve_issue: 'Resolve Issue',
  123. 'tag.clicked': 'Tag: Clicked',
  124. 'issue.quick_trace_status': 'Issue Quick Trace Status',
  125. 'quick_trace.missing_service.dismiss': 'Quick Trace: Missing Service Dismissed',
  126. 'quick_trace.missing_service.docs': 'Quick Trace: Missing Service Clicked',
  127. 'quick_trace.dropdown.clicked': 'Quick Trace: Dropdown clicked',
  128. 'quick_trace.dropdown.clicked_extra': 'Quick Trace: Dropdown clicked',
  129. 'quick_trace.node.clicked': 'Quick Trace: Node clicked',
  130. 'quick_trace.connected_services': 'Quick Trace: Connected Services',
  131. 'quick_trace.missing_instrumentation.dismissed':
  132. 'Quick Trace: Missing Instrumentation Dismissed',
  133. 'quick_trace.missing_instrumentation.snoozed':
  134. 'Quick Trace: Missing Instrumentation Snoozed',
  135. 'quick_trace.missing_instrumentation.docs': 'Quick Trace: Missing Instrumentation Docs',
  136. 'span_view.embedded_child.hide': 'Span View: Hide Embedded Transaction',
  137. 'span_view.embedded_child.show': 'Span View: Show Embedded Transaction',
  138. 'issue_group_details.tab.clicked': 'Issue Group Details: Header Tab Clicked',
  139. // Performance Issue specific events here
  140. 'issue_details.performance.autogrouped_siblings_toggle':
  141. 'Performance Issue Details: Autogrouped Siblings Toggled',
  142. 'issue_details.performance.hidden_spans_expanded':
  143. 'Performance Issue Details: Hidden Spans Expanded',
  144. };