comparator

package
v3.7.0 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2026 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CauseNoMismatch                      = ""
	CauseStatusMismatch                  = "status_mismatch"
	CauseResultTypeMismatch              = "result_type_mismatch"
	CauseMetricCountMismatch             = "metric_count_mismatch"
	CauseMetricMissing                   = "metric_missing"
	CauseSampleCountMismatch             = "sample_count_mismatch"
	CauseSampleValueMismatch             = "sample_value_mismatch"
	CauseSampleTimestampMismatch         = "sample_timestamp_mismatch"
	CauseStreamCountMismatch             = "stream_count_mismatch"
	CauseStreamMissing                   = "stream_missing"
	CauseStreamEntryCountMismatch        = "stream_entry_count_mismatch"
	CauseStreamTimestampMismatch         = "stream_timestamp_mismatch"
	CauseStreamLineMismatch              = "stream_line_mismatch"
	CauseStructuredMetadataCountMismatch = "structured_metadata_count_mismatch"
	CauseStructuredMetadataMismatch      = "structured_metadata_mismatch"
	CauseParsedLabelsCountMismatch       = "parsed_labels_count_mismatch"
	CauseParsedLabelsMismatch            = "parsed_labels_mismatch"
	CauseUnknown                         = "unknown"
)

Mismatch cause constants for categorising comparison failures.

Variables

View Source
var ErrComparisonMismatch = errors.New("comparison mismatch")

ErrComparisonMismatch is returned when responses are successfully compared but don't match. This distinguishes data mismatches from operational failures (parsing errors, backend failures).

Functions

This section is empty.

Types

type ComparisonSummary

type ComparisonSummary struct {
	Skipped        bool
	MissingMetrics int
	// MismatchCause is set when comparison fails with ErrComparisonMismatch.
	MismatchCause string
}

type ResponsesComparator

type ResponsesComparator interface {
	Compare(expected, actual []byte, queryEvaluationTime time.Time) (*ComparisonSummary, error)
}

type SampleComparisonOptions

type SampleComparisonOptions struct {
	Tolerance         float64
	UseRelativeError  bool
	SkipRecentSamples time.Duration
	SkipSamplesBefore time.Time
}

func (*SampleComparisonOptions) SkipSample

func (opts *SampleComparisonOptions) SkipSample(sampleTime, evaluationTime time.Time) bool

type SamplesComparator

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

func NewSamplesComparator

func NewSamplesComparator(opts SampleComparisonOptions) *SamplesComparator

func (*SamplesComparator) Compare

func (s *SamplesComparator) Compare(expectedResponse, actualResponse []byte, evaluationTime time.Time) (*ComparisonSummary, error)

func (*SamplesComparator) RegisterSamplesType

func (s *SamplesComparator) RegisterSamplesType(samplesType string, comparator SamplesComparatorFunc)

RegisterSamplesType helps with registering custom sample types

type SamplesComparatorFunc

type SamplesComparatorFunc func(expected, actual json.RawMessage, evaluationTime time.Time, opts SampleComparisonOptions) (*ComparisonSummary, error)

SamplesComparatorFunc helps with comparing different types of samples coming from /api/v1/query and /api/v1/query_range routes.

type SamplesResponse

type SamplesResponse struct {
	Status string
	Data   struct {
		ResultType string
		Result     json.RawMessage
	}
}

Jump to

Keyboard shortcuts

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