Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ContextKeyRequestID = contextKey("request_id")
var ContextKeySpanID = contextKey("span_id")
var ContextKeyTraceID = contextKey("trace_id")
Functions ¶
func CopyTrackingValues ¶
CopyTrackingValues copies the tracking values from src to dst.
func DefaultRedactedFields ¶ added in v0.37.0
func DefaultRedactedFields() []string
DefaultRedactedFields returns a copy of the built-in sensitive field-name list, so a caller can extend rather than replace the defaults.
Types ¶
type ActivityTracker ¶
type ActivityTracker interface {
Start(
ctx context.Context,
operation string,
subject string,
kvArgs ...any,
) (
reportErr func(err error),
reportChange func(id string, data any),
end func(),
)
}
ActivityTracker instruments an operation's lifecycle without coupling core logic to a monitoring backend. Start returns reportErr, reportChange and end; end must be called exactly once, the other two at most once each.
func NewChainedTracker ¶
func NewChainedTracker(trackers ...ActivityTracker) ActivityTracker
NewChainedTracker creates a new ActivityTracker that chains multiple trackers.
func NewLogActivityTracker ¶
func NewLogActivityTracker(logger *slog.Logger, opts ...LogOption) ActivityTracker
NewLogActivityTracker returns an ActivityTracker over logger. Values are scrubbed by field name before being logged.
func NewTextActivityTracker ¶ added in v0.37.0
func NewTextActivityTracker(w io.Writer, opts ...LogOption) ActivityTracker
NewTextActivityTracker returns an ActivityTracker that emits structured text logs to w at Info level.
type ChainedTracker ¶
type ChainedTracker []ActivityTracker
ChainedTracker wraps multiple ActivityTrackers into one, broadcasting every event to all of them.
type LogOption ¶ added in v0.37.0
type LogOption func(*logActivityTracker)
LogOption customizes a log-backed ActivityTracker.
func WithRedactedFields ¶ added in v0.37.0
WithRedactedFields replaces the built-in sensitive field-name list (see DefaultRedactedFields). Names are matched case-insensitively as substrings, and passing none disables redaction entirely.