Changelog
Release history of @ratel-ai/telemetry-otlp.
@ratel-ai/telemetry-otlp release history · npm · source
Synced verbatim from the package's
CHANGELOG.mdatratel-ai/ratel@3be0ecb— do not edit by hand. Regenerate withpnpm sync:apiinapps/docs.
All notable changes to @ratel-ai/telemetry-otlp are documented here.
The format follows Keep a Changelog and this package adheres to Semantic Versioning.
[0.1.1] - 2026-07-11
Added
- On first setup,
TelemetryInitOptions.enabled: falsereturns a no-op shutdown handle without endpoint or provider setup; once Ratel owns the provider, repeated calls return its original handle.RatelSpanProcessorOptions.enabled: falsealways returns a no-op processor. TelemetryInitOptions.spanFilterlets the turnkey provider select spans without hand-building aNodeTracerProvider; omitting it preserves the export-everything default.init()is idempotent to the provider it installed: repeated and module-reloaded calls return the exact original handle, while a foreign global provider still raises the composition error. If anotherinit()wins the registration race, the loser now returns that Ratel-owned handle instead of raising.- Re-exports
API_KEY_ENVfrom@ratel-ai/telemetryalongsideENDPOINT_ENV.
Changed
@opentelemetry/apiis now a peer + development dependency so the host and Ratel share one global API instance. The exporter, resources, semantic conventions, and trace SDK packages remain runtime dependencies, preserving the one-package turnkey install (npm/pnpm auto-install the peer; yarn needs an explicitadd @opentelemetry/api).init()shutdown is terminal: afterhandle.shutdown(), a laterinit()throws an already-shut-down error instead of silently returning the dead handle (calltrace.disable()first to re-initialize). A shared handle'sshutdown()stops export for all callers.
[0.1.0] - 2026-07-06
Added
- Initial release: the
init()OTLP exporter, split out of@ratel-ai/telemetryso theratel.*vocabulary stays OTel-free (ADR-0015).init()wires an OTLPhttp/protobufexporter toRATEL_URL(or{ endpoint, headers }) over aNodeTracerProvider, registers it as the global provider, and returns a shutdown handle. Depends on@ratel-ai/telemetryfor the vocabulary and the pure OTLP config resolution; re-exportsresolveOtlpConfig,InitOptions, andResolvedOtlpConfigfor convenience. ratelSpanProcessor()/ratelTraceExporter()+ the defaultratelSignalFilter: a composable OTLP span-processor for multi-provider coexistence. OpenTelemetry's model is one provider with many span-processors, so a partner already running one (e.g. Langfuse + the Vercel AI SDK) addsratelSpanProcessorto their provider'sspanProcessorsto dual-export to Ratel — forwarding only thegen_ai.*/ratel.*signal (overridable viaspanFilter;() => truesends everything), so the framework'sai.*wrapper noise stays out of Ratel.
Changed
init()refactored ontoratelSpanProcessor(still exports every span — it owns the provider) and now throws, pointing atratelSpanProcessor, when aTracerProvideris already registered globally, instead of silently no-op'ing.