nfs

package
v0.15.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 31, 2024 License: Apache-2.0 Imports: 7 Imported by: 34

Documentation

Overview

Package nfs implements parsing of /proc/net/rpc/nfsd. Fields are documented in https://www.svennd.be/nfsd-stats-explained-procnetrpcnfsd/

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientRPC

type ClientRPC struct {
	RPCCount        uint64
	Retransmissions uint64
	AuthRefreshes   uint64
}

ClientRPC models the nfs "rpc" line.

type ClientRPCStats

type ClientRPCStats struct {
	Network       Network
	ClientRPC     ClientRPC
	V2Stats       V2Stats
	V3Stats       V3Stats
	ClientV4Stats ClientV4Stats
}

ClientRPCStats models all stats from /proc/net/rpc/nfs.

func ParseClientRPCStats

func ParseClientRPCStats(r io.Reader) (*ClientRPCStats, error)

ParseClientRPCStats returns stats read from /proc/net/rpc/nfs.

type ClientV4Stats

type ClientV4Stats struct {
	Null               uint64
	Read               uint64
	Write              uint64
	Commit             uint64
	Open               uint64
	OpenConfirm        uint64
	OpenNoattr         uint64
	OpenDowngrade      uint64
	Close              uint64
	Setattr            uint64
	FsInfo             uint64
	Renew              uint64
	SetClientID        uint64
	SetClientIDConfirm uint64
	Lock               uint64
	Lockt              uint64
	Locku              uint64
	Access             uint64
	Getattr            uint64
	Lookup             uint64
	LookupRoot         uint64
	Remove             uint64
	Rename             uint64
	Link               uint64
	Symlink            uint64
	Create             uint64
	Pathconf           uint64
	StatFs             uint64
	ReadLink           uint64
	ReadDir            uint64
	ServerCaps         uint64
	DelegReturn        uint64
	GetACL             uint64
	SetACL             uint64
	FsLocations        uint64
	ReleaseLockowner   uint64
	Secinfo            uint64
	FsidPresent        uint64
	ExchangeID         uint64
	CreateSession      uint64
	DestroySession     uint64
	Sequence           uint64
	GetLeaseTime       uint64
	ReclaimComplete    uint64
	LayoutGet          uint64
	GetDeviceInfo      uint64
	LayoutCommit       uint64
	LayoutReturn       uint64
	SecinfoNoName      uint64
	TestStateID        uint64
	FreeStateID        uint64
	GetDeviceList      uint64
	BindConnToSession  uint64
	DestroyClientID    uint64
	Seek               uint64
	Allocate           uint64
	DeAllocate         uint64
	LayoutStats        uint64
	Clone              uint64
}

ClientV4Stats models the nfs "proc4" line.

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 NewDefaultFS added in v0.0.2

func NewDefaultFS() (FS, error)

NewDefaultFS returns a new FS mounted under the default mountPoint. It will error if the mount point can't be read.

func NewFS

func NewFS(mountPoint string) (FS, error)

NewFS returns a new FS mounted under the given mountPoint. It will error if the mount point can't be read.

func (FS) ClientRPCStats

func (fs FS) ClientRPCStats() (*ClientRPCStats, error)

ClientRPCStats retrieves NFS client RPC statistics from proc/net/rpc/nfs.

func (FS) ServerRPCStats

func (fs FS) ServerRPCStats() (*ServerRPCStats, error)

ServerRPCStats retrieves NFS daemon RPC statistics from proc/net/rpc/nfsd.

type FileHandles

type FileHandles struct {
	Stale        uint64
	TotalLookups uint64
	AnonLookups  uint64
	DirNoCache   uint64
	NoDirNoCache uint64
}

FileHandles models the "fh" line.

type InputOutput

type InputOutput struct {
	Read  uint64
	Write uint64
}

InputOutput models the "io" line.

type Network

type Network struct {
	NetCount   uint64
	UDPCount   uint64
	TCPCount   uint64
	TCPConnect uint64
}

Network models the "net" line.

type ReadAheadCache

type ReadAheadCache struct {
	CacheSize      uint64
	CacheHistogram []uint64
	NotFound       uint64
}

