Documentation

Overview

Package traceutil implements tracing utilities using "context".

Index

Constants

View Source
const (
	TraceKey     = "trace"
	StartTimeKey = "startTime"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Field

type Field struct {
	Key   string
	Value interface{}
}

Field is a kv pair to record additional details of the trace.

type Trace

type Trace struct {
	// contains filtered or unexported fields
}

func Get

func Get(ctx context.Context) *Trace

func New

func New(op string, lg *zap.Logger, fields ...Field) *Trace

func TODO

func TODO() *Trace

TODO returns a non-nil, empty Trace

func (*Trace) AddField

func (t *Trace) AddField(fields ...Field)

func (*Trace) DisableStep

func (t *Trace) DisableStep()

DisableStep sets the flag to prevent the trace from adding steps

func (*Trace) EnableStep

func (t *Trace) EnableStep()

EnableStep re-enable the trace to add steps

func (*Trace) GetStartTime

func (t *Trace) GetStartTime() time.Time

func (*Trace) InsertStep

func (t *Trace) InsertStep(at int, time time.Time, msg string, fields ...Field)

func (*Trace) Log

func (t *Trace) Log()

Log dumps all steps in the Trace

func (*Trace) LogIfLong

func (t *Trace) LogIfLong(threshold time.Duration)

LogIfLong dumps logs if the duration is longer than threshold

func (*Trace) LogWithStepThreshold

func (t *Trace) LogWithStepThreshold(threshold time.Duration)

LogWithStepThreshold only dumps step whose duration is longer than step threshold

func (*Trace) SetStartTime

func (t *Trace) SetStartTime(time time.Time)

func (*Trace) Step

func (t *Trace) Step(msg string, fields ...Field)

Step adds step to trace

Source Files