Documentation
¶
Index ¶
- type ResourceAdvisor
- type ResourceAdvisorStub
- func (r *ResourceAdvisorStub) GetHeadroom(resourceName v1.ResourceName) (resource.Quantity, error)
- func (r *ResourceAdvisorStub) GetSubAdvisor(resourceName types.QoSResourceName) (SubResourceAdvisor, error)
- func (r *ResourceAdvisorStub) SetHeadroom(resourceName v1.ResourceName, quantity resource.Quantity)
- func (r *ResourceAdvisorStub) Update()
- type SubResourceAdvisor
- type SubResourceAdvisorStub
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ResourceAdvisor ¶
type ResourceAdvisor interface {
// Update triggers update functions of all sub resource advisors
Update()
// GetSubAdvisor returns the corresponding sub advisor according to resource name
GetSubAdvisor(resourceName types.QoSResourceName) (SubResourceAdvisor, error)
// GetHeadroom returns the corresponding headroom quantity according to resource name
GetHeadroom(resourceName v1.ResourceName) (resource.Quantity, error)
}
ResourceAdvisor is a wrapper of different sub resource advisors. It can be registered to headroom reporter to give designated resource headroom quantity based on provision result.
func NewResourceAdvisor ¶
func NewResourceAdvisor(conf *config.Configuration, metaCache *metacache.MetaCache, metaServer *metaserver.MetaServer, emitter metrics.MetricEmitter) (ResourceAdvisor, error)
NewResourceAdvisor returns a resource advisor wrapper instance, initializing all required sub resource advisor according to config
type ResourceAdvisorStub ¶
func NewResourceAdvisorStub ¶
func NewResourceAdvisorStub() *ResourceAdvisorStub
func (*ResourceAdvisorStub) GetHeadroom ¶
func (r *ResourceAdvisorStub) GetHeadroom(resourceName v1.ResourceName) (resource.Quantity, error)
func (*ResourceAdvisorStub) GetSubAdvisor ¶
func (r *ResourceAdvisorStub) GetSubAdvisor(resourceName types.QoSResourceName) (SubResourceAdvisor, error)
func (*ResourceAdvisorStub) SetHeadroom ¶
func (r *ResourceAdvisorStub) SetHeadroom(resourceName v1.ResourceName, quantity resource.Quantity)
func (*ResourceAdvisorStub) Update ¶
func (r *ResourceAdvisorStub) Update()
type SubResourceAdvisor ¶
type SubResourceAdvisor interface {
// Name returns advisor name
Name() string
// Update updates resource provision based on the latest system and workload snapshot(s)
Update()
// GetChannel returns a channel to which the updated provision result will be sent
GetChannel() interface{}
// GetHeadroom returns the latest resource headroom quantity for resource reporter
GetHeadroom() (resource.Quantity, error)
}
SubResourceAdvisor updates resource provision of a certain dimension based on the latest system and workload snapshot(s), and returns provision advice or resource headroom quantity. It should push updated results to the corresponding qrm server.
func NewSubResourceAdvisor ¶
func NewSubResourceAdvisor(resourceName types.QoSResourceName, conf *config.Configuration, metaCache *metacache.MetaCache, metaServer *metaserver.MetaServer, emitter metrics.MetricEmitter) (SubResourceAdvisor, error)
NewSubResourceAdvisor returns a corresponding advisor according to resource name
type SubResourceAdvisorStub ¶
type SubResourceAdvisorStub struct {
// contains filtered or unexported fields
}
func NewSubResourceAdvisorStub ¶
func NewSubResourceAdvisorStub() *SubResourceAdvisorStub
func (*SubResourceAdvisorStub) GetChannel ¶
func (s *SubResourceAdvisorStub) GetChannel() interface{}
func (*SubResourceAdvisorStub) GetHeadroom ¶
func (s *SubResourceAdvisorStub) GetHeadroom() (resource.Quantity, error)
func (*SubResourceAdvisorStub) Name ¶
func (s *SubResourceAdvisorStub) Name() string
func (*SubResourceAdvisorStub) SetHeadroom ¶
func (s *SubResourceAdvisorStub) SetHeadroom(quantity resource.Quantity)
func (*SubResourceAdvisorStub) Update ¶
func (s *SubResourceAdvisorStub) Update()