Documentation
¶
Index ¶
- type AdvisorNotifier
- type MetaCache
- type MetaCacheCheckpoint
- type MetaCacheImp
- func (mc *MetaCacheImp) AddContainer(podUID string, containerName string, containerInfo *types.ContainerInfo) error
- func (mc *MetaCacheImp) ClearContainers() error
- func (mc *MetaCacheImp) DeleteContainer(podUID string, containerName string) error
- func (mc *MetaCacheImp) DeletePool(poolName string) error
- func (mc *MetaCacheImp) GCPoolEntries(livingPoolNameSet sets.String) error
- func (mc *MetaCacheImp) GetContainerEntries(podUID string) (types.ContainerEntries, bool)
- func (mc *MetaCacheImp) GetContainerInfo(podUID string, containerName string) (*types.ContainerInfo, bool)
- func (mc *MetaCacheImp) GetFilteredInferenceResult(filterFunc func(result interface{}) (interface{}, error), modelName string) (interface{}, error)
- func (mc *MetaCacheImp) GetInferenceResult(modelName string) (interface{}, error)
- func (mc *MetaCacheImp) GetPoolInfo(poolName string) (*types.PoolInfo, bool)
- func (mc *MetaCacheImp) GetPoolSize(poolName string) (int, bool)
- func (mc *MetaCacheImp) GetRegionInfo(regionName string) (*types.RegionInfo, bool)
- func (mc *MetaCacheImp) RangeAndDeleteContainer(f func(containerInfo *types.ContainerInfo) bool, safeTime int64) error
- func (mc *MetaCacheImp) RangeAndUpdateContainer(...) error
- func (mc *MetaCacheImp) RangeContainer(...)
- func (mc *MetaCacheImp) RangeRegionInfo(f func(regionName string, regionInfo *types.RegionInfo) bool)
- func (mc *MetaCacheImp) RemovePod(podUID string) error
- func (mc *MetaCacheImp) SetContainerInfo(podUID string, containerName string, containerInfo *types.ContainerInfo) error
- func (mc *MetaCacheImp) SetInferenceResult(modelName string, result interface{}) error
- func (mc *MetaCacheImp) SetPoolInfo(poolName string, poolInfo *types.PoolInfo) error
- func (mc *MetaCacheImp) SetRegionEntries(entries types.RegionEntries) error
- func (mc *MetaCacheImp) SetRegionInfo(regionName string, regionInfo *types.RegionInfo) error
- type MetaReader
- type MetaWriter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AdvisorNotifier ¶ added in v0.3.0
type AdvisorNotifier struct{}
type MetaCache ¶
type MetaCache interface {
MetaReader
MetaWriter
}
type MetaCacheCheckpoint ¶
type MetaCacheCheckpoint struct {
PodEntries types.PodEntries `json:"pod_entries"`
PoolEntries types.PoolEntries `json:"pool_entries"`
RegionEntries types.RegionEntries `json:"region_entries"`
Checksum checksum.Checksum `json:"checksum"`
}
func NewMetaCacheCheckpoint ¶
func NewMetaCacheCheckpoint() *MetaCacheCheckpoint
func (*MetaCacheCheckpoint) MarshalCheckpoint ¶
func (cp *MetaCacheCheckpoint) MarshalCheckpoint() ([]byte, error)
MarshalCheckpoint returns marshaled checkpoint
func (*MetaCacheCheckpoint) UnmarshalCheckpoint ¶
func (cp *MetaCacheCheckpoint) UnmarshalCheckpoint(blob []byte) error
UnmarshalCheckpoint tries to unmarshal passed bytes to checkpoint
func (*MetaCacheCheckpoint) VerifyChecksum ¶
func (cp *MetaCacheCheckpoint) VerifyChecksum() error
VerifyChecksum verifies that current checksum of checkpoint is valid
type MetaCacheImp ¶ added in v0.2.0
type MetaCacheImp struct {
metrictypes.MetricsReader
// Lock for the entire MetaCache. Useful when you want to make multiple writes atomically.
sync.Mutex
// contains filtered or unexported fields
}
MetaCacheImp stores metadata and info of pod, node, pool, subnuma etc. as a cache, and synchronizes data to sysadvisor state file. It is thread-safe to read and write. Deep copy logic is performed during accessing metacache entries instead of directly return pointer of each struct to avoid mis-overwrite.
func NewDummyMetaCacheImp ¶ added in v0.5.12
func NewDummyMetaCacheImp() *MetaCacheImp
func NewMetaCacheImp ¶ added in v0.2.0
func NewMetaCacheImp(conf *config.Configuration, emitterPool metricspool.MetricsEmitterPool, metricsReader metrictypes.MetricsReader) (*MetaCacheImp, error)
NewMetaCacheImp returns the single instance of MetaCacheImp
func (*MetaCacheImp) AddContainer ¶ added in v0.2.0
func (mc *MetaCacheImp) AddContainer(podUID string, containerName string, containerInfo *types.ContainerInfo) error
func (*MetaCacheImp) ClearContainers ¶ added in v0.4.0
func (mc *MetaCacheImp) ClearContainers() error
func (*MetaCacheImp) DeleteContainer ¶ added in v0.2.0
func (mc *MetaCacheImp) DeleteContainer(podUID string, containerName string) error
func (*MetaCacheImp) DeletePool ¶ added in v0.2.0
func (mc *MetaCacheImp) DeletePool(poolName string) error
func (*MetaCacheImp) GCPoolEntries ¶ added in v0.2.0
func (mc *MetaCacheImp) GCPoolEntries(livingPoolNameSet sets.String) error
func (*MetaCacheImp) GetContainerEntries ¶ added in v0.2.0
func (mc *MetaCacheImp) GetContainerEntries(podUID string) (types.ContainerEntries, bool)
func (*MetaCacheImp) GetContainerInfo ¶ added in v0.2.0
func (mc *MetaCacheImp) GetContainerInfo(podUID string, containerName string) (*types.ContainerInfo, bool)
func (*MetaCacheImp) GetFilteredInferenceResult ¶ added in v0.4.0
func (mc *MetaCacheImp) GetFilteredInferenceResult(filterFunc func(result interface{}) (interface{}, error), modelName string, ) (interface{}, error)
GetFilteredInferenceResult gets specified model inference result with filter function whether it returns a deep copied result depends on the implementation of filterFunc
func (*MetaCacheImp) GetInferenceResult ¶ added in v0.4.0
func (mc *MetaCacheImp) GetInferenceResult(modelName string) (interface{}, error)
GetInferenceResult gets specified model inference result notice it doesn't return a deep copied result
func (*MetaCacheImp) GetPoolInfo ¶ added in v0.2.0
func (mc *MetaCacheImp) GetPoolInfo(poolName string) (*types.PoolInfo, bool)
func (*MetaCacheImp) GetPoolSize ¶ added in v0.2.0
func (mc *MetaCacheImp) GetPoolSize(poolName string) (int, bool)
func (*MetaCacheImp) GetRegionInfo ¶ added in v0.2.0
func (mc *MetaCacheImp) GetRegionInfo(regionName string) (*types.RegionInfo, bool)
func (*MetaCacheImp) RangeAndDeleteContainer ¶ added in v0.2.0
func (mc *MetaCacheImp) RangeAndDeleteContainer(f func(containerInfo *types.ContainerInfo) bool, safeTime int64) error
func (*MetaCacheImp) RangeAndUpdateContainer ¶ added in v0.2.0
func (mc *MetaCacheImp) RangeAndUpdateContainer(f func(podUID string, containerName string, containerInfo *types.ContainerInfo) bool) error
func (*MetaCacheImp) RangeContainer ¶ added in v0.2.0
func (mc *MetaCacheImp) RangeContainer(f func(podUID string, containerName string, containerInfo *types.ContainerInfo) bool)
RangeContainer should deepcopy so that pod and container entries will not be overwritten.
func (*MetaCacheImp) RangeRegionInfo ¶ added in v0.2.0
func (mc *MetaCacheImp) RangeRegionInfo(f func(regionName string, regionInfo *types.RegionInfo) bool)
func (*MetaCacheImp) RemovePod ¶ added in v0.2.0
func (mc *MetaCacheImp) RemovePod(podUID string) error
func (*MetaCacheImp) SetContainerInfo ¶ added in v0.2.0
func (mc *MetaCacheImp) SetContainerInfo(podUID string, containerName string, containerInfo *types.ContainerInfo) error
func (*MetaCacheImp) SetInferenceResult ¶ added in v0.4.0
func (mc *MetaCacheImp) SetInferenceResult(modelName string, result interface{}) error
SetInferenceResult sets specified model inference result
func (*MetaCacheImp) SetPoolInfo ¶ added in v0.2.0
func (mc *MetaCacheImp) SetPoolInfo(poolName string, poolInfo *types.PoolInfo) error
func (*MetaCacheImp) SetRegionEntries ¶ added in v0.2.0
func (mc *MetaCacheImp) SetRegionEntries(entries types.RegionEntries) error
func (*MetaCacheImp) SetRegionInfo ¶ added in v0.2.0
func (mc *MetaCacheImp) SetRegionInfo(regionName string, regionInfo *types.RegionInfo) error
type MetaReader ¶ added in v0.2.0
type MetaReader interface {
// GetContainerEntries returns a ContainerEntry copy keyed by pod uid
GetContainerEntries(podUID string) (types.ContainerEntries, bool)
// GetContainerInfo returns a ContainerInfo copy keyed by pod uid and container name
GetContainerInfo(podUID string, containerName string) (*types.ContainerInfo, bool)
// RangeContainer applies a function to every podUID, containerName, containerInfo set
RangeContainer(f func(podUID string, containerName string, containerInfo *types.ContainerInfo) bool)
// GetPoolInfo returns a PoolInfo copy by pool name
GetPoolInfo(poolName string) (*types.PoolInfo, bool)
// GetPoolSize returns the size of pool as integer
GetPoolSize(poolName string) (int, bool)
// GetRegionInfo returns a RegionInfo copy by region name
GetRegionInfo(regionName string) (*types.RegionInfo, bool)
// RangeRegionInfo applies a function to every regionName, regionInfo set.
// If f returns false, range stops the iteration.
RangeRegionInfo(f func(regionName string, regionInfo *types.RegionInfo) bool)
// GetFilteredInferenceResult gets specified model inference result with filter function
GetFilteredInferenceResult(filterFunc func(result interface{}) (interface{}, error), modelName string) (interface{}, error)
// GetInferenceResult gets specified model inference result
GetInferenceResult(modelName string) (interface{}, error)
metrictypes.MetricsReader
}
MetaReader provides a standard interface to refer to metadata type
type MetaWriter ¶ added in v0.4.0
type MetaWriter interface {
// AddContainer adds a container keyed by pod uid and container name. For repeatedly added
// container, only mutable metadata will be updated, i.e. request quantity changed by vpa
AddContainer(podUID string, containerName string, containerInfo *types.ContainerInfo) error
// SetContainerInfo updates ContainerInfo keyed by pod uid and container name
SetContainerInfo(podUID string, containerName string, containerInfo *types.ContainerInfo) error
// RangeAndUpdateContainer applies a function to every podUID, containerName, containerInfo set.
// Not recommended using if RangeContainer satisfies the requirement.
// If f returns false, range stops the iteration.
RangeAndUpdateContainer(f func(podUID string, containerName string, containerInfo *types.ContainerInfo) bool) error
// DeleteContainer deletes a ContainerInfo keyed by pod uid and container name
DeleteContainer(podUID string, containerName string) error
// RangeAndDeleteContainer applies a function to every podUID, containerName, containerInfo set.
// If f returns true, the containerInfo will be deleted.
RangeAndDeleteContainer(f func(containerInfo *types.ContainerInfo) bool, safeTime int64) error
// RemovePod deletes a PodInfo keyed by pod uid. Repeatedly remove will be ignored.
RemovePod(podUID string) error
// ClearContainers remove all containers
ClearContainers() error
// SetPoolInfo stores a PoolInfo by pool name
SetPoolInfo(poolName string, poolInfo *types.PoolInfo) error
// DeletePool deletes a PoolInfo keyed by pool name
DeletePool(poolName string) error
// GCPoolEntries deletes GCPoolEntries not existing on node
GCPoolEntries(livingPoolNameSet sets.String) error
// SetRegionEntries overwrites the whole region entries
SetRegionEntries(entries types.RegionEntries) error
// SetRegionInfo stores a RegionInfo by region name
SetRegionInfo(regionName string, regionInfo *types.RegionInfo) error
// SetInferenceResult sets specified model inference result
SetInferenceResult(modelName string, result interface{}) error
sync.Locker
}
MetaWriter provides a standard interface to modify raw metadata (generated by other agents) in local cache