# @suaveplan/events-otel - OpenTelemetry tracing companion for @suaveplan/events: wraps each dispatch in a span, propagates W3C Trace Context, and records listener exceptions as span errors. ## Summary OpenTelemetry tracing companion for `@suaveplan/events`. Wraps each dispatch in a span, propagates W3C Trace Context, and records listener exceptions as span errors. ## Documentation tree - [attach-event-tracing](./src/core/attach-event-tracing/attach-event-tracing.md) — _(no submodules)_ - [attach-event-tracing](./src/core/attach-event-tracing/attach-event-tracing.md) — _(no submodules)_ - [trace-context](./src/propagation/trace-context/trace-context.md) — _(no submodules)_ - [trace-context](./src/propagation/trace-context/trace-context.md) — _(no submodules)_ - [sampling-rule](./src/sampling/sampling-rule/sampling-rule.md) — _(no submodules)_ - [sampling-rule](./src/sampling/sampling-rule/sampling-rule.md) — _(no submodules)_ - [attach-event-tracing](./src/core/attach-event-tracing/attach-event-tracing.md) — _(no submodules)_- [trace-context](./src/propagation/trace-context/trace-context.md) — _(no submodules)_- [trace-context](./src/propagation/trace-context/trace-context.md) — _(no submodules)_- [sampling-rule](./src/sampling/sampling-rule/sampling-rule.md) — _(no submodules)_- [sampling-rule](./src/sampling/sampling-rule/sampling-rule.md) — _(no submodules)_- [attach-event-tracing](./src/core/attach-event-tracing/attach-event-tracing.md) — _(no submodules)_- [trace-context](./src/propagation/trace-context/trace-context.md) — _(no submodules)_- [trace-context](./src/propagation/trace-context/trace-context.md) — _(no submodules)_- [sampling-rule](./src/sampling/sampling-rule/sampling-rule.md) — _(no submodules)_- [sampling-rule](./src/sampling/sampling-rule/sampling-rule.md) — _(no submodules)_- [attach-event-tracing](./src/core/attach-event-tracing/attach-event-tracing.md) — _(no submodules)_- [trace-context](./src/propagation/trace-context/trace-context.md) — _(no submodules)_- [trace-context](./src/propagation/trace-context/trace-context.md) — _(no submodules)_- [sampling-rule](./src/sampling/sampling-rule/sampling-rule.md) — _(no submodules)_- [sampling-rule](./src/sampling/sampling-rule/sampling-rule.md) — _(no submodules)_- [attach-event-tracing](./src/core/attach-event-tracing/attach-event-tracing.md) — _(no submodules)_- [trace-context](./src/propagation/trace-context/trace-context.md) — _(no submodules)_ - [trace-context](./src/propagation/trace-context/trace-context.md) — _(no submodules)_- [sampling-rule](./src/sampling/sampling-rule/sampling-rule.md) — _(no submodules)_ - [sampling-rule](./src/sampling/sampling-rule/sampling-rule.md) — _(no submodules)_ ## Quick Start ```ts import { EventBus } from "@suaveplan/events"; import { attachEventTracing } from "@suaveplan/events-otel"; const bus = new EventBus(); const handle = attachEventTracing(bus); await bus.emitAsync("user.created", { id: "u-1" }); handle.detach(); ``` ## Modules - [`src/core/attach-event-tracing/attach-event-tracing`](src/core/attach-event-tracing/attach-event-tracing.md) — `attachEventTracing`, `EventTracingHandle`, `EventTracingOptions` - [`src/propagation/trace-context/trace-context`](src/propagation/trace-context/trace-context.md) — `serializeTraceContext`, `deserializeTraceContext` - [`src/sampling/sampling-rule/sampling-rule`](src/sampling/sampling-rule/sampling-rule.md) — `SamplingRule`, `shouldSample`, `SamplingRuleSchema`