checks

package
v0.50.0 Latest Latest
Warning

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

Go to latest
Published: Nov 28, 2023 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ComparisonCheckName    = "alerts/comparison"
	ComparisonCheckDetails = `Prometheus alerting rules will trigger an alert for each query that returns *any* result.
Unless you do want an alert to always fire you should write your query in a way that returns results only when some condition is met.
In most cases this can be achieved by having some condition in the query expression.
For example ` + "`" + `up == 0` + "`" + " or " + "`" + "rate(error_total[2m]) > 0" + "`." + `
Be careful as some PromQL operations will cause the query to always return the results, for example using the [bool modifier](https://prometheus.io/docs/prometheus/latest/querying/operators/#comparison-binary-operators).`
)
View Source
const (
	AlertForCheckName         = "alerts/for"
	AlertForCheckDurationHelp = `Supported time durations are documented [here](https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations).`
)
View Source
const (
	TemplateCheckName               = "alerts/template"
	TemplateCheckSyntaxDetails      = `` /* 134-byte string literal not displayed */
	TemplateCheckAggregationDetails = `` /* 400-byte string literal not displayed */

	TemplateCheckAbsentDetails = `The [absent()](https://prometheus.io/docs/prometheus/latest/querying/functions/#absent) function is used to check if provided query doesn't match any time series.
You will only get any results back if the metric selector you pass doesn't match anything.
Since there are no matching time series there are also no labels. If some time series is missing you cannot read its labels.
This means that the only labels you can get back from absent call are the ones you pass to it.
If you're hoping to get instance specific labels this way and alert when some target is down then that won't work, use the ` + "`up`" + ` metric instead.`
	TemplateCheckOnDetails = `Using [vector matching](https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching) operations will impact which labels are available on the results of your query.
When using ` + "`on()`" + `make sure that all labels you're trying to use in this templare match what the query can return.`
	TemplateCheckLabelsDetails = `This query doesn't seem to be using any time series and so cannot have any labels.`
)
View Source
const (
	RateCheckName    = "promql/rate"
	RateCheckDetails = `` /* 667-byte string literal not displayed */

)
View Source
const (
	SeriesCheckName        = "promql/series"
	SeriesCheckRuleDetails = `` /* 479-byte string literal not displayed */

	SeriesCheckCommonProblemDetails = `` /* 145-byte string literal not displayed */
	SeriesCheckMinAgeDetails        = `` /* 248-byte string literal not displayed */

)
View Source
const (
	SyntaxCheckName    = "promql/syntax"
	SyntaxCheckDetails = "[Click here](https://prometheus.io/docs/prometheus/latest/querying/basics/) for PromQL documentation."
)
View Source
const (
	VectorMatchingCheckName    = "promql/vector_matching"
	VectorMatchingCheckDetails = `` /* 360-byte string literal not displayed */

)
View Source
const (
	CostCheckName       = "query/cost"
	BytesPerSampleQuery = "avg(avg_over_time(go_memstats_alloc_bytes[2h]) / avg_over_time(prometheus_tsdb_head_series[2h]))"
)
View Source
const (
	AggregationCheckName = "promql/aggregate"
)
View Source
const (
	AlertsCheckName = "alerts/count"
)
View Source
const (
	AlertsExternalLabelsCheckName = "alerts/external_labels"
)
View Source
const (
	AnnotationCheckName = "alerts/annotation"
)
View Source
const (
	FragileCheckName = "promql/fragile"
)
View Source
const (
	LabelCheckName = "rule/label"
)
View Source
const (
	LabelsConflictCheckName = "labels/conflict"
)
View Source
const (
	RangeQueryCheckName = "promql/range_query"
)
View Source
const (
	RegexpCheckName = "promql/regexp"
)
View Source
const (
	RejectCheckName = "rule/reject"
)
View Source
const (
	RuleDuplicateCheckName = "rule/duplicate"
)
View Source
const (
	RuleForCheckName = "rule/for"
)
View Source
const (
	RuleLinkCheckName = "rule/link"
)

