All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.build.npm.cjs.profiling.integration.js.map Maven / Gradle / Ivy

{"version":3,"file":"integration.js","sources":["../../../../src/profiling/integration.ts"],"sourcesContent":["import { defineIntegration, getActiveSpan, getRootSpan } from '@sentry/core';\nimport type { EventEnvelope, IntegrationFn, Profile, Span } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { startProfileForSpan } from './startProfileForSpan';\nimport type { ProfiledEvent } from './utils';\nimport { isAutomatedPageLoadSpan, shouldProfileSpan } from './utils';\nimport {\n  addProfilesToEnvelope,\n  createProfilingEvent,\n  findProfiledTransactionsFromEnvelope,\n  getActiveProfilesCount,\n  takeProfileFromGlobalCache,\n} from './utils';\n\nconst INTEGRATION_NAME = 'BrowserProfiling';\n\nconst _browserProfilingIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      const activeSpan = getActiveSpan();\n      const rootSpan = activeSpan && getRootSpan(activeSpan);\n\n      if (rootSpan && isAutomatedPageLoadSpan(rootSpan)) {\n        if (shouldProfileSpan(rootSpan)) {\n          startProfileForSpan(rootSpan);\n        }\n      }\n\n      client.on('spanStart', (span: Span) => {\n        if (span === getRootSpan(span) && shouldProfileSpan(span)) {\n          startProfileForSpan(span);\n        }\n      });\n\n      client.on('beforeEnvelope', (envelope): void => {\n        // if not profiles are in queue, there is nothing to add to the envelope.\n        if (!getActiveProfilesCount()) {\n          return;\n        }\n\n        const profiledTransactionEvents = findProfiledTransactionsFromEnvelope(envelope);\n        if (!profiledTransactionEvents.length) {\n          return;\n        }\n\n        const profilesToAddToEnvelope: Profile[] = [];\n\n        for (const profiledTransaction of profiledTransactionEvents) {\n          const context = profiledTransaction && profiledTransaction.contexts;\n          const profile_id = context && context['profile'] && context['profile']['profile_id'];\n          const start_timestamp = context && context['profile'] && context['profile']['start_timestamp'];\n\n          if (typeof profile_id !== 'string') {\n            DEBUG_BUILD && logger.log('[Profiling] cannot find profile for a span without a profile context');\n            continue;\n          }\n\n          if (!profile_id) {\n            DEBUG_BUILD && logger.log('[Profiling] cannot find profile for a span without a profile context');\n            continue;\n          }\n\n          // Remove the profile from the span context before sending, relay will take care of the rest.\n          if (context && context['profile']) {\n            delete context.profile;\n          }\n\n          const profile = takeProfileFromGlobalCache(profile_id);\n          if (!profile) {\n            DEBUG_BUILD && logger.log(`[Profiling] Could not retrieve profile for span: ${profile_id}`);\n            continue;\n          }\n\n          const profileEvent = createProfilingEvent(\n            profile_id,\n            start_timestamp as number | undefined,\n            profile,\n            profiledTransaction as ProfiledEvent,\n          );\n          if (profileEvent) {\n            profilesToAddToEnvelope.push(profileEvent);\n          }\n        }\n\n        addProfilesToEnvelope(envelope as EventEnvelope, profilesToAddToEnvelope);\n      });\n    },\n  };\n}) satisfies IntegrationFn;\n\nexport const browserProfilingIntegration = defineIntegration(_browserProfilingIntegration);\n"],"names":["getActiveSpan","getRootSpan","isAutomatedPageLoadSpan","shouldProfileSpan","startProfileForSpan","getActiveProfilesCount","findProfiledTransactionsFromEnvelope","DEBUG_BUILD","logger","takeProfileFromGlobalCache","createProfilingEvent","addProfilesToEnvelope","defineIntegration"],"mappings":"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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy