瀏覽代碼

Fixed intervalFormat for Graphite Alerting

utkarshcmu 9 年之前
父節點
當前提交
1e8beb8983
共有 1 個文件被更改,包括 17 次插入2 次删除
  1. 17 2
      pkg/tsdb/graphite/graphite.go

+ 17 - 2
pkg/tsdb/graphite/graphite.go

@@ -11,6 +11,7 @@ import (
 	"path"
 	"strings"
 	"time"
+	"regexp"
 
 	"golang.org/x/net/context/ctxhttp"
 
@@ -58,9 +59,9 @@ func (e *GraphiteExecutor) Execute(ctx context.Context, queries tsdb.QuerySlice,
 
 	for _, query := range queries {
 		if fullTarget, err := query.Model.Get("targetFull").String(); err == nil {
-			formData["target"] = []string{fullTarget}
+			formData["target"] = []string{fixIntervalFormat(fullTarget)}
 		} else {
-			formData["target"] = []string{query.Model.Get("target").MustString()}
+			formData["target"] = []string{fixIntervalFormat(query.Model.Get("target").MustString())}
 		}
 	}
 
@@ -150,3 +151,17 @@ func formatTimeRange(input string) string {
 	}
 	return strings.Replace(strings.Replace(input, "m", "min", -1), "M", "mon", -1)
 }
+
+func fixIntervalFormat(target string) string {
+	rMinute := regexp.MustCompile("'(\\d+)m'")
+	rMin := regexp.MustCompile("m")
+	target = rMinute.ReplaceAllStringFunc(target, func(m string) string {
+		return rMin.ReplaceAllString(m, "min")
+	})
+	rMonth := regexp.MustCompile("'(\\d+)M'")
+	rMon := regexp.MustCompile("M")
+	target = rMonth.ReplaceAllStringFunc(target, func(M string) string {
+		return rMon.ReplaceAllString(M, "mon")
+	})
+	return target
+}