Documentation ¶
Overview ¶
Package diskusage calculates IO usage of the block devices. Usage is calculated by taking the difference between two snapshots of IO statistics of the block devices, /proc/diskstats. The time elapsed between the two snapshots is stored in the TimeDelta field. Instead of returning a Go struct, it returns Flatbuffer serialized bytes. A function to deserialize the Flatbuffer serialized bytes into a struct.DiskUsage struct is provided.
Note: the package name is diskusage and not the final element of the import path (flat).
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Deserialize ¶
Deserialize takes some Flatbuffer serialized bytes and deserializes them as a structs.DiskUsage.
func Get ¶
Get returns the current IO usage of the block devices as Flatbuffer serialized bytes using the package's global Profiler. The Profiler is instantiated lazily. If the profiler doesn't already exist, the first utilization information will not be useful due to minimal time elapsing between the initial and second snapshots used for utilization calculations; the results of the first call should be discarded.
func NewTicker ¶
NewTicker returns a new Ticker containing a Data channel that delivers the data at intervals and an error channel that delivers any errors encountered. Stop the ticker to signal the ticker to stop running. Stopping the ticker does not close the Data channel; call Close to close both the ticker and the data channel.
Types ¶
type Profiler ¶
Profiler is used to process IO usage of the block devices using Flatbuffers.
func NewProfiler ¶
Returns an initialized Profiler; ready to use. Upon creation, a /proc/diskstats snapshot is taken so that any Get() will return valid information
func (*Profiler) Get ¶
Get returns the current IO usage of the block devices as Flatbuffer serialized bytes. Calculating usage requires two snapshots. This func gets the current snapshot of /proc/diskstats and calculates the difference between that and the prior snapshot. The current snapshot is stored for use as the prior snapshot on the next Get call. If ongoing usage information is desired, the Ticker should be used; it's better suited for ongoing usage information.