Documentation
¶
Overview ¶
Package testkit provides in-memory OTel harnesses for metric and trace assertions in unit tests. Wraps sdkmetric.ManualReader and sdktrace.SpanRecorder with a narrow set of helpers. Drop down to OTel's own test types when richer assertions are needed.
Index ¶
- type ExponentialHistogramPoint
- type Float64Point
- type HistogramPoint
- type Int64Point
- type MetricsHarness
- func (h *MetricsHarness) Collect(ctx context.Context) (metricdata.ResourceMetrics, error)
- func (h *MetricsHarness) ExponentialHistogramPoints(ctx context.Context, name string) ([]ExponentialHistogramPoint, error)
- func (h *MetricsHarness) Float64Points(ctx context.Context, name string) ([]Float64Point, error)
- func (h *MetricsHarness) GaugeFloat64Points(ctx context.Context, name string) ([]Float64Point, error)
- func (h *MetricsHarness) GaugeInt64Points(ctx context.Context, name string) ([]Int64Point, error)
- func (h *MetricsHarness) HistogramPoints(ctx context.Context, name string) ([]HistogramPoint, error)
- func (h *MetricsHarness) Int64Points(ctx context.Context, name string) ([]Int64Point, error)
- func (h *MetricsHarness) MetricNames(ctx context.Context) ([]string, error)
- func (h *MetricsHarness) Provider() *sdkmetric.MeterProvider
- func (h *MetricsHarness) Shutdown(ctx context.Context) error
- type MetricsOption
- type SpanSummary
- type TracesHarness
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ExponentialHistogramPoint ¶
type ExponentialHistogramPoint struct {
Attributes map[string]string
Count uint64
Sum float64
Scale int32
ZeroCount uint64
}
ExponentialHistogramPoint is a lossy projection of a base-2 exponential histogram data point. Count/Sum/Scale/ZeroCount cover the common assertions; reach for metricdata.ExponentialHistogram[float64] directly for bucket-level detail.
type Float64Point ¶
type HistogramPoint ¶
type Int64Point ¶
type MetricsHarness ¶
type MetricsHarness struct {
// contains filtered or unexported fields
}
func NewMetricsHarness ¶
func NewMetricsHarness(opts ...MetricsOption) *MetricsHarness
func (*MetricsHarness) Collect ¶
func (h *MetricsHarness) Collect(ctx context.Context) (metricdata.ResourceMetrics, error)
func (*MetricsHarness) ExponentialHistogramPoints ¶
func (h *MetricsHarness) ExponentialHistogramPoints( ctx context.Context, name string, ) ([]ExponentialHistogramPoint, error)
ExponentialHistogramPoints returns base-2 exponential histogram data points matching name. Only populated when the harness is configured with an exponential-histogram aggregation selector (see WithAggregationSelector).
func (*MetricsHarness) Float64Points ¶
func (h *MetricsHarness) Float64Points(ctx context.Context, name string) ([]Float64Point, error)
Float64Points returns Sum[float64] data points (float64 counters and up/down counters) matching name.
func (*MetricsHarness) GaugeFloat64Points ¶
func (h *MetricsHarness) GaugeFloat64Points(ctx context.Context, name string) ([]Float64Point, error)
GaugeFloat64Points returns Gauge[float64] data points matching name.
func (*MetricsHarness) GaugeInt64Points ¶
func (h *MetricsHarness) GaugeInt64Points(ctx context.Context, name string) ([]Int64Point, error)
GaugeInt64Points returns Gauge[int64] data points matching name.
func (*MetricsHarness) HistogramPoints ¶
func (h *MetricsHarness) HistogramPoints(ctx context.Context, name string) ([]HistogramPoint, error)
func (*MetricsHarness) Int64Points ¶
func (h *MetricsHarness) Int64Points(ctx context.Context, name string) ([]Int64Point, error)
func (*MetricsHarness) MetricNames ¶
func (h *MetricsHarness) MetricNames(ctx context.Context) ([]string, error)
func (*MetricsHarness) Provider ¶
func (h *MetricsHarness) Provider() *sdkmetric.MeterProvider
type MetricsOption ¶
type MetricsOption func(*metricsConfig)
MetricsOption tunes NewMetricsHarness.
func WithAggregationSelector ¶
func WithAggregationSelector(s sdkmetric.AggregationSelector) MetricsOption
WithAggregationSelector wires a custom aggregation selector into the harness. Use when unit-testing SDK behavior against the same selector that the application uses in production (e.g., the exponential-histogram default from the histograms package).
type SpanSummary ¶
type TracesHarness ¶
type TracesHarness struct {
// contains filtered or unexported fields
}
func NewTracesHarness ¶
func NewTracesHarness() *TracesHarness
func (*TracesHarness) Ended ¶
func (h *TracesHarness) Ended() []sdktrace.ReadOnlySpan
func (*TracesHarness) Provider ¶
func (h *TracesHarness) Provider() *sdktrace.TracerProvider
func (*TracesHarness) Summaries ¶
func (h *TracesHarness) Summaries() []SpanSummary