Documentation ¶
Index ¶
- func Float642Str(a float64) string
- func Int642Str(a int64) string
- func MergeTimeSeriesList(tsList []*common.TimeSeries) *common.TimeSeries
- func PathExists(path string) (bool, error)
- func ServerlessWorkloadsResourceTotal(...) v1.ResourceList
- type Comparator
- func (c *Comparator) ContainerDataCheckpoint() error
- func (c *Comparator) ContainerTsDataInit() error
- func (c *Comparator) DoAnalysis()
- func (c *Comparator) GetAllNodesSpec() map[string]spec.CloudNodeSpec
- func (c *Comparator) GetAllPodsSpec() map[string]spec.CloudPodSpec
- func (c *Comparator) GetAllWorkloadRecommendedData() map[string]map[types.NamespacedName]*spec.WorkloadRecommendedData
- func (c *Comparator) GetAllWorkloads() []*unstructured.Unstructured
- func (c *Comparator) GetWorkloadContainerData() map[string]map[types.NamespacedName]map[string]*RawContainerTimeSeriesData
- func (c *Comparator) Init()
- func (c *Comparator) LoadContainerTimeSeriesDataFromCheckpoint() (map[string]map[types.NamespacedName]map[string]*RawContainerTimeSeriesData, ...)
- func (c *Comparator) LoadWorkloadTimeSeriesDataFromCheckpoint() (map[string]map[types.NamespacedName]*RawWorkloadTimeSeriesData, error)
- func (c *Comparator) ReportOriginalCostSummary(costerCtx *coster.CosterContext)
- func (c *Comparator) ReportOriginalResourceSummary()
- func (c *Comparator) ReportOriginalWorkloadsResourceDistribution(costerCtx *coster.CosterContext)
- func (c *Comparator) ReportRawServerlessCostSummary(costerCtx *coster.CosterContext)
- func (c *Comparator) ReportRecommendedCostSummary(costerCtx *coster.CosterContext)
- func (c *Comparator) ReportRecommendedResourceSummary(costerCtx *coster.CosterContext)
- func (c *Comparator) ReportRecommendedWorkloadsResourceDistribution(costerCtx *coster.CosterContext)
- func (c *Comparator) WorkloadTsDataInit() error
- type RawContainerTimeSeriesData
- type RawWorkloadTimeSeriesData
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Float642Str ¶
func MergeTimeSeriesList ¶
func MergeTimeSeriesList(tsList []*common.TimeSeries) *common.TimeSeries
func PathExists ¶
func ServerlessWorkloadsResourceTotal ¶
func ServerlessWorkloadsResourceTotal(workloadsRecs map[string]map[types.NamespacedName]*spec.WorkloadRecommendedData) v1.ResourceList
Types ¶
type Comparator ¶
type Comparator struct {
// contains filtered or unexported fields
}
Now do once task analysis, mapped Data in, then reduced Data out
func NewComparator ¶
func NewComparator(config config.Config, kubeDynamicClient dynamic.Interface, kubeDiscoveryClient discovery.DiscoveryInterface, restMapper meta.RESTMapper, fetcher targetutil.TargetInfoFetcher, clusterCache cache.Cache, baselineCloud cloud.Cloud, dataSource datasource.Interface) *Comparator
func (*Comparator) ContainerDataCheckpoint ¶
func (c *Comparator) ContainerDataCheckpoint() error
func (*Comparator) ContainerTsDataInit ¶
func (c *Comparator) ContainerTsDataInit() error
func (*Comparator) DoAnalysis ¶
func (c *Comparator) DoAnalysis()
Now it will fetch full data to do once analysis, so it is a time consuming offline computing task, also it will consuming memory because it will do time series analysis. todo: refactor to online service model when used for online deploy, split the services to online service & offline computing job. ??? offline computing jobs like spark by operator way VS. online service by deployment way
func (*Comparator) GetAllNodesSpec ¶
func (c *Comparator) GetAllNodesSpec() map[string]spec.CloudNodeSpec
func (*Comparator) GetAllPodsSpec ¶
func (c *Comparator) GetAllPodsSpec() map[string]spec.CloudPodSpec
func (*Comparator) GetAllWorkloadRecommendedData ¶
func (c *Comparator) GetAllWorkloadRecommendedData() map[string]map[types.NamespacedName]*spec.WorkloadRecommendedData
NOTE: memory & time consuming, now it is a tool for offline analytics todo: For online predicting service, we should use a model updating way not the offline once task way
func (*Comparator) GetAllWorkloads ¶
func (c *Comparator) GetAllWorkloads() []*unstructured.Unstructured
func (*Comparator) GetWorkloadContainerData ¶
func (c *Comparator) GetWorkloadContainerData() map[string]map[types.NamespacedName]map[string]*RawContainerTimeSeriesData
func (*Comparator) Init ¶
func (c *Comparator) Init()
Init initialize some cached data and time series data, Must call before DoAnalysis
func (*Comparator) LoadContainerTimeSeriesDataFromCheckpoint ¶
func (c *Comparator) LoadContainerTimeSeriesDataFromCheckpoint() (map[string]map[types.NamespacedName]map[string]*RawContainerTimeSeriesData, error)
func (*Comparator) LoadWorkloadTimeSeriesDataFromCheckpoint ¶
func (c *Comparator) LoadWorkloadTimeSeriesDataFromCheckpoint() (map[string]map[types.NamespacedName]*RawWorkloadTimeSeriesData, error)
func (*Comparator) ReportOriginalCostSummary ¶
func (c *Comparator) ReportOriginalCostSummary(costerCtx *coster.CosterContext)
func (*Comparator) ReportOriginalResourceSummary ¶
func (c *Comparator) ReportOriginalResourceSummary()
func (*Comparator) ReportOriginalWorkloadsResourceDistribution ¶
func (c *Comparator) ReportOriginalWorkloadsResourceDistribution(costerCtx *coster.CosterContext)
func (*Comparator) ReportRawServerlessCostSummary ¶
func (c *Comparator) ReportRawServerlessCostSummary(costerCtx *coster.CosterContext)
func (*Comparator) ReportRecommendedCostSummary ¶
func (c *Comparator) ReportRecommendedCostSummary(costerCtx *coster.CosterContext)
func (*Comparator) ReportRecommendedResourceSummary ¶
func (c *Comparator) ReportRecommendedResourceSummary(costerCtx *coster.CosterContext)
func (*Comparator) ReportRecommendedWorkloadsResourceDistribution ¶
func (c *Comparator) ReportRecommendedWorkloadsResourceDistribution(costerCtx *coster.CosterContext)
func (*Comparator) WorkloadTsDataInit ¶
func (c *Comparator) WorkloadTsDataInit() error
type RawContainerTimeSeriesData ¶
type RawContainerTimeSeriesData struct { Cpu []*common.TimeSeries Mem []*common.TimeSeries CpuRequests []*common.TimeSeries MemRequests []*common.TimeSeries CpuLimits []*common.TimeSeries MemLimits []*common.TimeSeries }
type RawWorkloadTimeSeriesData ¶
type RawWorkloadTimeSeriesData struct { Cpu []*common.TimeSeries Mem []*common.TimeSeries CpuRequests []*common.TimeSeries MemRequests []*common.TimeSeries CpuLimits []*common.TimeSeries MemLimits []*common.TimeSeries Replicas []*common.TimeSeries }