profilingAnalyticsEvents.tsx 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import type {PlatformKey} from 'sentry/types/project';
  2. type ProfilingEventSource =
  3. | 'discover.table'
  4. | 'discover.transactions_table'
  5. | 'events.profile_event_context'
  6. | 'performance.missing_instrumentation'
  7. | 'performance.trace_view'
  8. | 'performance.transactions_summary.overview'
  9. | 'performance_transaction.suspect_functions_table'
  10. | 'profiling.function_trends.improvement'
  11. | 'profiling.function_trends.regression'
  12. | 'profiling.global_suspect_functions'
  13. | 'profiling.issue.function_regression.list'
  14. | 'profiling.issue.function_regression.transactions'
  15. | 'profiling_transaction.suspect_functions_table'
  16. | 'profiling_transaction.slowest_functions_table'
  17. | 'profiling_transaction.regressed_functions_table'
  18. | 'slowest_transaction_panel'
  19. | 'transaction_details'
  20. | 'transaction_hovercard.latest_profile'
  21. | 'transaction_hovercard.slowest_profile'
  22. | 'transaction_hovercard.suspect_function'
  23. | 'transaction_hovercard.trigger';
  24. interface EventPayloadWithProjectDetails {
  25. project_id: string | number | undefined;
  26. project_platform: PlatformKey | undefined;
  27. }
  28. export type ProfilingEventParameters = {
  29. // ui interactions
  30. 'profiling_ui_events.transaction_hovercard_view': {};
  31. // views & nav
  32. 'profiling_views.give_feedback_action': {};
  33. 'profiling_views.go_to_flamegraph': {source: ProfilingEventSource};
  34. 'profiling_views.go_to_transaction': {
  35. source: ProfilingEventSource;
  36. };
  37. 'profiling_views.landing': {};
  38. 'profiling_views.onboarding': {};
  39. 'profiling_views.onboarding_action': {
  40. action: 'done' | 'dismissed';
  41. };
  42. 'profiling_views.profile_details': EventPayloadWithProjectDetails;
  43. 'profiling_views.profile_flamegraph': EventPayloadWithProjectDetails;
  44. 'profiling_views.profile_summary': EventPayloadWithProjectDetails;
  45. 'profiling_views.visit_discord_channel': {};
  46. };
  47. type EventKey = keyof ProfilingEventParameters;
  48. export const profilingEventMap: Record<EventKey, string> = {
  49. 'profiling_views.landing': 'Profiling Views: Landing',
  50. 'profiling_views.onboarding': 'Profiling Views: Onboarding',
  51. 'profiling_views.profile_flamegraph': 'Profiling Views: Flamegraph',
  52. 'profiling_views.profile_summary': 'Profiling Views: Profile Summary',
  53. 'profiling_views.profile_details': 'Profiling Views: Profile Details',
  54. 'profiling_views.go_to_flamegraph': 'Profiling Views: Go to Flamegraph',
  55. 'profiling_views.go_to_transaction': 'Profiling Views: Go to Transaction',
  56. 'profiling_views.onboarding_action': 'Profiling Actions: Onboarding Action',
  57. 'profiling_views.give_feedback_action': 'Profiling Actions: Feedback Action',
  58. 'profiling_views.visit_discord_channel': 'Profiling Actions: Visit Discord Channel',
  59. 'profiling_ui_events.transaction_hovercard_view':
  60. 'Profiling Actions: Viewed Transaction Hovercard',
  61. };