ReadAheadCache models the "ra" line.

type ReplyCache

type ReplyCache struct {
	Hits    uint64
	Misses  uint64
	NoCache uint64
}

ReplyCache models the "rc" line.

type ServerRPC

type ServerRPC struct {
	RPCCount uint64
	BadCnt   uint64
	BadFmt   uint64
	BadAuth  uint64
	BadcInt  uint64
}

ServerRPC models the nfsd "rpc" line.

type ServerRPCStats

type ServerRPCStats struct {
	ReplyCache     ReplyCache
	FileHandles    FileHandles
	InputOutput    InputOutput
	Threads        Threads
	ReadAheadCache ReadAheadCache
	Network        Network
	ServerRPC      ServerRPC
	V2Stats        V2Stats
	V3Stats        V3Stats
	ServerV4Stats  ServerV4Stats
	V4Ops          V4Ops
	WdelegGetattr  uint64
}

ServerRPCStats models all stats from /proc/net/rpc/nfsd.

func ParseServerRPCStats

func ParseServerRPCStats(r io.Reader) (*ServerRPCStats, error)

ParseServerRPCStats returns stats read from /proc/net/rpc/nfsd.

type ServerV4Stats

type ServerV4Stats struct {
	Null     uint64
	Compound uint64
}

ServerV4Stats models the nfsd "proc4" line.

type Threads

type Threads struct {
	Threads uint64
	FullCnt uint64
}

Threads models the "th" line.

type V2Stats

type V2Stats struct {
	Null     uint64
	GetAttr  uint64
	SetAttr  uint64
	Root     uint64
	Lookup   uint64
	ReadLink uint64
	Read     uint64
	WrCache  uint64
	Write    uint64
	Create   uint64
	Remove   uint64
	Rename   uint64
	Link     uint64
	SymLink  uint64
	MkDir    uint64
	RmDir    uint64
	ReadDir  uint64
	FsStat   uint64
}

V2Stats models the "proc2" line.

type V3Stats

type V3Stats struct {
	Null        uint64
	GetAttr     uint64
	SetAttr     uint64
	Lookup      uint64
	Access      uint64
	ReadLink    uint64
	Read        uint64
	Write       uint64
	Create      uint64
	MkDir       uint64
	SymLink     uint64
	MkNod       uint64
	Remove      uint64
	RmDir       uint64
	Rename      uint64
	Link        uint64
	ReadDir     uint64
	ReadDirPlus uint64
	FsStat      uint64
	FsInfo      uint64
	PathConf    uint64
	Commit      uint64
}

V3Stats models the "proc3" line.

type V4Ops

type V4Ops struct {
	//Values       uint64 // Variable depending on v4.x sub-version. TODO: Will this always at least include the fields in this struct?
	Op0Unused          uint64
	Op1Unused          uint64
	Op2Future          uint64
	Access             uint64
	Close              uint64
	Commit             uint64
	Create             uint64
	DelegPurge         uint64
	DelegReturn        uint64
	GetAttr            uint64
	GetFH              uint64
	Link               uint64
	Lock               uint64
	Lockt              uint64
	Locku              uint64
	Lookup             uint64
	LookupRoot         uint64
	Nverify            uint64
	Open               uint64
	OpenAttr           uint64
	OpenConfirm        uint64
	OpenDgrd           uint64
	PutFH              uint64
	PutPubFH           uint64
	PutRootFH          uint64
	Read               uint64
	ReadDir            uint64
	ReadLink           uint64
	Remove             uint64
	Rename             uint64
	Renew              uint64
	RestoreFH          uint64
	SaveFH             uint64
	SecInfo            uint64
	SetAttr            uint64
	SetClientID        uint64
	SetClientIDConfirm uint64
	Verify             uint64
	Write              uint64
	RelLockOwner       uint64
}

V4Ops models the "proc4ops" line: NFSv4 operations Variable list. See: - v4.0 https://tools.ietf.org/html/rfc3010 (38/39 operations)

- v4.1 https://tools.ietf.org/html/rfc5661 (58 operations) - v4.2 https://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-41 (71 operations)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL