Skip to content

Commit 77746f2

Browse files
committed
chore(alerting): move transformers to seperate package
1 parent 66c2594 commit 77746f2

File tree

4 files changed

+19
-14
lines changed

4 files changed

+19
-14
lines changed

pkg/services/alerting/alert_rule.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55

66
"github.com/grafana/grafana/pkg/components/simplejson"
7+
"github.com/grafana/grafana/pkg/services/alerting/transformers"
78

89
m "github.com/grafana/grafana/pkg/models"
910
)
@@ -22,7 +23,7 @@ type AlertRule struct {
2223
Query AlertQuery
2324
Transform string
2425
TransformParams simplejson.Json
25-
Transformer Transformer
26+
Transformer transformer.Transformer
2627
}
2728

2829
func NewAlertRuleFromDBModel(ruleDef *m.Alert) (*AlertRule, error) {
@@ -50,9 +51,8 @@ func NewAlertRuleFromDBModel(ruleDef *m.Alert) (*AlertRule, error) {
5051
model.TransformParams = *ruleDef.Expression.Get("transform")
5152

5253
if model.Transform == "aggregation" {
53-
model.Transformer = &AggregationTransformer{
54-
Method: ruleDef.Expression.Get("transform").Get("method").MustString(),
55-
}
54+
method := ruleDef.Expression.Get("transform").Get("method").MustString()
55+
model.Transformer = transformer.NewAggregationTransformer(method)
5656
}
5757

5858
query := ruleDef.Expression.Get("query")

pkg/services/alerting/commands.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55

66
"github.com/grafana/grafana/pkg/bus"
77
m "github.com/grafana/grafana/pkg/models"
8+
"github.com/grafana/grafana/pkg/services/alerting/transformers"
89
)
910

1011
type UpdateDashboardAlertsCommand struct {
@@ -68,9 +69,8 @@ func ConvetAlertModelToAlertRule(ruleDef *m.Alert) (*AlertRule, error) {
6869
model.TransformParams = *ruleDef.Expression.Get("transform")
6970

7071
if model.Transform == "aggregation" {
71-
model.Transformer = &AggregationTransformer{
72-
Method: ruleDef.Expression.Get("transform").Get("method").MustString(),
73-
}
72+
method := ruleDef.Expression.Get("transform").Get("method").MustString()
73+
model.Transformer = transformer.NewAggregationTransformer(method)
7474
}
7575

7676
query := ruleDef.Expression.Get("query")

pkg/services/alerting/transformer.go renamed to pkg/services/alerting/transformers/aggregation.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package alerting
1+
package transformer
22

33
import (
44
"fmt"
@@ -7,8 +7,10 @@ import (
77
"github.com/grafana/grafana/pkg/tsdb"
88
)
99

10-
type Transformer interface {
11-
Transform(timeserie *tsdb.TimeSeries) (float64, error)
10+
func NewAggregationTransformer(method string) *AggregationTransformer {
11+
return &AggregationTransformer{
12+
Method: method,
13+
}
1214
}
1315

1416
type AggregationTransformer struct {
@@ -26,7 +28,6 @@ func (at *AggregationTransformer) Transform(timeserie *tsdb.TimeSeries) (float64
2628
return sum / float64(len(timeserie.Points)), nil
2729
}
2830

29-
//"sum": func(series *tsdb.TimeSeries) float64 {
3031
if at.Method == "sum" {
3132
sum := float64(0)
3233

@@ -37,7 +38,6 @@ func (at *AggregationTransformer) Transform(timeserie *tsdb.TimeSeries) (float64
3738
return sum, nil
3839
}
3940

40-
//"min": func(series *tsdb.TimeSeries) float64 {
4141
if at.Method == "min" {
4242
min := timeserie.Points[0][0]
4343

@@ -50,7 +50,6 @@ func (at *AggregationTransformer) Transform(timeserie *tsdb.TimeSeries) (float64
5050
return min, nil
5151
}
5252

53-
//"max": func(series *tsdb.TimeSeries) float64 {
5453
if at.Method == "max" {
5554
max := timeserie.Points[0][0]
5655

@@ -63,7 +62,6 @@ func (at *AggregationTransformer) Transform(timeserie *tsdb.TimeSeries) (float64
6362
return max, nil
6463
}
6564

66-
//"mean": func(series *tsdb.TimeSeries) float64 {
6765
if at.Method == "mean" {
6866
midPosition := int64(math.Floor(float64(len(timeserie.Points)) / float64(2)))
6967
return timeserie.Points[midPosition][0], nil
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package transformer
2+
3+
import "github.com/grafana/grafana/pkg/tsdb"
4+
5+
type Transformer interface {
6+
Transform(timeserie *tsdb.TimeSeries) (float64, error)
7+
}

0 commit comments

Comments
 (0)