Documentation
¶
Overview ¶
Package logbrewotel adapts existing OpenTelemetry Go traces into LogBrew spans without making the root logbrew package own an OTel provider/exporter.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func TraceContextFromContext ¶
func TraceContextFromContext(ctx context.Context, childSpanID string) (logbrew.TraceContext, bool, error)
TraceContextFromContext copies the active OpenTelemetry SpanContext from ctx into a LogBrew child trace context. It returns ok=false without error when no valid OTel span context is active.
func TraceContextFromSpanContext ¶
func TraceContextFromSpanContext(spanContext oteltrace.SpanContext, childSpanID string) (logbrew.TraceContext, bool, error)
TraceContextFromSpanContext copies valid OpenTelemetry trace/span IDs and sampled flags into a LogBrew child trace context. Invalid OTel contexts are ignored, while invalid explicit child span IDs return a LogBrew validation error.
Types ¶
type SpanExporter ¶
type SpanExporter struct {
// contains filtered or unexported fields
}
SpanExporter implements sdktrace.SpanExporter by queuing sanitized OpenTelemetry spans into an app-owned LogBrew client.
func NewSpanExporter ¶
func NewSpanExporter(client *logbrew.Client, config SpanExporterConfig) (*SpanExporter, error)
NewSpanExporter returns an OpenTelemetry span exporter that converts ended OTel spans into LogBrew span events. It does not install a global provider, create transports, retry, flush, or capture raw propagation, headers, URLs, payloads, SQL statements, or exception messages.
func (*SpanExporter) ExportSpans ¶
func (exporter *SpanExporter) ExportSpans(ctx context.Context, spans []sdktrace.ReadOnlySpan) error
ExportSpans converts ended OTel spans into LogBrew span events while honoring context cancellation. Retry and network delivery remain the caller's app-owned LogBrew Flush/Shutdown responsibility.
type SpanExporterConfig ¶
type SpanExporterConfig struct {
// EventIDPrefix prefixes stable LogBrew span event IDs. Empty defaults to
// go_otel.
EventIDPrefix string
// Metadata is merged into every exported span after primitive-only
// filtering.
Metadata map[string]any
// Now supplies event timestamps. Empty defaults to time.Now().UTC.
Now func() time.Time
}
SpanExporterConfig configures the optional OpenTelemetry span exporter.