searchAnalyticsEvents.tsx 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. import type {ShortcutType} from 'sentry/components/smartSearchBar/types';
  2. type SearchEventBase = {
  3. query: string;
  4. search_type: string;
  5. is_multi_project?: boolean;
  6. search_source?: string;
  7. };
  8. type OpenEvent = {};
  9. type SelectEvent = {result_type: string; source_type: string; query?: string};
  10. type QueryEvent = {query: string};
  11. type ProjectSelectorEvent = {path: string};
  12. export type SearchEventParameters = {
  13. 'command_palette.open': OpenEvent;
  14. 'command_palette.query': QueryEvent;
  15. 'command_palette.select': SelectEvent;
  16. 'omnisearch.open': {};
  17. 'organization_saved_search.selected': {
  18. id: number;
  19. is_global: boolean;
  20. query: string;
  21. search_type: string;
  22. visibility: string;
  23. };
  24. 'projectselector.clear': ProjectSelectorEvent;
  25. 'projectselector.direct_selection': ProjectSelectorEvent;
  26. 'projectselector.multi_button_clicked': ProjectSelectorEvent & {
  27. button_type: 'all' | 'my';
  28. };
  29. 'projectselector.toggle': ProjectSelectorEvent & {
  30. action: 'added' | 'removed';
  31. };
  32. 'projectselector.update': ProjectSelectorEvent & {
  33. count: number;
  34. multi: boolean;
  35. };
  36. 'search.docs_opened': SearchEventBase;
  37. 'search.invalid_field': Omit<SearchEventBase, 'query'> & {attempted_field_name: string};
  38. 'search.key_autocompleted': Omit<SearchEventBase, 'query'> & {
  39. item_name: string | undefined;
  40. search_operator: string;
  41. item_kind?: string;
  42. item_type?: string;
  43. };
  44. 'search.operator_autocompleted': SearchEventBase & {search_operator: string};
  45. 'search.pin': {
  46. action: 'pin' | 'unpin';
  47. search_type: string;
  48. query?: string;
  49. sort?: string;
  50. };
  51. 'search.saved_search_create': {
  52. name: string;
  53. query: string;
  54. search_type: string;
  55. sort: string;
  56. visibility: string;
  57. };
  58. 'search.saved_search_open_create_modal': OpenEvent;
  59. 'search.saved_search_sidebar_toggle_clicked': {open: boolean};
  60. 'search.search_with_invalid': SearchEventBase;
  61. 'search.searched': SearchEventBase;
  62. 'search.searched_filter': SearchEventBase & {
  63. key: string;
  64. values: string[];
  65. };
  66. 'search.shortcut_used': SearchEventBase & {
  67. shortcut_method: 'hotkey' | 'click';
  68. shortcut_type: ShortcutType;
  69. };
  70. 'settings_search.open': OpenEvent;
  71. 'settings_search.query': QueryEvent;
  72. 'settings_search.select': SelectEvent;
  73. 'sidebar_help.open': OpenEvent;
  74. 'sidebar_help.query': QueryEvent;
  75. 'sidebar_help.select': SelectEvent;
  76. };
  77. export type SearchEventKey = keyof SearchEventParameters;
  78. export const searchEventMap: Record<SearchEventKey, string | null> = {
  79. 'search.searched': 'Search: Performed search',
  80. 'search.searched_filter': 'Search: Performed search filter',
  81. 'search.key_autocompleted': 'Search: Key Autocompleted',
  82. 'search.shortcut_used': 'Search: Shortcut Used',
  83. 'search.docs_opened': 'Search: Docs Opened',
  84. 'search.search_with_invalid': 'Search: Attempted Invalid Search',
  85. 'search.invalid_field': 'Search: Unsupported Field Warning Shown',
  86. 'search.operator_autocompleted': 'Search: Operator Autocompleted',
  87. 'organization_saved_search.selected':
  88. 'Organization Saved Search: Selected saved search',
  89. 'settings_search.open': 'settings_search Open',
  90. 'command_palette.open': 'command_palette Open',
  91. 'sidebar_help.open': 'sidebar_help Open',
  92. 'settings_search.select': 'settings_search Select',
  93. 'command_palette.select': 'command_palette Select',
  94. 'sidebar_help.select': 'sidebar_help Select',
  95. 'settings_search.query': 'settings_search Query',
  96. 'command_palette.query': 'command_palette Query',
  97. 'sidebar_help.query': 'sidebar_help Query',
  98. 'projectselector.direct_selection': 'Project Selector: Direct Selection',
  99. 'projectselector.update': 'Project Selector: Update',
  100. 'projectselector.clear': 'Project Selector: Clear',
  101. 'projectselector.toggle': 'Project Selector: Toggle',
  102. 'projectselector.multi_button_clicked': 'Project Selector: Multi Button Clicked',
  103. 'search.pin': 'Search: Pin',
  104. 'search.saved_search_create': 'Search: Saved Search Created',
  105. 'search.saved_search_open_create_modal': 'Search: Saved Search Modal Opened',
  106. 'search.saved_search_sidebar_toggle_clicked':
  107. 'Search: Saved Search Sidebar Toggle Clicked',
  108. 'omnisearch.open': 'Omnisearch: Open',
  109. };