Documentation
¶
Overview ¶
Package trace provides stable request trace and correlation middleware.
The middleware propagates request and trace identifiers through context and response headers so logs, Problem Details responses, and downstream calls can be correlated without coupling handlers to a tracing provider.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetTraceID ¶
GetTraceID returns the hex-encoded 16-byte trace id if present.
Types ¶
type Middleware ¶
type Middleware struct {
// contains filtered or unexported fields
}
Middleware attaches trace/span IDs to request context and sets response header.
func New ¶
func New(opts Options) (*Middleware, error)
New constructs a Middleware with sane defaults.
func (*Middleware) Middleware ¶
func (m *Middleware) Middleware() func(http.Handler) http.Handler
Middleware implements ports.Middleware by producing the handler adapter.
type Options ¶
type Options struct {
// TrustIncoming strictly validates client-provided traceparent and uses it
// if valid. When false, the middleware always generates a fresh trace ID.
TrustIncoming bool
// SampledFlag defaults to 00 (not sampled). Set to 01 to enable sampling bit.
SampledFlag byte
// TraceIDGen overrides the trace id generator.
TraceIDGen ports.IDGen
// SpanIDGen overrides the span id generator.
SpanIDGen ports.IDGen
}
Options controls middleware behaviour.
Click to show internal directories.
Click to hide internal directories.