@@ -58,6 +58,7 @@ import version from '../../version'
5858import { ExportSampler } from './sampling/ExportSampler'
5959import { getPersistentSessionSecureID } from '../utils/sessionStorage/highlightSession'
6060import type { EventName } from '@opentelemetry/instrumentation-user-interaction'
61+
6162export type Callback = ( span ?: Span ) => any
6263
6364export type BrowserTracingConfig = {
@@ -417,20 +418,30 @@ export const getActiveSpanContext = () => {
417418}
418419
419420export const shutdown = async ( ) => {
420- if ( providers . tracerProvider ) {
421- await providers . tracerProvider . forceFlush ( )
422- await providers . tracerProvider . shutdown ( )
423- providers . tracerProvider = undefined
424- } else {
425- console . warn ( 'OTEL shutdown called without initialized tracerProvider.' )
426- }
427- if ( providers . meterProvider ) {
428- await providers . meterProvider . forceFlush ( )
429- await providers . meterProvider . shutdown ( )
430- providers . meterProvider = undefined
431- } else {
432- console . warn ( 'OTEL shutdown called without initialized meterProvider.' )
433- }
421+ await Promise . allSettled ( [
422+ ( async ( ) => {
423+ if ( providers . tracerProvider ) {
424+ await providers . tracerProvider . forceFlush ( )
425+ await providers . tracerProvider . shutdown ( )
426+ providers . tracerProvider = undefined
427+ } else {
428+ console . warn (
429+ 'OTEL shutdown called without initialized tracerProvider.' ,
430+ )
431+ }
432+ } ) ( ) ,
433+ ( async ( ) => {
434+ if ( providers . meterProvider ) {
435+ await providers . meterProvider . forceFlush ( )
436+ await providers . meterProvider . shutdown ( )
437+ providers . meterProvider = undefined
438+ } else {
439+ console . warn (
440+ 'OTEL shutdown called without initialized meterProvider.' ,
441+ )
442+ }
443+ } ) ( ) ,
444+ ] )
434445}
435446
436447const enhanceSpanWithHttpRequestAttributes = (
0 commit comments