utkarshcmu 9 лет назад
Родитель
Сommit
35f93f4117
1 измененных файлов с 31 добавлено и 8 удалено
  1. 31 8
      pkg/tsdb/opentsdb/opentsdb.go

+ 31 - 8
pkg/tsdb/opentsdb/opentsdb.go

@@ -63,14 +63,15 @@ func (e *OpenTsdbExecutor) Execute(ctx context.Context, queries tsdb.QuerySlice,
   for i := 0; i < len(queries); i++ {
 
 		metric := make(map[string]interface{})
-		
+
+		// Setting metric and aggregator		
 		metric["metric"] = queries[i].Model.Get("metric").MustString()
 		metric["aggregator"] = queries[i].Model.Get("aggregator").MustString()
 
+		// Setting downsampling options
 		disableDownsampling := queries[i].Model.Get("disableDownsampling").MustBool()
-
 		if !disableDownsampling {
-			downsampleInterval := queries[i].Model.Get("downsampleInterval").MustString()			
+			downsampleInterval := queries[i].Model.Get("downsampleInterval").MustString()
 			if downsampleInterval == "" {
 				downsampleInterval = "1m"  //default value for blank
 			}
@@ -80,6 +81,28 @@ func (e *OpenTsdbExecutor) Execute(ctx context.Context, queries tsdb.QuerySlice,
 			}
 		}
 
+		// Setting rate options
+		if queries[i].Model.Get("shouldComputeRate").MustBool() {
+			metric["rate"] = true
+			rateOptions := make(map[string]interface{})
+			rateOptions["counter"] = queries[i].Model.Get("isCounter").MustBool()
+			counterMax, counterMaxCheck := queries[i].Model.CheckGet("counterMax")
+			if counterMaxCheck {
+				counterMaxVal, err := strconv.ParseFloat(counterMax.MustString(),64)
+				if err == nil {
+					rateOptions["counterMax"] = counterMaxVal
+				}
+			}
+			resetValue, resetValueCheck := queries[i].Model.CheckGet("counterResetValue")
+			if resetValueCheck {
+				resetValueVal, err := strconv.ParseFloat(resetValue.MustString(),64)
+				if err == nil {
+					rateOptions["resetValue"] = resetValueVal
+				}
+			}
+			metric["rateOptions"] = rateOptions
+		}
+
 		tsdbQuery.Queries[i] = metric
 	}
 
@@ -126,11 +149,11 @@ func (e *OpenTsdbExecutor) createRequest(data OpenTsdbQuery) (*http.Request, err
 	}
 
 	
-	  requestDump, err := httputil.DumpRequest(req, true)
-	  if err != nil {
-	    fmt.Println(err)
-	  }
-	  fmt.Println(string(requestDump))
+	requestDump, err := httputil.DumpRequest(req, true)
+	if err != nil {
+	  fmt.Println(err)
+	}
+	fmt.Println(string(requestDump))
 	
 	return req, err
 }