Variables

Functions

This section is empty.

Types

type AggregationCheck added in v0.6.0

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

func NewAggregationCheck added in v0.6.0

func NewAggregationCheck(nameRegex *TemplatedRegexp, label string, keep bool, severity Severity) AggregationCheck

func (AggregationCheck) Check added in v0.6.0

func (c AggregationCheck) Check(_ context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (AggregationCheck) Meta added in v0.27.0

func (c AggregationCheck) Meta() CheckMeta

func (AggregationCheck) Reporter added in v0.7.0

func (c AggregationCheck) Reporter() string

func (AggregationCheck) String added in v0.6.0

func (c AggregationCheck) String() string

type AlertsCheck

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

func NewAlertsCheck

func NewAlertsCheck(prom *promapi.FailoverGroup, lookBack, step, resolve time.Duration, minCount int, severity Severity) AlertsCheck

func (AlertsCheck) Check

func (c AlertsCheck) Check(ctx context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (AlertsCheck) Meta added in v0.27.0

func (c AlertsCheck) Meta() CheckMeta

func (AlertsCheck) Reporter added in v0.7.0

func (c AlertsCheck) Reporter() string

func (AlertsCheck) String

func (c AlertsCheck) String() string

type AlertsExternalLabelsCheck added in v0.49.0

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

func NewAlertsExternalLabelsCheck added in v0.49.0

func NewAlertsExternalLabelsCheck(prom *promapi.FailoverGroup) AlertsExternalLabelsCheck

func (AlertsExternalLabelsCheck) Check added in v0.49.0

func (c AlertsExternalLabelsCheck) Check(ctx context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (AlertsExternalLabelsCheck) Meta added in v0.49.0

func (AlertsExternalLabelsCheck) Reporter added in v0.49.0

func (c AlertsExternalLabelsCheck) Reporter() string

func (AlertsExternalLabelsCheck) String added in v0.49.0

func (c AlertsExternalLabelsCheck) String() string

type AlertsForChecksFor added in v0.5.0

type AlertsForChecksFor struct{}

func NewAlertsForCheck added in v0.5.0

func NewAlertsForCheck() AlertsForChecksFor

func (AlertsForChecksFor) Check added in v0.5.0

func (c AlertsForChecksFor) Check(_ context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (AlertsForChecksFor) Meta added in v0.27.0

func (c AlertsForChecksFor) Meta() CheckMeta

func (AlertsForChecksFor) Reporter added in v0.7.0

func (c AlertsForChecksFor) Reporter() string

func (AlertsForChecksFor) String added in v0.5.0

func (c AlertsForChecksFor) String() string

type AnnotationCheck

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

func NewAnnotationCheck

func NewAnnotationCheck(keyRe, valueRe *TemplatedRegexp, isReguired bool, severity Severity) AnnotationCheck

func (AnnotationCheck) Check

func (c AnnotationCheck) Check(_ context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (AnnotationCheck) Meta added in v0.27.0

func (c AnnotationCheck) Meta() CheckMeta

func (AnnotationCheck) Reporter added in v0.7.0

func (c AnnotationCheck) Reporter() string

func (AnnotationCheck) String

func (c AnnotationCheck) String() string

type CheckMeta added in v0.27.0

type CheckMeta struct {
	IsOnline bool
}

type ComparisonCheck

type ComparisonCheck struct{}

func NewComparisonCheck

func NewComparisonCheck() ComparisonCheck

func (ComparisonCheck) Check

func (c ComparisonCheck) Check(_ context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (ComparisonCheck) Meta added in v0.27.0

func (c ComparisonCheck) Meta() CheckMeta

func (ComparisonCheck) Reporter added in v0.7.0

func (c ComparisonCheck) Reporter() string

func (ComparisonCheck) String

func (c ComparisonCheck) String() string

type CostCheck

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

func NewCostCheck

func NewCostCheck(prom *promapi.FailoverGroup, maxSeries, maxTotalSamples, maxPeakSamples int, maxEvaluationDuration time.Duration, severity Severity) CostCheck

func (CostCheck) Check

func (c CostCheck) Check(ctx context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (CostCheck) Meta added in v0.27.0

func (c CostCheck) Meta() CheckMeta

func (CostCheck) Reporter added in v0.7.0

func (c CostCheck) Reporter() string

func (CostCheck) String

func (c CostCheck) String() string

type FragileCheck added in v0.8.0

type FragileCheck struct{}

func NewFragileCheck added in v0.8.0

func NewFragileCheck() FragileCheck

func (FragileCheck) Check added in v0.8.0

func (c FragileCheck) Check(_ context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (FragileCheck) Meta added in v0.27.0

func (c FragileCheck) Meta() CheckMeta

func (FragileCheck) Reporter added in v0.8.0

func (c FragileCheck) Reporter() string

func (FragileCheck) String added in v0.8.0

func (c FragileCheck) String() string

type LabelCheck

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

func NewLabelCheck

func NewLabelCheck(key string, valueRe *TemplatedRegexp, isReguired bool, severity Severity) LabelCheck

func (LabelCheck) Check

func (c LabelCheck) Check(_ context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (LabelCheck) Meta added in v0.27.0

func (c LabelCheck) Meta() CheckMeta

func (LabelCheck) Reporter added in v0.7.0

func (c LabelCheck) Reporter() string

func (LabelCheck) String

func (c LabelCheck) String() string

type LabelsConflictCheck added in v0.35.0

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

func NewLabelsConflictCheck added in v0.35.0

func NewLabelsConflictCheck(prom *promapi.FailoverGroup) LabelsConflictCheck

func (LabelsConflictCheck) Check added in v0.35.0

func (c LabelsConflictCheck) Check(ctx context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (LabelsConflictCheck) Meta added in v0.35.0

func (c LabelsConflictCheck) Meta() CheckMeta

func (LabelsConflictCheck) Reporter added in v0.35.0

func (c LabelsConflictCheck) Reporter() string

func (LabelsConflictCheck) String added in v0.35.0

func (c LabelsConflictCheck) String() string

type Problem

type Problem struct {
	Fragment string
	Lines    []int
	Reporter string
	Text     string
	Details  string
	Severity Severity
}

func (Problem) LineRange

func (p Problem) LineRange() (int, int)

type PromqlSeriesSettings added in v0.23.0

type PromqlSeriesSettings struct {
	LookbackRange string `hcl:"lookbackRange,optional" json:"lookbackRange,omitempty"`

	LookbackStep string `hcl:"lookbackStep,optional" json:"lookbackStep,omitempty"`

	IgnoreMetrics []string `hcl:"ignoreMetrics,optional" json:"ignoreMetrics,omitempty"`
	// contains filtered or unexported fields
}

func (*PromqlSeriesSettings) Validate added in v0.23.0

func (c *PromqlSeriesSettings) Validate() error

type RangeQueryCheck added in v0.26.0

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

func NewRangeQueryCheck added in v0.26.0

func NewRangeQueryCheck(prom *promapi.FailoverGroup) RangeQueryCheck

func (RangeQueryCheck) Check added in v0.26.0

func (c RangeQueryCheck) Check(ctx context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (RangeQueryCheck) Meta added in v0.27.0

func (c RangeQueryCheck) Meta() CheckMeta

func (RangeQueryCheck) Reporter added in v0.26.0

func (c RangeQueryCheck) Reporter() string

func (RangeQueryCheck) String added in v0.26.0

func (c RangeQueryCheck) String() string

type RateCheck

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

func NewRateCheck

func NewRateCheck(prom *promapi.FailoverGroup) RateCheck

func (RateCheck) Check

func (c RateCheck) Check(ctx context.Context, _ string, rule parser.Rule, entries []discovery.Entry) (problems []Problem)

func (RateCheck) Meta added in v0.27.0

func (c RateCheck) Meta() CheckMeta

func (RateCheck) Reporter added in v0.7.0

func (c RateCheck) Reporter() string

func (RateCheck) String

func (c RateCheck) String() string

type RegexpCheck added in v0.11.0

type RegexpCheck struct{}

func NewRegexpCheck added in v0.11.0

func NewRegexpCheck() RegexpCheck

func (RegexpCheck) Check added in v0.11.0

func (c RegexpCheck) Check(_ context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (RegexpCheck) Meta added in v0.27.0

func (c RegexpCheck) Meta() CheckMeta

func (RegexpCheck) Reporter added in v0.11.0

func (c RegexpCheck) Reporter() string

func (RegexpCheck) String added in v0.11.0

func (c RegexpCheck) String() string

type Reject

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

func NewRejectCheck

func NewRejectCheck(l, a bool, k, v *TemplatedRegexp, s Severity) Reject

func (Reject) Check

func (c Reject) Check(_ context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (Reject) Meta added in v0.27.0

func (c Reject) Meta() CheckMeta

func (Reject) Reporter added in v0.7.0

func (c Reject) Reporter() string

func (Reject) String

func (c Reject) String() string

type RuleChecker

type RuleChecker interface {
	String() string
	Reporter() string
	Meta() CheckMeta
	Check(_ context.Context, _ string, rule parser.Rule, _ []discovery.Entry) []Problem
}

type RuleDuplicateCheck added in v0.34.0

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

func NewRuleDuplicateCheck added in v0.34.0

func NewRuleDuplicateCheck(prom *promapi.FailoverGroup) RuleDuplicateCheck

func (RuleDuplicateCheck) Check added in v0.34.0

func (c RuleDuplicateCheck) Check(ctx context.Context, path string, rule parser.Rule, entries []discovery.Entry) (problems []Problem)

func (RuleDuplicateCheck) Meta added in v0.34.0

func (c RuleDuplicateCheck) Meta() CheckMeta

func (RuleDuplicateCheck) Reporter added in v0.34.0

func (c RuleDuplicateCheck) Reporter() string

func (RuleDuplicateCheck) String added in v0.34.0

func (c RuleDuplicateCheck) String() string

type RuleForCheck added in v0.41.0

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

func NewRuleForCheck added in v0.41.0

func NewRuleForCheck(key RuleForKey, minFor, maxFor time.Duration, severity Severity) RuleForCheck

func (RuleForCheck) Check added in v0.41.0

func (c RuleForCheck) Check(_ context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (RuleForCheck) Meta added in v0.41.0

func (c RuleForCheck) Meta() CheckMeta

func (RuleForCheck) Reporter added in v0.41.0

func (c RuleForCheck) Reporter() string

func (RuleForCheck) String added in v0.41.0

func (c RuleForCheck) String() string

type RuleForKey added in v0.46.0

type RuleForKey string
const (
	RuleForFor           RuleForKey = "for"
	RuleForKeepFiringFor RuleForKey = "keep_firing_for"
)

type RuleLinkCheck added in v0.27.0

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

func NewRuleLinkCheck added in v0.27.0

func NewRuleLinkCheck(re *TemplatedRegexp, uriRewrite string, timeout time.Duration, headers map[string]string, s Severity) RuleLinkCheck

func (RuleLinkCheck) Check added in v0.27.0

func (c RuleLinkCheck) Check(ctx context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (RuleLinkCheck) Meta added in v0.27.0

func (c RuleLinkCheck) Meta() CheckMeta

func (RuleLinkCheck) Reporter added in v0.27.0

func (c RuleLinkCheck) Reporter() string

func (RuleLinkCheck) String added in v0.27.0

func (c RuleLinkCheck) String() string

type SeriesCheck

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

func NewSeriesCheck

func NewSeriesCheck(prom *promapi.FailoverGroup) SeriesCheck

func (SeriesCheck) Check

func (c SeriesCheck) Check(ctx context.Context, _ string, rule parser.Rule, entries []discovery.Entry) (problems []Problem)

func (SeriesCheck) Meta added in v0.27.0

func (c SeriesCheck) Meta() CheckMeta

func (SeriesCheck) Reporter added in v0.7.0

func (c SeriesCheck) Reporter() string

func (SeriesCheck) String

func (c SeriesCheck) String() string

type SettingsKey added in v0.23.0

type SettingsKey string

type Severity

type Severity int

Severity of the problem reported

const (
	// Information doesn't count as a problem, it's a comment
	Information Severity = iota

	// Warning is not consider an error
	Warning

	// Bug is an error that should be corrected
	Bug

	// Fatal is a problem with linting content
	Fatal
)

func ParseSeverity

func ParseSeverity(s string) (Severity, error)

func (Severity) String

func (s Severity) String() string

type SyntaxCheck

type SyntaxCheck struct{}

func NewSyntaxCheck

func NewSyntaxCheck() SyntaxCheck

func (SyntaxCheck) Check

func (c SyntaxCheck) Check(_ context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (SyntaxCheck) Meta added in v0.27.0

func (c SyntaxCheck) Meta() CheckMeta

func (SyntaxCheck) Reporter added in v0.7.0

func (c SyntaxCheck) Reporter() string

func (SyntaxCheck) String

func (c SyntaxCheck) String() string

type TemplateCheck

type TemplateCheck struct{}

func NewTemplateCheck

func NewTemplateCheck() TemplateCheck

func (TemplateCheck) Check

func (c TemplateCheck) Check(ctx context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (TemplateCheck) Meta added in v0.27.0

func (c TemplateCheck) Meta() CheckMeta

func (TemplateCheck) Reporter added in v0.7.0

func (c TemplateCheck) Reporter() string

func (TemplateCheck) String

func (c TemplateCheck) String() string

type TemplateContext added in v0.14.0

type TemplateContext struct {
	Alert       string
	Record      string
	Expr        string
	For         string
	Labels      map[string]string
	Annotations map[string]string
}

func (TemplateContext) Aliases added in v0.14.0

func (tc TemplateContext) Aliases() string

type TemplatedRegexp added in v0.14.0

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

func MustTemplatedRegexp added in v0.14.0

func MustTemplatedRegexp(re string) *TemplatedRegexp

func NewTemplatedRegexp added in v0.14.0

func NewTemplatedRegexp(s string) (*TemplatedRegexp, error)

func (TemplatedRegexp) Expand added in v0.14.0

func (tr TemplatedRegexp) Expand(rule parser.Rule) (*regexp.Regexp, error)

func (TemplatedRegexp) MustExpand added in v0.14.0

func (tr TemplatedRegexp) MustExpand(rule parser.Rule) *regexp.Regexp

type VectorMatchingCheck added in v0.1.3

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

func NewVectorMatchingCheck added in v0.1.3

func NewVectorMatchingCheck(prom *promapi.FailoverGroup) VectorMatchingCheck

func (VectorMatchingCheck) Check added in v0.1.3

func (c VectorMatchingCheck) Check(ctx context.Context, _ string, rule parser.Rule, _ []discovery.Entry) (problems []Problem)

func (VectorMatchingCheck) Meta added in v0.27.0

func (c VectorMatchingCheck) Meta() CheckMeta

func (VectorMatchingCheck) Reporter added in v0.7.0

func (c VectorMatchingCheck) Reporter() string

func (VectorMatchingCheck) String added in v0.1.3

func (c VectorMatchingCheck) String() string

Jump to

Keyboard shortcuts

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