Documentation
¶
Overview ¶
Provides Filesystem Stats
Index ¶
- Constants
- Variables
- func RegisterPlugin(name string, plugin FsPlugin) error
- type Context
- type CrioContext
- type DeviceInfo
- type DiskStats
- type DockerContext
- type Fs
- type FsCachingPlugin
- type FsInfo
- type FsPlugin
- type FsStats
- type FsType
- type PartitionInfo
- type PodmanContext
- type RealFsInfo
- func (i *RealFsInfo) GetDeviceForLabel(label string) (string, error)
- func (i *RealFsInfo) GetDeviceInfoByFsUUID(uuid string) (*DeviceInfo, error)
- func (i *RealFsInfo) GetDirFsDevice(dir string) (*DeviceInfo, error)
- func (i *RealFsInfo) GetDirUsage(dir string) (UsageInfo, error)
- func (i *RealFsInfo) GetFsInfoForPath(mountSet map[string]struct{}) ([]Fs, error)
- func (i *RealFsInfo) GetGlobalFsInfo() ([]Fs, error)
- func (i *RealFsInfo) GetLabelsForDevice(device string) ([]string, error)
- func (i *RealFsInfo) GetMountpointForDevice(dev string) (string, error)
- type UsageInfo
Constants ¶
const ( LabelSystemRoot = "root" LabelDockerImages = "docker-images" LabelCrioImages = "crio-images" LabelCrioContainers = "crio-containers" )
Variables ¶
var ( // ErrNoSuchDevice is the error indicating the requested device does not exist. ErrNoSuchDevice = errors.New("cadvisor: no such device") // ErrDeviceNotInPartitionsMap is the error resulting if a device could not be found in the partitions map. ErrDeviceNotInPartitionsMap = errors.New("could not find device in cached partitions map") )
var ErrFallbackToVFS = errors.New("fallback to VFS")
ErrFallbackToVFS signals that a specialized plugin cannot handle this filesystem and VFS should be used instead.
Functions ¶
func RegisterPlugin ¶
RegisterPlugin registers a filesystem plugin. This should be called from init() functions.
Types ¶
type Context ¶
type Context struct {
// docker root directory.
Docker DockerContext
Crio CrioContext
Podman PodmanContext
}
type CrioContext ¶
type DeviceInfo ¶
type DockerContext ¶
type FsCachingPlugin ¶
type FsCachingPlugin interface {
FsPlugin
// CacheKey returns a cache key for the given partition.
// Stats will be cached by this key and reused for partitions with the same key.
// Return empty string to disable caching for a specific partition.
CacheKey(partition PartitionInfo) string
}
FsCachingPlugin is an optional interface for plugins that want to cache stats by a key (e.g., device ID) to avoid redundant stat calls. This is useful for network filesystems like NFS where multiple mounts may point to the same underlying device.
type FsInfo ¶
type FsInfo interface {
// Returns capacity and free space, in bytes, of all the ext2, ext3, ext4 filesystems on the host.
GetGlobalFsInfo() ([]Fs, error)
// Returns capacity and free space, in bytes, of the set of mounts passed.
GetFsInfoForPath(mountSet map[string]struct{}) ([]Fs, error)
// GetDirUsage returns a usage information for 'dir'.
GetDirUsage(dir string) (UsageInfo, error)
// GetDeviceInfoByFsUUID returns the information of the device with the
// specified filesystem uuid. If no such device exists, this function will
// return the ErrNoSuchDevice error.
GetDeviceInfoByFsUUID(uuid string) (*DeviceInfo, error)
// Returns the block device info of the filesystem on which 'dir' resides.
GetDirFsDevice(dir string) (*DeviceInfo, error)
// Returns the device name associated with a particular label.
GetDeviceForLabel(label string) (string, error)
// Returns all labels associated with a particular device name.
GetLabelsForDevice(device string) ([]string, error)
// Returns the mountpoint associated with a particular device.
GetMountpointForDevice(device string) (string, error)
}
type FsPlugin ¶
type FsPlugin interface {
// Name returns the plugin identifier (e.g., "zfs", "devicemapper", "vfs").
Name() string
// CanHandle returns true if this plugin handles the given filesystem type.
CanHandle(fsType string) bool
// Priority returns the plugin priority (higher = checked first).
// Allows specific plugins (zfs, btrfs) to override generic (vfs).
Priority() int
// GetStats returns filesystem statistics for a partition.
GetStats(device string, partition PartitionInfo) (*FsStats, error)
// ProcessMount optionally modifies mount info during processing.
// Returns (shouldInclude bool, modifiedMount *mount.Info, error).
ProcessMount(mnt *mount.Info) (bool, *mount.Info, error)
}
FsPlugin provides filesystem-specific statistics collection.
func GetPluginForFsType ¶
GetPluginForFsType returns the appropriate plugin for the filesystem type. Returns nil if no plugin can handle the filesystem type.
type FsStats ¶
type FsStats struct {
Capacity uint64
Free uint64
Available uint64
Inodes *uint64
InodesFree *uint64
Type FsType
}
FsStats contains filesystem statistics returned by plugins.
type PartitionInfo ¶
PartitionInfo contains information needed for stats collection.
type PodmanContext ¶
type RealFsInfo ¶
type RealFsInfo struct {
// contains filtered or unexported fields
}
func (*RealFsInfo) GetDeviceForLabel ¶
func (i *RealFsInfo) GetDeviceForLabel(label string) (string, error)
func (*RealFsInfo) GetDeviceInfoByFsUUID ¶
func (i *RealFsInfo) GetDeviceInfoByFsUUID(uuid string) (*DeviceInfo, error)
func (*RealFsInfo) GetDirFsDevice ¶
func (i *RealFsInfo) GetDirFsDevice(dir string) (*DeviceInfo, error)
func (*RealFsInfo) GetDirUsage ¶
func (i *RealFsInfo) GetDirUsage(dir string) (UsageInfo, error)
func (*RealFsInfo) GetFsInfoForPath ¶
func (i *RealFsInfo) GetFsInfoForPath(mountSet map[string]struct{}) ([]Fs, error)
func (*RealFsInfo) GetGlobalFsInfo ¶
func (i *RealFsInfo) GetGlobalFsInfo() ([]Fs, error)
func (*RealFsInfo) GetLabelsForDevice ¶
func (i *RealFsInfo) GetLabelsForDevice(device string) ([]string, error)
func (*RealFsInfo) GetMountpointForDevice ¶
func (i *RealFsInfo) GetMountpointForDevice(dev string) (string, error)