Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HashRule ¶
HashRule hashes significant Rule fields into unique hash that supposed to define Rule uniqueness
func ReadFromFS ¶
ReadFromFS parses the given path list and inits FS for each item. Once initialed, ReadFromFS will try to read and return files from each FS. ReadFromFS returns an error if at least one FS failed to init. The function can be called multiple times but each unique path will be initialed only once.
It is allowed to mix different FS types in path list.
Types ¶
type FS ¶
type FS interface {
// Init initializes FS.
Init() error
// String must return human-readable representation of FS.
String() string
// List returns the list of file names which will be read via Read fn
List() ([]string, error)
// Read returns a list of read files in form of a map
// where key is a file name and value is a content of read file.
// Read must be called only after the successful Init call.
Read(files []string) (map[string][]byte, error)
}
FS represent a file system abstract for reading files.
type Group ¶
type Group struct {
Type Type `yaml:"type,omitempty"`
File string
Name string `yaml:"name"`
Interval *promutils.Duration `yaml:"interval,omitempty"`
EvalOffset *promutils.Duration `yaml:"eval_offset,omitempty"`
// EvalDelay will adjust the `time` parameter of rule evaluation requests to compensate intentional query delay from datasource.
// see https://github.com/zzylol/VictoriaMetrics/issues/5155
EvalDelay *promutils.Duration `yaml:"eval_delay,omitempty"`
Limit int `yaml:"limit,omitempty"`
Rules []Rule `yaml:"rules"`
Concurrency int `yaml:"concurrency"`
// Labels is a set of label value pairs, that will be added to every rule.
// It has priority over the external labels.
Labels map[string]string `yaml:"labels"`
// Checksum stores the hash of yaml definition for this group.
// May be used to detect any changes like rules re-ordering etc.
Checksum string
// Optional HTTP URL parameters added to each rule request
Params url.Values `yaml:"params"`
// Headers contains optional HTTP headers added to each rule request
Headers []Header `yaml:"headers,omitempty"`
// NotifierHeaders contains optional HTTP headers sent to notifiers for generated notifications
NotifierHeaders []Header `yaml:"notifier_headers,omitempty"`
// EvalAlignment will make the timestamp of group query requests be aligned with interval
EvalAlignment *bool `yaml:"eval_alignment,omitempty"`
// Catches all undefined fields and must be empty after parsing.
XXX map[string]any `yaml:",inline"`
}
Group contains list of Rules grouped into entity with one name and evaluation interval
func Parse ¶
func Parse(pathPatterns []string, validateTplFn ValidateTplFn, validateExpressions bool) ([]Group, error)
Parse parses rule configs from given file patterns
func ParseSilent ¶
func ParseSilent(pathPatterns []string, validateTplFn ValidateTplFn, validateExpressions bool) ([]Group, error)
ParseSilent parses rule configs from given file patterns without emitting logs
func (*Group) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type Rule ¶
type Rule struct {
ID uint64
Record string `yaml:"record,omitempty"`
Alert string `yaml:"alert,omitempty"`
Expr string `yaml:"expr"`
For *promutils.Duration `yaml:"for,omitempty"`
// Alert will continue firing for this long even when the alerting expression no longer has results.
KeepFiringFor *promutils.Duration `yaml:"keep_firing_for,omitempty"`
Labels map[string]string `yaml:"labels,omitempty"`
Annotations map[string]string `yaml:"annotations,omitempty"`
Debug bool `yaml:"debug,omitempty"`
// UpdateEntriesLimit defines max number of rule's state updates stored in memory.
// Overrides `-rule.updateEntriesLimit`.
UpdateEntriesLimit *int `yaml:"update_entries_limit,omitempty"`
// Catches all undefined fields and must be empty after parsing.
XXX map[string]any `yaml:",inline"`
}
Rule describes entity that represent either recording rule or alerting rule.
func (*Rule) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type Type ¶
type Type struct {
Name string
}
Type represents data source type
func NewPrometheusType ¶
func NewPrometheusType() Type
NewPrometheusType returns prometheus datasource type
func NewRawType ¶
NewRawType returns datasource type from raw string without validation.
func (Type) MarshalYAML ¶
MarshalYAML implements the yaml.Unmarshaler interface.
func (*Type) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
func (*Type) ValidateExpr ¶
ValidateExpr validates query expression with datasource ql.
type ValidateTplFn ¶
ValidateTplFn must validate the given annotations