initializeBundleMetrics.tsx 860 B

1234567891011121314151617181920212223242526272829
  1. import * as Sentry from '@sentry/react';
  2. import ConfigStore from 'sentry/stores/configStore';
  3. export function initializeBundleMetrics() {
  4. if (
  5. !window.performance ||
  6. typeof window.performance.measure !== 'function' ||
  7. !ConfigStore.get('enableAnalytics')
  8. ) {
  9. return;
  10. }
  11. const release = window.__initialData.sentryConfig?.release;
  12. try {
  13. const headMark = performance.getEntriesByName('head-start')[0];
  14. if (headMark) {
  15. performance.measure('app.page.bundle-load', 'head-start', 'sentry-app-init');
  16. }
  17. performance.getEntriesByType('measure').forEach(measurement => {
  18. // `window.ra` can potentially be undefined here (e.g. it did not successfully load)
  19. window.ra?.metric(measurement.name, measurement.duration, {
  20. release,
  21. });
  22. });
  23. } catch (err) {
  24. Sentry.captureException(err);
  25. }
  26. }