Documentation ¶
Overview ¶
Package testutil provides easy ways to generate some random or deterministic data that can be use for tests or benchmarks.
All the publicly shared trace agent model is available.
It avoids the cumbersome step of having to redefine complicated structs in every test case and maintain common methods for quick access to almost all kind of stub data needed. It should NEVER be imported in a program, most likely in one-off projects or fuzz modes or test suites.
Index ¶
- Variables
- func BucketWithSpans(spans []*stats.WeightedSpan) pb.ClientStatsBucket
- func GeneratePayload(n int, tc *TraceConfig, sc *SpanConfig) pb.Traces
- func GenerateSpan(c *SpanConfig) *pb.Span
- func GenerateTrace(tc *TraceConfig, sc *SpanConfig) pb.Trace
- func GetTestSpan() *pb.Span
- func GetTestTraces(traceN, size int, realisticIDs bool) pb.Traces
- func RandomBucket(n int) pb.ClientStatsBucket
- func RandomSizedBytes(size int) []byte
- func RandomSpan() *pb.Span
- func RandomSpanDuration() int64
- func RandomSpanError() int32
- func RandomSpanID() uint64
- func RandomSpanMeta() map[string]string
- func RandomSpanMetrics() map[string]float64
- func RandomSpanName() string
- func RandomSpanParentID() uint64
- func RandomSpanResource() string
- func RandomSpanService() string
- func RandomSpanStart() int64
- func RandomSpanTraceID() uint64
- func RandomSpanType() string
- func RandomStringMap() map[string]string
- func RandomTrace(maxLevels, maxSpans int) pb.Trace
- func RandomWeightedSpan() *stats.WeightedSpan
- func TestSpan() *pb.Span
- func TestWeightedSpan() *stats.WeightedSpan
- func WithFeatures(feats string) (undo func())
- type CountSummary
- type GaugeSummary
- type MetricsArgs
- type MockEngine
- type SpanConfig
- type TestBackoffTimer
- func (t *TestBackoffTimer) Close()
- func (t *TestBackoffTimer) CurrentDelay() time.Duration
- func (t *TestBackoffTimer) NumRetries() int
- func (t *TestBackoffTimer) ReceiveTick() <-chan time.Time
- func (t *TestBackoffTimer) Reset()
- func (t *TestBackoffTimer) ScheduleRetry(err error) (int, time.Duration)
- func (t *TestBackoffTimer) Stop()
- func (t *TestBackoffTimer) TriggerTick()
- type TestStatsClient
- func (c *TestStatsClient) Count(name string, value int64, tags []string, rate float64) error
- func (c *TestStatsClient) Flush() error
- func (c *TestStatsClient) Gauge(name string, value float64, tags []string, rate float64) error
- func (c *TestStatsClient) GetCountSummaries() map[string]*CountSummary
- func (c *TestStatsClient) GetGaugeSummaries() map[string]*GaugeSummary
- func (c *TestStatsClient) Histogram(name string, value float64, tags []string, rate float64) error
- func (c *TestStatsClient) Reset()
- func (c *TestStatsClient) Timing(name string, value time.Duration, tags []string, rate float64) error
- type TraceConfig
Constants ¶
This section is empty.
Variables ¶
var YearNS = (time.Hour * 24 * 365).Nanoseconds()
YearNS is the number of nanoseconds in a year
Functions ¶
func BucketWithSpans ¶
func BucketWithSpans(spans []*stats.WeightedSpan) pb.ClientStatsBucket
BucketWithSpans returns a stats bucket populated with spans stats
func GeneratePayload ¶
func GeneratePayload(n int, tc *TraceConfig, sc *SpanConfig) pb.Traces
GeneratePayload generates a new payload.
func GenerateSpan ¶
func GenerateSpan(c *SpanConfig) *pb.Span
GenerateSpan generates a random root span with all fields filled in.
func GenerateTrace ¶
func GenerateTrace(tc *TraceConfig, sc *SpanConfig) pb.Trace
GenerateTrace generates a valid trace using the given config.
func GetTestTraces ¶
GetTestTraces returns a []Trace that is composed by “traceN“ number of traces, each one composed by “size“ number of spans.
func RandomBucket ¶
func RandomBucket(n int) pb.ClientStatsBucket
RandomBucket returns a bucket made from n random spans, useful to run benchmarks and tests
func RandomSizedBytes ¶
RandomSizedBytes creates a random byte slice with the specified size.
func RandomSpan ¶
RandomSpan generates a wide-variety of spans, useful to test robustness & performance
func RandomSpanDuration ¶
func RandomSpanDuration() int64
RandomSpanDuration generates a random span duration
func RandomSpanError ¶
func RandomSpanError() int32
RandomSpanError generates a random span error code
func RandomSpanMeta ¶
RandomSpanMeta generates some random span metadata
func RandomSpanMetrics ¶
RandomSpanMetrics generates some random span metrics
func RandomSpanName ¶
func RandomSpanName() string
RandomSpanName generates a random span name string
func RandomSpanParentID ¶
func RandomSpanParentID() uint64
RandomSpanParentID generates a random span parent ID
func RandomSpanResource ¶
func RandomSpanResource() string
RandomSpanResource generates a random span resource string
func RandomSpanService ¶
func RandomSpanService() string
RandomSpanService generates a random span service string
func RandomSpanStart ¶
func RandomSpanStart() int64
RandomSpanStart generates a span start timestamp
func RandomSpanTraceID ¶
func RandomSpanTraceID() uint64
RandomSpanTraceID generates a random trace ID
func RandomStringMap ¶
RandomStringMap creates a random map with string keys and values.
func RandomTrace ¶
RandomTrace generates a random trace with a depth from 1 to maxLevels of spans. Each level has at most maxSpans items.
func RandomWeightedSpan ¶
func RandomWeightedSpan() *stats.WeightedSpan
RandomWeightedSpan generates a random weighted span, useful for stats tests
func TestWeightedSpan ¶
func TestWeightedSpan() *stats.WeightedSpan
TestWeightedSpan returns a static test weighted span for reproductive stats tests
func WithFeatures ¶
func WithFeatures(feats string) (undo func())
WithFeatures sets the given list of comma-separated features as active and returns a function which resets the features to their previous state.
Types ¶
type CountSummary ¶
type CountSummary struct { Calls []MetricsArgs Sum int64 }
CountSummary contains a summary of all Count method calls to a particular StatsClient for a particular key.
type GaugeSummary ¶
type GaugeSummary struct { Calls []MetricsArgs Last float64 Max float64 }
GaugeSummary contains a summary of all Gauge method calls to a particular StatsClient for a particular key.
type MetricsArgs ¶
MetricsArgs represents arguments to a StatsClient Gauge method call.
type MockEngine ¶
type MockEngine struct {
// contains filtered or unexported fields
}
MockEngine mocks a sampler engine
func NewMockEngine ¶
func NewMockEngine(wantSampled bool) *MockEngine
NewMockEngine returns a MockEngine for tests
func (*MockEngine) GetState ¶
func (e *MockEngine) GetState() interface{}
GetState mocks Engine.GetState()
func (*MockEngine) GetType ¶
func (e *MockEngine) GetType() sampler.EngineType
GetType mocks Engine.GetType()
type SpanConfig ¶
type SpanConfig struct { // MinTags specifies the minimum number of tags this span should have. MinTags int // MaxTags specifies the maximum number of tags this span should have. MaxTags int }
SpanConfig defines the configuration for generating spans.
type TestBackoffTimer ¶
type TestBackoffTimer struct {
// contains filtered or unexported fields
}
TestBackoffTimer is a backoff timer that ticks on-demand.
func NewTestBackoffTimer ¶
func NewTestBackoffTimer() *TestBackoffTimer
NewTestBackoffTimer creates a new instance of a TestBackoffTimer.
func (*TestBackoffTimer) Close ¶
func (t *TestBackoffTimer) Close()
Close closes the ticking channel of this backoff timer.
func (*TestBackoffTimer) CurrentDelay ¶
func (t *TestBackoffTimer) CurrentDelay() time.Duration
CurrentDelay in a TestBackoffTimer always returns 0.
func (*TestBackoffTimer) NumRetries ¶
func (t *TestBackoffTimer) NumRetries() int
NumRetries in a TestBackoffTimer always returns 0.
func (*TestBackoffTimer) ReceiveTick ¶
func (t *TestBackoffTimer) ReceiveTick() <-chan time.Time
ReceiveTick returns the channel where ticks are sent.
func (*TestBackoffTimer) Reset ¶
func (t *TestBackoffTimer) Reset()
Reset in a TestBackoffTimer is a no-op.
func (*TestBackoffTimer) ScheduleRetry ¶
func (t *TestBackoffTimer) ScheduleRetry(err error) (int, time.Duration)
ScheduleRetry on a TestBackoffTimer is a no-op.
func (*TestBackoffTimer) Stop ¶
func (t *TestBackoffTimer) Stop()
Stop in a TestBackoffTimer is a no-op.
func (*TestBackoffTimer) TriggerTick ¶
func (t *TestBackoffTimer) TriggerTick()
TriggerTick immediately sends a tick with the current timestamp through the ticking channel.
type TestStatsClient ¶
type TestStatsClient struct { GaugeErr error GaugeCalls []MetricsArgs CountErr error CountCalls []MetricsArgs HistogramErr error HistogramCalls []MetricsArgs TimingErr error TimingCalls []MetricsArgs // contains filtered or unexported fields }
TestStatsClient is a mocked StatsClient that records all calls and replies with configurable error return values.
func (*TestStatsClient) Flush ¶
func (c *TestStatsClient) Flush() error
Flush implements metrics.StatsClient
func (*TestStatsClient) GetCountSummaries ¶
func (c *TestStatsClient) GetCountSummaries() map[string]*CountSummary
GetCountSummaries computes summaries for all names supplied as parameters to Count calls.
func (*TestStatsClient) GetGaugeSummaries ¶
func (c *TestStatsClient) GetGaugeSummaries() map[string]*GaugeSummary
GetGaugeSummaries computes summaries for all names supplied as parameters to Gauge calls.
func (*TestStatsClient) Histogram ¶
Histogram records a call to a Histogram operation and replies with HistogramErr
func (*TestStatsClient) Reset ¶
func (c *TestStatsClient) Reset()
Reset resets client's internal records.
type TraceConfig ¶
type TraceConfig struct { // MinSpans specifies the minimum number of spans per trace. MinSpans int // MaxSpans specifies the maximum number of spans per trace. MaxSpans int // Keep reports whether this trace should be marked as sampling priority // "User Keep" Keep bool }
TraceConfig specifies trace generating configuration.