Documentation
¶
Index ¶
Constants ¶
const ( // AlertNameLabel is the label name for the alert name which called event name. AlertNameLabel = "alertname" // TenantLabel is the label name for the tenant id. TenantLabel = "tenant" // ToUserIDLabel is the label name for the user id. The alert belong to the user.It could be multiple users split by comma. ToUserIDLabel = "user" // SkipSubscribeLabel indicates if the alert is from Event Subs or skip Event Subs. SkipSubscribeLabel = "skipSub" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Fingerprint ¶
type Fingerprint uint64
func StringToFingerprint ¶
func StringToFingerprint(s string) (Fingerprint, error)
StringToFingerprint parses a string representation of a Fingerprint.
func (*Fingerprint) Parse ¶
func (f *Fingerprint) Parse(s string) error
func (Fingerprint) String ¶
func (f Fingerprint) String() string
type LabelName ¶
type LabelName string
func (LabelName) IsValid ¶
IsValid is true iff the label name matches the pattern of LabelNameRE. This method, however, does not use LabelNameRE for the check but a much faster hardcoded implementation.
func (*LabelName) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface.
type LabelSet ¶
A LabelSet is a collection of LabelName and LabelValue pairs. The LabelSet may be fully-qualified down to the point where it may resolve to a single Metric in the data store or not. All operations that occur within the realm of a LabelSet can emit a vector of Metric entities to which the LabelSet may match.
func (LabelSet) Before ¶
Before compares the metrics, using the following criteria:
If m has fewer labels than o, it is before o. If it has more, it is not.
If the number of labels is the same, the superset of all label names is sorted alphanumerically. The first differing label pair found in that order determines the outcome: If the label does not exist at all in m, then m is before o, and vice versa. Otherwise the label value is compared alphanumerically.
If m and o are equal, the method returns false.
func (LabelSet) Equal ¶
Equal returns true iff both label sets have exactly the same key/value pairs.
func (LabelSet) Fingerprint ¶
func (ls LabelSet) Fingerprint() Fingerprint
Fingerprint returns the LabelSet's fingerprint.
type MatchType ¶
type MatchType int
MatchType is an enum for label matching types.
func (MatchType) MarshalGQL ¶
func (MatchType) MarshalYAML ¶
func (*MatchType) UnmarshalGQL ¶
type Matcher ¶
type Matcher struct { Type MatchType `json:"type" yaml:"type"` Name string `json:"name" yaml:"name"` Value string `json:"value" yaml:"value"` // contains filtered or unexported fields }
func NewMatcher ¶
NewMatcher returns a matcher object.
func ParseMatcher ¶
ParseMatcher parses a matcher with a syntax inspired by PromQL and OpenMetrics. This syntax is convenient to describe filters and selectors in UIs and config files. To support the interactive nature of the use cases, the parser is in various aspects fairly tolerant.
The syntax of a matcher consists of three tokens: (1) A valid Prometheus label name. (2) One of '=', '!=', '=~', or '!~', with the same meaning as known from PromQL selectors. (3) A UTF-8 string, which may be enclosed in double quotes. Before or after each token, there may be any amount of whitespace, which will be discarded. The 3rd token may be the empty string. Within the 3rd token, OpenMetrics escaping rules apply: '\"' for a double-quote, '\n' for a line feed, '\\' for a literal backslash. Unescaped '"' must not occur inside the 3rd token (only as the 1st or last character). However, literal line feed characters are tolerated, as are single '\' characters not followed by '\', 'n', or '"'. They act as a literal backslash in that case.
func ParseMatchers ¶
ParseMatchers parses a comma-separated list of Matchers. A leading '{' and/or a trailing '}' is optional and will be trimmed before further parsing. Individual Matchers are separated by commas outside of quoted parts of the input string. Those commas may be surrounded by whitespace. Parts of the string inside unescaped double quotes ('"…"') are considered quoted (and commas don't act as separators there). If double quotes are escaped with a single backslash ('\"'), they are ignored for the purpose of identifying quoted parts of the input string. If the input string, after trimming the optional trailing '}', ends with a comma, followed by optional whitespace, this comma and whitespace will be trimmed.
Examples for valid input strings:
{foo = "bar", dings != "bums", } foo=bar,dings!=bums foo=bar, dings!=bums {quote="She said: \"Hi, ladies! That's gender-neutral…\""} statuscode=~"5.."
See ParseMatcher for details on how an individual Matcher is parsed.
func (*Matcher) UnmarshalJSON ¶
func (*Matcher) UnmarshalText ¶
type Matchers ¶
type Matchers []*Matcher
Matchers is a slice of Matchers that is sortable, implements Stringer, and provides a Matches method to match a LabelSet against all Matchers in the slice. Note that some users of Matchers might require it to be sorted.
func (Matchers) MarshalJSON ¶
MarshalJSON implements the json.Marshaler interface for Matchers.
func (Matchers) Matches ¶
Matches checks whether all matchers are fulfilled against the given label set.
func (*Matchers) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface for Matchers.