github.com/gocrane/crane@v0.11.0/pkg/recommendation/recommender/base/recommend.go (about) 1 package base 2 3 import ( 4 "github.com/montanaflynn/stats" 5 6 "github.com/gocrane/crane/pkg/common" 7 "github.com/gocrane/crane/pkg/recommendation/framework" 8 ) 9 10 func (br *BaseRecommender) PreRecommend(ctx *framework.RecommendationContext) error { 11 return nil 12 } 13 14 func (br *BaseRecommender) Recommend(ctx *framework.RecommendationContext) error { 15 return nil 16 } 17 18 // Policy add some logic for result of recommend phase. 19 func (br *BaseRecommender) Policy(ctx *framework.RecommendationContext) error { 20 return nil 21 } 22 23 func (br *BaseRecommender) GetPercentile(percentile float64, ts []*common.TimeSeries) (float64, error) { 24 var values stats.Float64Data 25 for _, ss := range ts[0].Samples { 26 values = append(values, ss.Value) 27 } 28 return stats.Percentile(values, percentile) 29 }