aperture
Transforms capitan events into OpenTelemetry spans, metrics, and logs.
The Pipeline
// Your application emits events
capitan.Emit(ctx, UserCreated, userID.Field("usr_123"))
// aperture observes and exports to OTEL
aperture.Attach(capitan.Default(),
aperture.WithTracerProvider(provider),
)
Emit(ctx, signal, fields...)
│
▼
┌─────────────┐
│ aperture │
│ observer │
└──────┬──────┘
│
▼
┌─────────────┐
│ OTEL │
│ exporter │
└─────────────┘
What Capitan Provides
| aperture needs | Capitan provides |
|---|---|
| Span names | Signal.Name() |
| Span attributes | Event.Fields() as key-value pairs |
| Timestamps | Event.Timestamp() |
| Severity mapping | Event.Severity() → OTEL severity |
| Trace context | Event.Context() propagation |
| Selective export | Observe(callback, signals...) whitelist |