testutil

package
v0.0.29 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2025 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AlertValidation

type AlertValidation = func(alert *promv1.Rule) []Problem

type DefaultMetricsGetter

type DefaultMetricsGetter struct {
	URL string
	// contains filtered or unexported fields
}

DefaultMetricsGetter is the default implementation of MetricsFetcher.

func (*DefaultMetricsGetter) AddLabelFilter

func (dmg *DefaultMetricsGetter) AddLabelFilter(labelsKeyValue ...string)

func (*DefaultMetricsGetter) AddNameFilter

func (dmg *DefaultMetricsGetter) AddNameFilter(name string)

func (*DefaultMetricsGetter) AddTimestampAfterFilter

func (dmg *DefaultMetricsGetter) AddTimestampAfterFilter(ts time.Time)

func (*DefaultMetricsGetter) AddTimestampBeforeFilter

func (dmg *DefaultMetricsGetter) AddTimestampBeforeFilter(ts time.Time)

func (*DefaultMetricsGetter) LoadMetrics

func (dmg *DefaultMetricsGetter) LoadMetrics(payload string) (map[string][]MetricResult, error)

LoadMetrics parses a provided metrics payload string and applies filters.

func (*DefaultMetricsGetter) Run

func (dmg *DefaultMetricsGetter) Run() (map[string][]MetricResult, error)

Run fetches metrics via HTTP, parses them, and applies filters.

type Linter

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

func New

func New() *Linter

func (*Linter) AddCustomAlertValidations

func (linter *Linter) AddCustomAlertValidations(validations ...AlertValidation)

func (*Linter) AddCustomRecordRuleValidations

func (linter *Linter) AddCustomRecordRuleValidations(validations ...RecordRuleValidation)

func (*Linter) LintAlert

func (linter *Linter) LintAlert(alert *promv1.Rule) []Problem

func (*Linter) LintAlerts

func (linter *Linter) LintAlerts(alerts []promv1.Rule) []Problem

func (*Linter) LintRecordingRule

func (linter *Linter) LintRecordingRule(recordingRule *operatorrules.RecordingRule) []Problem

func (*Linter) LintRecordingRules

func (linter *Linter) LintRecordingRules(recordingRules []operatorrules.RecordingRule) []Problem

type MetricResult

type MetricResult struct {
	Name      string            `json:"name"`
	Labels    map[string]string `json:"labels"`
	Value     float64           `json:"value"`
	Timestamp *time.Time        `json:"timestamp,omitempty"`
}

MetricResult represents a single metric.

type MetricsFetcher

type MetricsFetcher interface {
	AddNameFilter(name string)
	AddLabelFilter(labelsKeyValue ...string)
	AddTimestampAfterFilter(ts time.Time)
	AddTimestampBeforeFilter(ts time.Time)
	Run() (map[string][]MetricResult, error)
	LoadMetrics(payload string) (map[string][]MetricResult, error)
}

MetricsFetcher defines the interface for fetching and loading metrics.

func NewMetricsFetcher

func NewMetricsFetcher(URL string) MetricsFetcher

NewMetricsFetcher creates a new MetricsFetcher instance.

type Problem

type Problem struct {
	// The name of the Metric, Recording Rule, or Alert indicated by the Problem
	ResourceName string

	// The description of the problem found
	Description string
}

func ValidateAlertHasDescriptionAnnotation

func ValidateAlertHasDescriptionAnnotation(alert *promv1.Rule) []Problem

func ValidateAlertHealthImpactLabel

func ValidateAlertHealthImpactLabel(alert *promv1.Rule) []Problem

func ValidateAlertNameLength

func ValidateAlertNameLength(alert *promv1.Rule) []Problem

func ValidateAlertPartOfAndComponentLabels

func ValidateAlertPartOfAndComponentLabels(alert *promv1.Rule) []Problem

func ValidateAlertRunbookURLAnnotation

func ValidateAlertRunbookURLAnnotation(alert *promv1.Rule) []Problem

type RecordRuleValidation

type RecordRuleValidation = func(rr *operatorrules.RecordingRule) []Problem

Jump to

Keyboard shortcuts

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