@sophonz/otel-providers
v0.0.5
Published
Readme
@sophonz/otel-providers
OpenTelemetry providers that fully release the global API on shutdown.
The stock providers shut down their own pipeline but leave the global
propagator, context manager and tracer registered. A second init() in the same
page — a hot reload, a re-mounted SPA, a test suite — then finds the globals
already taken and silently keeps using the dead pipeline. These subclasses
disable the globals first, so re-initializing works.
Part of the Sophonz OpenTelemetry suite.
Install
bun add @sophonz/otel-providers
# or
pnpm add @sophonz/otel-providers
# or
npm install @sophonz/otel-providers@sophonz/browser-sdk and @sophonz/otel-web already use these. Reach for the
package directly only when you assemble the SDK yourself.
Usage
Drop-in replacements — the constructors and options are the upstream ones.
import {
SophonzWebTracerProvider,
SophonzLoggerProvider,
SophonzMeterProvider,
} from '@sophonz/otel-providers';
const provider = new SophonzWebTracerProvider({ resource });
provider.register();
// later
await provider.shutdown(); // globals released; a fresh provider can registerAPI
SophonzWebTracerProvider
Extends WebTracerProvider from @opentelemetry/sdk-trace-web.
SophonzLoggerProvider
Extends LoggerProvider from @opentelemetry/sdk-logs.
SophonzMeterProvider
Extends MeterProvider from @opentelemetry/sdk-metrics.
All three override shutdown() identically: call propagation.disable(),
context.disable() and trace.disable(), then delegate to the parent
shutdown(). Everything else is inherited unchanged.
Dependencies
@opentelemetry/api@opentelemetry/sdk-trace-web,@opentelemetry/sdk-logs,@opentelemetry/sdk-metrics
License
See LICENSE in this package.
Part of sophonz-js.
