BcacheStats contains statistics tied to a bcache ID.
type BcacheStats struct { AverageKeySize uint64 BtreeCacheSize uint64 CacheAvailablePercent uint64 Congested uint64 RootUsagePercent uint64 TreeDepth uint64 Internal InternalStats FiveMin PeriodStats Total PeriodStats }
BdevStats contains statistics for one backing device.
type BdevStats struct { Name string DirtyData uint64 FiveMin PeriodStats Total PeriodStats WritebackRateDebug WritebackRateDebugStats }
CacheStats contains statistics for one cache device.
type CacheStats struct { Name string IOErrors uint64 MetadataWritten uint64 Written uint64 Priority PriorityStats }
FS represents the pseudo-filesystem proc, which provides an interface to kernel data structures.
type FS struct {
// contains filtered or unexported fields
}
func NewDefaultFS() (FS, error)
NewDefaultFS returns a new Bcache using the default sys fs mount point. It will error if the mount point can't be read.
func NewFS(mountPoint string) (FS, error)
NewFS returns a new Bcache using the given sys fs mount point. It will error if the mount point can't be read.
func (fs FS) Stats() ([]*Stats, error)
Stats is a wrapper around stats(). It returns full available statistics.
func (fs FS) StatsWithoutPriority() ([]*Stats, error)
StatsWithoutPriority is a wrapper around stats(). It ignores priority_stats file, because it is expensive to read.
InternalStats contains internal bcache statistics.
type InternalStats struct { ActiveJournalEntries uint64 BtreeNodes uint64 BtreeReadAverageDurationNanoSeconds uint64 CacheReadRaces uint64 }
PeriodStats contains statistics for a time period (5 min or total).
type PeriodStats struct { Bypassed uint64 CacheBypassHits uint64 CacheBypassMisses uint64 CacheHits uint64 CacheMissCollisions uint64 CacheMisses uint64 CacheReadaheads uint64 }
PriorityStats contains statistics from the priority_stats file.
type PriorityStats struct { UnusedPercent uint64 MetadataPercent uint64 }
Stats contains bcache runtime statistics, parsed from /sys/fs/bcache/.
The names and meanings of each statistic were taken from bcache.txt and files in drivers/md/bcache in the Linux kernel source. Counters are uint64 (in-kernel counters are mostly unsigned long).
type Stats struct { // The name of the bcache used to source these statistics. Name string Bcache BcacheStats Bdevs []BdevStats Caches []CacheStats }
func GetStats(uuidPath string, priorityStats bool) (*Stats, error)
GetStats collects from sysfs files data tied to one bcache ID.
WritebackRateDebugStats contains bcache writeback statistics.
type WritebackRateDebugStats struct { Rate uint64 Dirty uint64 Target uint64 Proportional int64 Integral int64 Change int64 NextIO int64 }