...

Package tracetest

import "go.opentelemetry.io/otel/sdk/trace/tracetest"
Overview
Index

Overview ▾

Package tracetest is a testing helper package for the SDK. User can configure no-op or in-memory exporters to verify different SDK behaviors or custom instrumentation.

type InMemoryExporter

InMemoryExporter is an exporter that stores all received spans in-memory.

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

func NewInMemoryExporter

func NewInMemoryExporter() *InMemoryExporter

NewInMemoryExporter returns a new InMemoryExporter.

func (*InMemoryExporter) ExportSpans

func (imsb *InMemoryExporter) ExportSpans(_ context.Context, spans []trace.ReadOnlySpan) error

ExportSpans handles export of spans by storing them in memory.

func (*InMemoryExporter) GetSpans

func (imsb *InMemoryExporter) GetSpans() SpanStubs

GetSpans returns the current in-memory stored spans.

func (*InMemoryExporter) Reset

func (imsb *InMemoryExporter) Reset()

Reset the current in-memory storage.

func (*InMemoryExporter) Shutdown

func (imsb *InMemoryExporter) Shutdown(context.Context) error

Shutdown stops the exporter by clearing spans held in memory.

type NoopExporter

NoopExporter is an exporter that drops all received spans and performs no action.

type NoopExporter struct{}

func NewNoopExporter

func NewNoopExporter() *NoopExporter

NewNoopExporter returns a new no-op exporter.

func (*NoopExporter) ExportSpans

func (nsb *NoopExporter) ExportSpans(context.Context, []trace.ReadOnlySpan) error

ExportSpans handles export of spans by dropping them.

func (*NoopExporter) Shutdown

func (nsb *NoopExporter) Shutdown(context.Context) error

Shutdown stops the exporter by doing nothing.

type SpanRecorder

SpanRecorder records started and ended spans.

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

func NewSpanRecorder

func NewSpanRecorder() *SpanRecorder

NewSpanRecorder returns a new initialized SpanRecorder.

func (*SpanRecorder) Ended

func (sr *SpanRecorder) Ended() []sdktrace.ReadOnlySpan

Ended returns a copy of all ended spans that have been recorded.

This method is safe to be called concurrently.

func (*SpanRecorder) ForceFlush

func (sr *SpanRecorder) ForceFlush(context.Context) error

ForceFlush does nothing.

This method is safe to be called concurrently.

func (*SpanRecorder) OnEnd

func (sr *SpanRecorder) OnEnd(s sdktrace.ReadOnlySpan)

OnEnd records completed spans.

This method is safe to be called concurrently.

func (*SpanRecorder) OnStart

func (sr *SpanRecorder) OnStart(_ context.Context, s sdktrace.ReadWriteSpan)

OnStart records started spans.

This method is safe to be called concurrently.

func (*SpanRecorder) Shutdown

func (sr *SpanRecorder) Shutdown(context.Context) error

Shutdown does nothing.

This method is safe to be called concurrently.

func (*SpanRecorder) Started

func (sr *SpanRecorder) Started() []sdktrace.ReadWriteSpan

Started returns a copy of all started spans that have been recorded.

This method is safe to be called concurrently.

type SpanStub

SpanStub is a stand-in for a Span.

type SpanStub struct {
    Name                   string
    SpanContext            trace.SpanContext
    Parent                 trace.SpanContext
    SpanKind               trace.SpanKind
    StartTime              time.Time
    EndTime                time.Time
    Attributes             []attribute.KeyValue
    Events                 []tracesdk.Event
    Links                  []tracesdk.Link
    Status                 tracesdk.Status
    DroppedAttributes      int
    DroppedEvents          int
    DroppedLinks           int
    ChildSpanCount         int
    Resource               *resource.Resource
    InstrumentationLibrary instrumentation.Library
}

func SpanStubFromReadOnlySpan

func SpanStubFromReadOnlySpan(ro tracesdk.ReadOnlySpan) SpanStub

SpanStubFromReadOnlySpan returns a SpanStub populated from ro.

func (SpanStub) Snapshot

func (s SpanStub) Snapshot() tracesdk.ReadOnlySpan

Snapshot returns a read-only copy of the SpanStub.

type SpanStubs

SpanStubs is a slice of SpanStub use for testing an SDK.

type SpanStubs []SpanStub

func SpanStubsFromReadOnlySpans

func SpanStubsFromReadOnlySpans(ro []tracesdk.ReadOnlySpan) SpanStubs

SpanStubsFromReadOnlySpans returns SpanStubs populated from ro.

func (SpanStubs) Snapshots

func (s SpanStubs) Snapshots() []tracesdk.ReadOnlySpan

Snapshots returns s as a slice of ReadOnlySpans.