in tester/constraint.go [105:139]
func ParseConstraint(s string, parsers ...MetricParser) (*Constraint, error) {
if !constraintRegexp.MatchString(s) {
return nil, ErrInvalidFormat
}
match := constraintRegexp.FindStringSubmatchMap(s)
aggregator, err := ParseAggregator(match["aggregator"])
if err != nil {
return nil, err
}
metric, err := parseMetric(match["metric"], parsers...)
if err != nil {
return nil, err
}
comparator, err := ParseComparator(match["comparator"])
if err != nil {
return nil, err
}
threshold, err := strconv.ParseFloat(match["threshold"], 64)
if err != nil {
//nolint:wrapcheck
return nil, err
}
return &Constraint{
Metric: metric,
Aggregator: aggregator,
Comparator: comparator,
Threshold: threshold,
}, nil
}