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  }