v3go.etcd.io/etcd/pkg/v3/traceutil Index | Files

package traceutil

import "go.etcd.io/etcd/pkg/v3/traceutil"

Package traceutil implements tracing utilities using "context".

Index

Constants

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

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) 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) IsEmpty

func (t *Trace) IsEmpty() bool

func (*Trace) Log

func (t *Trace) Log()

Log dumps all steps in the Trace

func (*Trace) LogAllStepsIfLong

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

LogAllStepsIfLong dumps all logs if the duration is longer than threshold

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) StartSubTrace

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

StartSubTrace adds step to trace as a start sign of sublevel trace All steps in the subtrace will log out the input fields of this function

func (*Trace) Step

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

Step adds step to trace

func (*Trace) StepWithFunction

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

StepWithFunction will measure the input function as a single step

func (*Trace) StopSubTrace

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

StopSubTrace adds step to trace as a end sign of sublevel trace All steps in the subtrace will log out the input fields of this function

Source Files

trace.go

Version
v3.5.18 (latest)
Published
Jan 24, 2025
Platform
linux/amd64
Imports
6 packages
Last checked
5 days ago

Tools for package owners.