...

Package bcache

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

Overview ▾

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

type BcacheStats

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
}

type BdevStats

BdevStats contains statistics for one backing device.

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

type CacheStats

CacheStats contains statistics for one cache device.

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

type FS

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

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

func NewDefaultFS

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

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 is a wrapper around stats(). It returns full available statistics.

func (FS) StatsWithoutPriority

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

StatsWithoutPriority is a wrapper around stats(). It ignores priority_stats file, because it is expensive to read.

type InternalStats

InternalStats contains internal bcache statistics.

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

type PeriodStats

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
}

type PriorityStats

PriorityStats contains statistics from the priority_stats file.

type PriorityStats struct {
    UnusedPercent   uint64
    MetadataPercent uint64
}

type Stats

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

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

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

type WritebackRateDebugStats

WritebackRateDebugStats contains bcache writeback statistics.

type WritebackRateDebugStats struct {
    Rate         uint64
    Dirty        uint64
    Target       uint64
    Proportional int64
    Integral     int64
    Change       int64
    NextIO       int64
}