alerting: fix $timeFilter cannot be used twice (#7969) (#8037)

This commit is contained in:
Alexander Zobnin 2017-04-05 19:17:55 +04:00 committed by Torkel Ödegaard
parent 308d46e4ef
commit 2b81bfe9bf

View File

@ -34,13 +34,18 @@ func (query *Query) Build(queryContext *tsdb.QueryContext) (string, error) {
return "", err
}
res = strings.Replace(res, "$timeFilter", query.renderTimeFilter(queryContext), 1)
res = strings.Replace(res, "$interval", interval.Text, 1)
res = strings.Replace(res, "$__interval_ms", strconv.FormatInt(interval.Value.Nanoseconds()/int64(time.Millisecond), 10), 1)
res = strings.Replace(res, "$__interval", interval.Text, 1)
res = replaceVariable(res, "$timeFilter", query.renderTimeFilter(queryContext))
res = replaceVariable(res, "$interval", interval.Text)
res = replaceVariable(res, "$__interval_ms", strconv.FormatInt(interval.Value.Nanoseconds()/int64(time.Millisecond), 10))
res = replaceVariable(res, "$__interval", interval.Text)
return res, nil
}
func replaceVariable(str string, variable string, value string) string {
count := strings.Count(str, variable)
return strings.Replace(str, variable, value, count)
}
func getDefinedInterval(query *Query, queryContext *tsdb.QueryContext) (*tsdb.Interval, error) {
defaultInterval := tsdb.CalculateInterval(queryContext.TimeRange)