package bcache

import "github.com/prometheus/procfs/bcache"

Package bcache provides access to statistics exposed by the bcache (Linux block cache).

Index

Types

type BcacheStats

type BcacheStats struct {
	AverageKeySize        uint64
	BtreeCacheSize        uint64
	CacheAvailablePercent uint64
	Congested             uint64
	RootUsagePercent      uint64
	TreeDepth             uint64
	Internal              InternalStats
	FiveMin               PeriodStats
	Total                 PeriodStats
}

BcacheStats contains statistics tied to a bcache ID.

type BdevStats

type BdevStats struct {
	Name      string
	DirtyData uint64
	FiveMin   PeriodStats
	Total     PeriodStats
}

BdevStats contains statistics for one backing device.

type CacheStats

type CacheStats struct {
	Name            string
	IOErrors        uint64
	MetadataWritten uint64
	Written         uint64
	Priority        PriorityStats
}

CacheStats contains statistics for one cache device.

type FS

type FS struct {
	// contains filtered or unexported fields
}

FS represents the pseudo-filesystem proc, which provides an interface to kernel data structures.

func NewFS

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) Stats

func (fs FS) Stats() ([]*Stats, error)

Stats retrieves bcache runtime statistics for each bcache.

type InternalStats

type InternalStats struct {
	ActiveJournalEntries                uint64
	BtreeNodes                          uint64
	BtreeReadAverageDurationNanoSeconds uint64
	CacheReadRaces                      uint64
}

InternalStats contains internal bcache statistics.

type PeriodStats

type PeriodStats struct {
	Bypassed            uint64
	CacheBypassHits     uint64
	CacheBypassMisses   uint64
	CacheHits           uint64
	CacheMissCollisions uint64
	CacheMisses         uint64
	CacheReadaheads     uint64
}

PeriodStats contains statistics for a time period (5 min or total).

type PriorityStats

type PriorityStats struct {
	UnusedPercent   uint64
	MetadataPercent uint64
}

PriorityStats contains statistics from the priority_stats file.

type Stats

type Stats struct {
	// The name of the bcache used to source these statistics.
	Name   string
	Bcache BcacheStats
	Bdevs  []BdevStats
	Caches []CacheStats
}

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).

func GetStats

func GetStats(uuidPath string) (*Stats, error)

GetStats collects from sysfs files data tied to one bcache ID.

Source Files

bcache.go get.go

Version
v0.0.1
Published
May 29, 2019
Platform
js/wasm
Imports
9 packages
Last checked
4 hours ago

Tools for package owners.