Documentation ¶
Overview ¶
Package tracetest provides testing utilities for tracing.
Index ¶
- type Event
- type MockSpan
- func (ms *MockSpan) AddEvent(ctx context.Context, name string, attrs ...label.KeyValue)
- func (ms *MockSpan) AddEventWithTimestamp(ctx context.Context, timestamp time.Time, name string, attrs ...label.KeyValue)
- func (ms *MockSpan) End(options ...apitrace.SpanOption)
- func (ms *MockSpan) IsRecording() bool
- func (ms *MockSpan) RecordError(ctx context.Context, err error, opts ...apitrace.ErrorOption)
- func (ms *MockSpan) SetAttributes(attributes ...label.KeyValue)
- func (ms *MockSpan) SetError(v bool)
- func (ms *MockSpan) SetName(name string)
- func (ms *MockSpan) SetStatus(status codes.Code, msg string)
- func (ms *MockSpan) SpanContext() apitrace.SpanContext
- func (ms *MockSpan) Tracer() apitrace.Tracer
- type MockTracer
- type Option
- type Span
- func (s *Span) AddEvent(ctx context.Context, name string, attrs ...label.KeyValue)
- func (s *Span) AddEventWithTimestamp(ctx context.Context, timestamp time.Time, name string, attrs ...label.KeyValue)
- func (s *Span) Attributes() map[label.Key]label.Value
- func (s *Span) End(opts ...trace.SpanOption)
- func (s *Span) EndTime() (time.Time, bool)
- func (s *Span) Ended() bool
- func (s *Span) Events() []Event
- func (s *Span) IsRecording() bool
- func (s *Span) Links() map[trace.SpanContext][]label.KeyValue
- func (s *Span) Name() string
- func (s *Span) ParentSpanID() trace.SpanID
- func (s *Span) RecordError(ctx context.Context, err error, opts ...trace.ErrorOption)
- func (s *Span) SetAttributes(attrs ...label.KeyValue)
- func (s *Span) SetName(name string)
- func (s *Span) SetStatus(code codes.Code, msg string)
- func (s *Span) SpanContext() trace.SpanContext
- func (s *Span) SpanKind() trace.SpanKind
- func (s *Span) StartTime() time.Time
- func (s *Span) StatusCode() codes.Code
- func (s *Span) StatusMessage() string
- func (s *Span) Tracer() trace.Tracer
- type SpanRecorder
- type StandardSpanRecorder
- type Tracer
- type TracerProvider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MockSpan ¶ added in v0.12.0
type MockSpan struct { StatusMsg string Name string Status codes.Code // contains filtered or unexported fields }
MockSpan is a mock span used in association with MockTracer for testing purpose only.
func (*MockSpan) AddEventWithTimestamp ¶ added in v0.12.0
func (ms *MockSpan) AddEventWithTimestamp(ctx context.Context, timestamp time.Time, name string, attrs ...label.KeyValue)
AddEvent does nothing.
func (*MockSpan) End ¶ added in v0.12.0
func (ms *MockSpan) End(options ...apitrace.SpanOption)
End does nothing.
func (*MockSpan) IsRecording ¶ added in v0.12.0
IsRecording always returns false for MockSpan.
func (*MockSpan) RecordError ¶ added in v0.12.0
RecordError does nothing.
func (*MockSpan) SetAttributes ¶ added in v0.12.0
SetAttributes does nothing.
func (*MockSpan) SpanContext ¶ added in v0.12.0
func (ms *MockSpan) SpanContext() apitrace.SpanContext
SpanContext returns associated label.SpanContext. If the receiver is nil it returns an empty label.SpanContext
type MockTracer ¶ added in v0.12.0
type MockTracer struct { // StartSpanID is used to initialize spanId. It is incremented by one // every time a new span is created. // // StartSpanID has to be aligned for 64-bit atomic operations. StartSpanID *uint64 // Sampled specifies if the new span should be sampled or not. Sampled bool // OnSpanStarted is called every time a new trace span is started OnSpanStarted func(span *MockSpan) }
MockTracer is a simple tracer used for testing purpose only. It only supports ChildOf option. SpanId is atomically increased every time a new span is created.
func (*MockTracer) Start ¶ added in v0.12.0
func (mt *MockTracer) Start(ctx context.Context, name string, o ...apitrace.SpanOption) (context.Context, apitrace.Span)
Start starts a MockSpan. It creates a new Span based on Parent SpanContext option. TraceID is used from Parent Span Context and SpanID is assigned. If Parent SpanContext option is not specified then random TraceID is used. No other options are supported.
type Option ¶
type Option interface {
Apply(*config)
}
func WithSpanContextFunc ¶
func WithSpanContextFunc(f func(context.Context) trace.SpanContext) Option
func WithSpanRecorder ¶
func WithSpanRecorder(sr SpanRecorder) Option
type Span ¶
type Span struct {
// contains filtered or unexported fields
}
func (*Span) AddEventWithTimestamp ¶
func (*Span) Attributes ¶
Attributes returns the attributes set on the Span, either at or after creation time. If the same attribute key was set multiple times, the last call will be used. Attributes cannot be changed after End has been called on the Span.
func (*Span) End ¶
func (s *Span) End(opts ...trace.SpanOption)
func (*Span) EndTime ¶
EndTime returns the time at which the Span was ended if at has been ended, or false otherwise. If the span has been ended, the returned time will be the wall-clock time unless a specific end time was provided.
func (*Span) Ended ¶
Ended returns whether the Span has been ended, i.e., whether End has been called at least once on the Span.
func (*Span) Events ¶
Events returns the events set on the Span. Events cannot be changed after End has been called on the Span.
func (*Span) IsRecording ¶
func (*Span) Links ¶
func (s *Span) Links() map[trace.SpanContext][]label.KeyValue
Links returns the links set on the Span at creation time. If multiple links for the same SpanContext were set, the last link will be used.
func (*Span) Name ¶
Name returns the name most recently set on the Span, either at or after creation time. It cannot be change after End has been called on the Span.
func (*Span) ParentSpanID ¶
ParentSpanID returns the SpanID of the parent Span. If the Span is a root Span and therefore does not have a parent, the returned SpanID will be invalid (i.e., it will contain all zeroes).
func (*Span) RecordError ¶
func (*Span) SetAttributes ¶
func (*Span) SpanContext ¶
func (s *Span) SpanContext() trace.SpanContext
func (*Span) StartTime ¶
StartTime returns the time at which the Span was started. This will be the wall-clock time unless a specific start time was provided.
func (*Span) StatusCode ¶
Status returns the status most recently set on the Span, or codes.OK if no status has been explicitly set. It cannot be changed after End has been called on the Span.
func (*Span) StatusMessage ¶
StatusMessage returns the status message most recently set on the Span or the empty string if no status mesaage was set.
type SpanRecorder ¶
type StandardSpanRecorder ¶
type StandardSpanRecorder struct {
// contains filtered or unexported fields
}
func (*StandardSpanRecorder) Completed ¶
func (ssr *StandardSpanRecorder) Completed() []*Span
func (*StandardSpanRecorder) OnEnd ¶
func (ssr *StandardSpanRecorder) OnEnd(span *Span)
func (*StandardSpanRecorder) OnStart ¶
func (ssr *StandardSpanRecorder) OnStart(span *Span)
func (*StandardSpanRecorder) Started ¶
func (ssr *StandardSpanRecorder) Started() []*Span
type Tracer ¶
type Tracer struct { // Name is the instrumentation name. Name string // Version is the instrumentation version. Version string // contains filtered or unexported fields }
Tracer is an OpenTelemetry Tracer implementation used for testing.
type TracerProvider ¶ added in v0.12.0
type TracerProvider struct {
// contains filtered or unexported fields
}
func NewTracerProvider ¶ added in v0.12.0
func NewTracerProvider(opts ...Option) *TracerProvider
func (*TracerProvider) Tracer ¶ added in v0.12.0
func (p *TracerProvider) Tracer(instName string, opts ...trace.TracerOption) trace.Tracer