UNPKG

@sentry/browser

Version:
46 lines (41 loc) 2.1 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const core = require('@sentry/core'); const browserUtils = require('@sentry-internal/browser-utils'); function getAbsoluteTime(time = 0) { return ((core.browserPerformanceTimeOrigin() || performance.timeOrigin) + time) / 1000; } /** * Converts a PerformanceResourceTiming entry to span data for the resource span. * * @param resourceTiming * @returns An array where the first element is the attribute name and the second element is the attribute value. */ function resourceTimingToSpanAttributes( resourceTiming, ) { const timingSpanData = []; // Checking for only `undefined` and `null` is intentional because it's // valid for `nextHopProtocol` to be an empty string. if (resourceTiming.nextHopProtocol != undefined) { const { name, version } = browserUtils.extractNetworkProtocol(resourceTiming.nextHopProtocol); timingSpanData.push(['network.protocol.version', version], ['network.protocol.name', name]); } if (!core.browserPerformanceTimeOrigin()) { return timingSpanData; } return [ ...timingSpanData, ['http.request.redirect_start', getAbsoluteTime(resourceTiming.redirectStart)], ['http.request.fetch_start', getAbsoluteTime(resourceTiming.fetchStart)], ['http.request.domain_lookup_start', getAbsoluteTime(resourceTiming.domainLookupStart)], ['http.request.domain_lookup_end', getAbsoluteTime(resourceTiming.domainLookupEnd)], ['http.request.connect_start', getAbsoluteTime(resourceTiming.connectStart)], ['http.request.secure_connection_start', getAbsoluteTime(resourceTiming.secureConnectionStart)], ['http.request.connection_end', getAbsoluteTime(resourceTiming.connectEnd)], ['http.request.request_start', getAbsoluteTime(resourceTiming.requestStart)], ['http.request.response_start', getAbsoluteTime(resourceTiming.responseStart)], ['http.request.response_end', getAbsoluteTime(resourceTiming.responseEnd)], ]; } exports.resourceTimingToSpanAttributes = resourceTimingToSpanAttributes; //# sourceMappingURL=resource-timing.js.map