tracetest

package
v0.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2020 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package tracetest provides testing utilities for tracing.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Event

type Event struct {
	Timestamp  time.Time
	Name       string
	Attributes map[label.Key]label.Value
}

Event encapsulates the properties of calls to AddEvent or AddEventWithTimestamp.

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) AddEvent added in v0.12.0

func (ms *MockSpan) AddEvent(ctx context.Context, name string, attrs ...label.KeyValue)

AddEvent does nothing.

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

func (ms *MockSpan) IsRecording() bool

IsRecording always returns false for MockSpan.

func (*MockSpan) RecordError added in v0.12.0

func (ms *MockSpan) RecordError(ctx context.Context, err error, opts ...apitrace.ErrorOption)

RecordError does nothing.

func (*MockSpan) SetAttributes added in v0.12.0

func (ms *MockSpan) SetAttributes(attributes ...label.KeyValue)

SetAttributes does nothing.

func (*MockSpan) SetError added in v0.12.0

func (ms *MockSpan) SetError(v bool)

SetError does nothing.

func (*MockSpan) SetName added in v0.12.0

func (ms *MockSpan) SetName(name string)

SetName sets the span name.

func (*MockSpan) SetStatus added in v0.12.0

func (ms *MockSpan) SetStatus(status codes.Code, msg string)

SetStatus 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

func (*MockSpan) Tracer added in v0.12.0

func (ms *MockSpan) Tracer() apitrace.Tracer

Tracer returns MockTracer implementation of Tracer.

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

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

func (s *Span) AddEvent(ctx context.Context, name string, attrs ...label.KeyValue)

func (*Span) AddEventWithTimestamp

func (s *Span) AddEventWithTimestamp(ctx context.Context, timestamp time.Time, name string, attrs ...label.KeyValue)

func (*Span) Attributes

func (s *Span) Attributes() map[label.Key]label.Value

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

func (s *Span) EndTime() (time.Time, bool)

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

func (s *Span) Ended() bool

Ended returns whether the Span has been ended, i.e., whether End has been called at least once on the Span.

func (*Span) Events

func (s *Span) Events() []Event

Events returns the events set on the Span. Events cannot be changed after End has been called on the Span.

func (*Span) IsRecording

func (s *Span) IsRecording() bool
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

func (s *Span) Name() string

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

func (s *Span) ParentSpanID() trace.SpanID

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 (s *Span) RecordError(ctx context.Context, err error, opts ...trace.ErrorOption)

func (*Span) SetAttributes

func (s *Span) SetAttributes(attrs ...label.KeyValue)

func (*Span) SetName

func (s *Span) SetName(name string)

func (*Span) SetStatus

func (s *Span) SetStatus(code codes.Code, msg string)

func (*Span) SpanContext

func (s *Span) SpanContext() trace.SpanContext

func (*Span) SpanKind

func (s *Span) SpanKind() trace.SpanKind

SpanKind returns the span kind of this span.

func (*Span) StartTime

func (s *Span) StartTime() time.Time

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

func (s *Span) StatusCode() codes.Code

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

func (s *Span) StatusMessage() string

StatusMessage returns the status message most recently set on the Span or the empty string if no status mesaage was set.

func (*Span) Tracer

func (s *Span) Tracer() trace.Tracer

type SpanRecorder

type SpanRecorder interface {
	OnStart(span *Span)
	OnEnd(span *Span)
}

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.

func (*Tracer) Start

func (t *Tracer) Start(ctx context.Context, name string, opts ...trace.SpanOption) (context.Context, trace.Span)

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL