|
|
@@ -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
|