Lifecycle Overview
UseObserve.flush() and Observe.shutdown() to control when finished spans are exported and when the SDK releases tracing resources.
Flush
Observe.flush() forces the current provider to export finished spans.
Flush spans
flush() when the process may terminate before the batch exporter sends spans in the background:
Flushing inside every web request can add latency. In long-running services, let the batch processor export normally and flush during shutdown.
Shutdown
Observe.shutdown() disables instrumentations, shuts down the provider, and clears SDK state so the process can initialize again with different options.
Shut down tracing
Handle graceful shutdown
Reinitialization
Observe.initialize() rejects conflicting reinitialization while the SDK is active. To change exporter settings, shut down first:
Reinitialize with a new exporter
Observe.initialize({ instrumentModules }) call patches additional modules without replacing the provider.
Short-Lived Example
Short-lived job example

