Parcourir la source

chore(alerting): move transformers to seperate package

bergquist il y a 9 ans
Parent
commit
77746f277d

+ 4 - 4
pkg/services/alerting/alert_rule.go

@@ -4,6 +4,7 @@ import (
 	"fmt"
 
 	"github.com/grafana/grafana/pkg/components/simplejson"
+	"github.com/grafana/grafana/pkg/services/alerting/transformers"
 
 	m "github.com/grafana/grafana/pkg/models"
 )
@@ -22,7 +23,7 @@ type AlertRule struct {
 	Query           AlertQuery
 	Transform       string
 	TransformParams simplejson.Json
-	Transformer     Transformer
+	Transformer     transformer.Transformer
 }
 
 func NewAlertRuleFromDBModel(ruleDef *m.Alert) (*AlertRule, error) {
@@ -50,9 +51,8 @@ func NewAlertRuleFromDBModel(ruleDef *m.Alert) (*AlertRule, error) {
 	model.TransformParams = *ruleDef.Expression.Get("transform")
 
 	if model.Transform == "aggregation" {
-		model.Transformer = &AggregationTransformer{
-			Method: ruleDef.Expression.Get("transform").Get("method").MustString(),
-		}
+		method := ruleDef.Expression.Get("transform").Get("method").MustString()
+		model.Transformer = transformer.NewAggregationTransformer(method)
 	}
 
 	query := ruleDef.Expression.Get("query")

+ 3 - 3
pkg/services/alerting/commands.go

@@ -5,6 +5,7 @@ import (
 
 	"github.com/grafana/grafana/pkg/bus"
 	m "github.com/grafana/grafana/pkg/models"
+	"github.com/grafana/grafana/pkg/services/alerting/transformers"
 )
 
 type UpdateDashboardAlertsCommand struct {
@@ -68,9 +69,8 @@ func ConvetAlertModelToAlertRule(ruleDef *m.Alert) (*AlertRule, error) {
 	model.TransformParams = *ruleDef.Expression.Get("transform")
 
 	if model.Transform == "aggregation" {
-		model.Transformer = &AggregationTransformer{
-			Method: ruleDef.Expression.Get("transform").Get("method").MustString(),
-		}
+		method := ruleDef.Expression.Get("transform").Get("method").MustString()
+		model.Transformer = transformer.NewAggregationTransformer(method)
 	}
 
 	query := ruleDef.Expression.Get("query")

+ 5 - 7
pkg/services/alerting/transformer.go → pkg/services/alerting/transformers/aggregation.go

@@ -1,4 +1,4 @@
-package alerting
+package transformer
 
 import (
 	"fmt"
@@ -7,8 +7,10 @@ import (
 	"github.com/grafana/grafana/pkg/tsdb"
 )
 
-type Transformer interface {
-	Transform(timeserie *tsdb.TimeSeries) (float64, error)
+func NewAggregationTransformer(method string) *AggregationTransformer {
+	return &AggregationTransformer{
+		Method: method,
+	}
 }
 
 type AggregationTransformer struct {
@@ -26,7 +28,6 @@ func (at *AggregationTransformer) Transform(timeserie *tsdb.TimeSeries) (float64
 		return sum / float64(len(timeserie.Points)), nil
 	}
 
-	//"sum": func(series *tsdb.TimeSeries) float64 {
 	if at.Method == "sum" {
 		sum := float64(0)
 
@@ -37,7 +38,6 @@ func (at *AggregationTransformer) Transform(timeserie *tsdb.TimeSeries) (float64
 		return sum, nil
 	}
 
-	//"min": func(series *tsdb.TimeSeries) float64 {
 	if at.Method == "min" {
 		min := timeserie.Points[0][0]
 
@@ -50,7 +50,6 @@ func (at *AggregationTransformer) Transform(timeserie *tsdb.TimeSeries) (float64
 		return min, nil
 	}
 
-	//"max": func(series *tsdb.TimeSeries) float64 {
 	if at.Method == "max" {
 		max := timeserie.Points[0][0]
 
@@ -63,7 +62,6 @@ func (at *AggregationTransformer) Transform(timeserie *tsdb.TimeSeries) (float64
 		return max, nil
 	}
 
-	//"mean": func(series *tsdb.TimeSeries) float64 {
 	if at.Method == "mean" {
 		midPosition := int64(math.Floor(float64(len(timeserie.Points)) / float64(2)))
 		return timeserie.Points[midPosition][0], nil

+ 7 - 0
pkg/services/alerting/transformers/transformer.go

@@ -0,0 +1,7 @@
+package transformer
+
+import "github.com/grafana/grafana/pkg/tsdb"
+
+type Transformer interface {
+	Transform(timeserie *tsdb.TimeSeries) (float64, error)
+}