settings.ts 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. import {t} from 'sentry/locale';
  2. import {
  3. DATA_TYPE as RESOURCE_DATA_TYPE,
  4. DATA_TYPE_PLURAL as RESOURCE_DATA_TYPE_PLURAL,
  5. MODULE_DOC_LINK as RESOURCES_MODULE_DOC_LINK,
  6. MODULE_FEATURES as RESOURCE_MODULE_FEATURES,
  7. MODULE_TITLE as RESOURCES_MODULE_TITLE,
  8. } from 'sentry/views/insights/browser/resources/settings';
  9. import {
  10. DATA_TYPE as WEB_VITALS_DATA_TYPE,
  11. DATA_TYPE_PLURAL as WEB_VITALS_DATA_TYPE_PLURAL,
  12. MODULE_DOC_LINK as VITALS_MODULE_DOC_LINK,
  13. MODULE_FEATURES as VITALS_MODULE_FEATURES,
  14. MODULE_TITLE as VITALS_MODULE_TITLE,
  15. } from 'sentry/views/insights/browser/webVitals/settings';
  16. import {
  17. DATA_TYPE as CACHE_DATA_TYPE,
  18. DATA_TYPE_PLURAL as CACHE_DATA_TYPE_PLURAL,
  19. MODULE_DOC_LINK as CACHE_MODULE_DOC_LINK,
  20. MODULE_FEATURES as CACHE_MODULE_FEATURES,
  21. MODULE_TITLE as CACHE_MODULE_TITLE,
  22. } from 'sentry/views/insights/cache/settings';
  23. import {
  24. DATA_TYPE as CRONS_DATA_TYPE,
  25. DATA_TYPE_PLURAL as CRONS_DATA_TYPE_PLURAL,
  26. MODULE_DOC_LINK as CRONS_MODULE_DOC_LINK,
  27. MODULE_FEATURES as CRONS_MODULE_FEATURES,
  28. MODULE_TITLE as CRONS_MODULE_TITLE,
  29. MODULE_VISIBLE_FEATURES as CRONS_MODULE_VISIBLE_FEATURES,
  30. } from 'sentry/views/insights/crons/settings';
  31. import {
  32. DATA_TYPE as DB_DATA_TYPE,
  33. DATA_TYPE_PLURAL as DB_DATA_TYPE_PLURAL,
  34. MODULE_DOC_LINK as DB_MODULE_DOC_LINK,
  35. MODULE_FEATURES as DB_MODULE_FEATURES,
  36. MODULE_TITLE as DB_MODULE_TITLE,
  37. } from 'sentry/views/insights/database/settings';
  38. import {
  39. DATA_TYPE as HTTP_DATA_TYPE,
  40. DATA_TYPE_PLURAL as HTTP_DATA_TYPE_PLURAL,
  41. MODULE_DOC_LINK as HTTP_MODULE_DOC_LINK,
  42. MODULE_FEATURES as HTTP_MODULE_FEATURES,
  43. MODULE_TITLE as HTTP_MODULE_TITLE,
  44. } from 'sentry/views/insights/http/settings';
  45. import {
  46. DATA_TYPE as AI_DATA_TYPE,
  47. DATA_TYPE_PLURAL as AI_DATA_TYPE_PLURAL,
  48. MODULE_DOC_LINK as AI_MODULE_DOC_LINK,
  49. MODULE_FEATURES as AI_MODULE_FEATURES,
  50. MODULE_TITLE as AI_MODULE_TITLE,
  51. } from 'sentry/views/insights/llmMonitoring/settings';
  52. import {
  53. DATA_TYPE as APP_STARTS_DATA_TYPE,
  54. DATA_TYPE_PLURAL as APP_STARTS_DATA_TYPE_PLURAL,
  55. MODULE_DOC_LINK as APP_STARTS_MODULE_DOC_LINK,
  56. MODULE_FEATURES as APP_STARTS_MODULE_FEATURES,
  57. MODULE_TITLE as APP_STARTS_MODULE_TITLE,
  58. } from 'sentry/views/insights/mobile/appStarts/settings';
  59. import {
  60. DATA_TYPE as SCREEN_LOAD_DATA_TYPE,
  61. DATA_TYPE_PLURAL as SCREEN_LOAD_DATA_TYPE_PLURAL,
  62. MODULE_DOC_LINK as SCREEN_LOADS_MODULE_DOC_LINK,
  63. MODULE_FEATURES as SCREEN_LOADS_MODULE_FEATURES,
  64. MODULE_TITLE as SCREEN_LOADS_MODULE_TITLE,
  65. } from 'sentry/views/insights/mobile/screenload/settings';
  66. import {
  67. DATA_TYPE as SCREEN_RENDERING_DATA_TYPE,
  68. DATA_TYPE_PLURAL as SCREEN_RENDERING_DATA_TYPE_PLURAL,
  69. MODULE_DOC_LINK as SCREEN_RENDERING_MODULE_DOC_LINK,
  70. MODULE_FEATURES as SCREEN_RENDERING_MODULE_FEATURES,
  71. MODULE_TITLE as SCREEN_RENDERING_MODULE_TITLE,
  72. } from 'sentry/views/insights/mobile/screenRendering/settings';
  73. import {
  74. DATA_TYPE as MOBILE_SCREENS_DATA_TYPE,
  75. DATA_TYPE_PLURAL as MOBILE_SCREENS_DATA_TYPE_PLURAL,
  76. MODULE_DOC_LINK as MODULE_SCREENS_DOC_LINK,
  77. MODULE_FEATURE as MOBILE_SCREENS_MODULE_FEATURE,
  78. MODULE_TITLE as MOBILE_SCREENS_MODULE_TITLE,
  79. } from 'sentry/views/insights/mobile/screens/settings';
  80. import {
  81. MODULE_DOC_LINK as MODULE_UI_DOC_LINK,
  82. MODULE_FEATURES as MOBILE_UI_MODULE_FEATURES,
  83. MODULE_TITLE as MOBILE_UI_MODULE_TITLE,
  84. } from 'sentry/views/insights/mobile/ui/settings';
  85. import {
  86. DATA_TYPE as QUEUE_DATA_TYPE,
  87. DATA_TYPE_PLURAL as QUEUE_DATA_TYPE_PLURAL,
  88. MODULE_DOC_LINK as QUEUE_MODULE_DOC_LINK,
  89. MODULE_FEATURES as QUEUE_MODULE_FEATURES,
  90. MODULE_TITLE as QUEUE_MODULE_TITLE,
  91. } from 'sentry/views/insights/queues/settings';
  92. import {
  93. DATA_TYPE as UPTIME_DATA_TYPE,
  94. DATA_TYPE_PLURAL as UPTIME_DATA_TYPE_PLURAL,
  95. MODULE_DOC_LINK as UPTIME_MODULE_DOC_LINK,
  96. MODULE_FEATURES as UPTIME_MODULE_FEATURES,
  97. MODULE_TITLE as UPTIME_MODULE_TITLE,
  98. MODULE_VISIBLE_FEATURES as UPTIME_MODULE_VISIBLE_FEATURES,
  99. } from 'sentry/views/insights/uptime/settings';
  100. import {ModuleName} from './types';
  101. export const INSIGHTS_TITLE = t('Insights');
  102. export const INSIGHTS_BASE_URL = 'insights';
  103. export const DEFAULT_INTERVAL = '10m';
  104. export const QUERY_DATE_RANGE_LIMIT = 7; // Maximum number of days that can be queried for, enabled by the `insights-query-date-range-limit` feature flag
  105. export const MODULE_TITLES: Record<ModuleName, string> = {
  106. [ModuleName.DB]: DB_MODULE_TITLE,
  107. [ModuleName.HTTP]: HTTP_MODULE_TITLE,
  108. [ModuleName.CACHE]: CACHE_MODULE_TITLE,
  109. [ModuleName.QUEUE]: QUEUE_MODULE_TITLE,
  110. [ModuleName.SCREEN_LOAD]: SCREEN_LOADS_MODULE_TITLE,
  111. [ModuleName.APP_START]: APP_STARTS_MODULE_TITLE,
  112. [ModuleName.VITAL]: VITALS_MODULE_TITLE,
  113. [ModuleName.RESOURCE]: RESOURCES_MODULE_TITLE,
  114. [ModuleName.AI]: AI_MODULE_TITLE,
  115. [ModuleName.MOBILE_UI]: MOBILE_UI_MODULE_TITLE,
  116. [ModuleName.MOBILE_SCREENS]: MOBILE_SCREENS_MODULE_TITLE,
  117. [ModuleName.SCREEN_RENDERING]: SCREEN_RENDERING_MODULE_TITLE,
  118. [ModuleName.UPTIME]: UPTIME_MODULE_TITLE,
  119. [ModuleName.CRONS]: CRONS_MODULE_TITLE,
  120. [ModuleName.OTHER]: '',
  121. };
  122. export const MODULE_DATA_TYPES: Record<ModuleName, string> = {
  123. [ModuleName.DB]: DB_DATA_TYPE,
  124. [ModuleName.HTTP]: HTTP_DATA_TYPE,
  125. [ModuleName.CACHE]: CACHE_DATA_TYPE,
  126. [ModuleName.QUEUE]: QUEUE_DATA_TYPE,
  127. [ModuleName.SCREEN_LOAD]: SCREEN_LOAD_DATA_TYPE,
  128. [ModuleName.APP_START]: APP_STARTS_DATA_TYPE,
  129. [ModuleName.VITAL]: WEB_VITALS_DATA_TYPE,
  130. [ModuleName.RESOURCE]: RESOURCE_DATA_TYPE,
  131. [ModuleName.AI]: AI_DATA_TYPE,
  132. [ModuleName.MOBILE_UI]: t('Mobile UI'),
  133. [ModuleName.MOBILE_SCREENS]: MOBILE_SCREENS_DATA_TYPE,
  134. [ModuleName.SCREEN_RENDERING]: SCREEN_RENDERING_DATA_TYPE,
  135. [ModuleName.UPTIME]: UPTIME_DATA_TYPE,
  136. [ModuleName.CRONS]: CRONS_DATA_TYPE,
  137. [ModuleName.OTHER]: '',
  138. };
  139. export const MODULE_DATA_TYPES_PLURAL: Record<ModuleName, string> = {
  140. [ModuleName.DB]: DB_DATA_TYPE_PLURAL,
  141. [ModuleName.HTTP]: HTTP_DATA_TYPE_PLURAL,
  142. [ModuleName.CACHE]: CACHE_DATA_TYPE_PLURAL,
  143. [ModuleName.QUEUE]: QUEUE_DATA_TYPE_PLURAL,
  144. [ModuleName.SCREEN_LOAD]: SCREEN_LOAD_DATA_TYPE_PLURAL,
  145. [ModuleName.APP_START]: APP_STARTS_DATA_TYPE_PLURAL,
  146. [ModuleName.VITAL]: WEB_VITALS_DATA_TYPE_PLURAL,
  147. [ModuleName.RESOURCE]: RESOURCE_DATA_TYPE_PLURAL,
  148. [ModuleName.AI]: AI_DATA_TYPE_PLURAL,
  149. [ModuleName.MOBILE_UI]: t('Mobile UI'),
  150. [ModuleName.MOBILE_SCREENS]: MOBILE_SCREENS_DATA_TYPE_PLURAL,
  151. [ModuleName.SCREEN_RENDERING]: SCREEN_RENDERING_DATA_TYPE_PLURAL,
  152. [ModuleName.UPTIME]: UPTIME_DATA_TYPE_PLURAL,
  153. [ModuleName.CRONS]: CRONS_DATA_TYPE_PLURAL,
  154. [ModuleName.OTHER]: '',
  155. };
  156. export const MODULE_PRODUCT_DOC_LINKS: Record<ModuleName, string> = {
  157. [ModuleName.DB]: DB_MODULE_DOC_LINK,
  158. [ModuleName.HTTP]: HTTP_MODULE_DOC_LINK,
  159. [ModuleName.CACHE]: CACHE_MODULE_DOC_LINK,
  160. [ModuleName.QUEUE]: QUEUE_MODULE_DOC_LINK,
  161. [ModuleName.SCREEN_LOAD]: SCREEN_LOADS_MODULE_DOC_LINK,
  162. [ModuleName.APP_START]: APP_STARTS_MODULE_DOC_LINK,
  163. [ModuleName.VITAL]: VITALS_MODULE_DOC_LINK,
  164. [ModuleName.RESOURCE]: RESOURCES_MODULE_DOC_LINK,
  165. [ModuleName.AI]: AI_MODULE_DOC_LINK,
  166. [ModuleName.MOBILE_UI]: MODULE_UI_DOC_LINK,
  167. [ModuleName.MOBILE_SCREENS]: MODULE_SCREENS_DOC_LINK,
  168. [ModuleName.SCREEN_RENDERING]: SCREEN_RENDERING_MODULE_DOC_LINK,
  169. [ModuleName.UPTIME]: UPTIME_MODULE_DOC_LINK,
  170. [ModuleName.CRONS]: CRONS_MODULE_DOC_LINK,
  171. [ModuleName.OTHER]: '',
  172. };
  173. /**
  174. * Features that control gating of modules, falling back to upsell style hooks.
  175. */
  176. export const MODULE_FEATURE_MAP: Record<ModuleName, string[]> = {
  177. [ModuleName.DB]: DB_MODULE_FEATURES,
  178. [ModuleName.APP_START]: APP_STARTS_MODULE_FEATURES,
  179. [ModuleName.HTTP]: HTTP_MODULE_FEATURES,
  180. [ModuleName.RESOURCE]: RESOURCE_MODULE_FEATURES,
  181. [ModuleName.VITAL]: VITALS_MODULE_FEATURES,
  182. [ModuleName.CACHE]: CACHE_MODULE_FEATURES,
  183. [ModuleName.QUEUE]: QUEUE_MODULE_FEATURES,
  184. [ModuleName.AI]: AI_MODULE_FEATURES,
  185. [ModuleName.SCREEN_LOAD]: SCREEN_LOADS_MODULE_FEATURES,
  186. [ModuleName.MOBILE_UI]: MOBILE_UI_MODULE_FEATURES,
  187. [ModuleName.MOBILE_SCREENS]: [MOBILE_SCREENS_MODULE_FEATURE],
  188. [ModuleName.SCREEN_RENDERING]: SCREEN_RENDERING_MODULE_FEATURES,
  189. [ModuleName.UPTIME]: UPTIME_MODULE_FEATURES,
  190. [ModuleName.CRONS]: CRONS_MODULE_FEATURES,
  191. [ModuleName.OTHER]: [],
  192. };
  193. /**
  194. * Features that control the visibility of modules.
  195. */
  196. export const MODULE_FEATURE_VISIBLE_MAP: Record<ModuleName, string[]> = {
  197. [ModuleName.DB]: ['insights-entry-points'],
  198. [ModuleName.APP_START]: ['insights-entry-points'],
  199. [ModuleName.HTTP]: ['insights-entry-points'],
  200. [ModuleName.RESOURCE]: ['insights-entry-points'],
  201. [ModuleName.VITAL]: ['insights-entry-points'],
  202. [ModuleName.CACHE]: ['insights-entry-points'],
  203. [ModuleName.QUEUE]: ['insights-entry-points'],
  204. [ModuleName.AI]: ['insights-entry-points'],
  205. [ModuleName.SCREEN_LOAD]: ['insights-entry-points'],
  206. [ModuleName.MOBILE_UI]: ['insights-entry-points'],
  207. [ModuleName.MOBILE_SCREENS]: ['insights-entry-points'],
  208. [ModuleName.SCREEN_RENDERING]: ['insights-entry-points'],
  209. [ModuleName.UPTIME]: ['insights-entry-points', ...UPTIME_MODULE_VISIBLE_FEATURES],
  210. [ModuleName.CRONS]: ['insights-entry-points', ...CRONS_MODULE_VISIBLE_FEATURES],
  211. [ModuleName.OTHER]: ['insights-entry-points'],
  212. };