mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			264 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			264 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2018 The Prometheus Authors
 | 
						|
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
// you may not use this file except in compliance with the License.
 | 
						|
// You may obtain a copy of the License at
 | 
						|
//
 | 
						|
// http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
//
 | 
						|
// Unless required by applicable law or agreed to in writing, software
 | 
						|
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
// See the License for the specific language governing permissions and
 | 
						|
// limitations under the License.
 | 
						|
 | 
						|
// Package nfs implements parsing of /proc/net/rpc/nfsd.
 | 
						|
// Fields are documented in https://www.svennd.be/nfsd-stats-explained-procnetrpcnfsd/
 | 
						|
package nfs
 | 
						|
 | 
						|
// ReplyCache models the "rc" line.
 | 
						|
type ReplyCache struct {
 | 
						|
	Hits    uint64
 | 
						|
	Misses  uint64
 | 
						|
	NoCache uint64
 | 
						|
}
 | 
						|
 | 
						|
// FileHandles models the "fh" line.
 | 
						|
type FileHandles struct {
 | 
						|
	Stale        uint64
 | 
						|
	TotalLookups uint64
 | 
						|
	AnonLookups  uint64
 | 
						|
	DirNoCache   uint64
 | 
						|
	NoDirNoCache uint64
 | 
						|
}
 | 
						|
 | 
						|
// InputOutput models the "io" line.
 | 
						|
type InputOutput struct {
 | 
						|
	Read  uint64
 | 
						|
	Write uint64
 | 
						|
}
 | 
						|
 | 
						|
// Threads models the "th" line.
 | 
						|
type Threads struct {
 | 
						|
	Threads uint64
 | 
						|
	FullCnt uint64
 | 
						|
}
 | 
						|
 | 
						|
// ReadAheadCache models the "ra" line.
 | 
						|
type ReadAheadCache struct {
 | 
						|
	CacheSize      uint64
 | 
						|
	CacheHistogram []uint64
 | 
						|
	NotFound       uint64
 | 
						|
}
 | 
						|
 | 
						|
// Network models the "net" line.
 | 
						|
type Network struct {
 | 
						|
	NetCount   uint64
 | 
						|
	UDPCount   uint64
 | 
						|
	TCPCount   uint64
 | 
						|
	TCPConnect uint64
 | 
						|
}
 | 
						|
 | 
						|
// ClientRPC models the nfs "rpc" line.
 | 
						|
type ClientRPC struct {
 | 
						|
	RPCCount        uint64
 | 
						|
	Retransmissions uint64
 | 
						|
	AuthRefreshes   uint64
 | 
						|
}
 | 
						|
 | 
						|
// ServerRPC models the nfsd "rpc" line.
 | 
						|
type ServerRPC struct {
 | 
						|
	RPCCount uint64
 | 
						|
	BadCnt   uint64
 | 
						|
	BadFmt   uint64
 | 
						|
	BadAuth  uint64
 | 
						|
	BadcInt  uint64
 | 
						|
}
 | 
						|
 | 
						|
// V2Stats models the "proc2" line.
 | 
						|
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
 | 
						|
}
 | 
						|
 | 
						|
// V3Stats models the "proc3" line.
 | 
						|
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
 | 
						|
}
 | 
						|
 | 
						|
// ClientV4Stats models the nfs "proc4" line.
 | 
						|
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
 | 
						|
}
 | 
						|
 | 
						|
// ServerV4Stats models the nfsd "proc4" line.
 | 
						|
type ServerV4Stats struct {
 | 
						|
	Null     uint64
 | 
						|
	Compound uint64
 | 
						|
}
 | 
						|
 | 
						|
// V4Ops models the "proc4ops" line: NFSv4 operations
 | 
						|
// Variable list, see:
 | 
						|
// v4.0 https://tools.ietf.org/html/rfc3010 (38 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)
 | 
						|
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
 | 
						|
	Verify       uint64
 | 
						|
	Write        uint64
 | 
						|
	RelLockOwner uint64
 | 
						|
}
 | 
						|
 | 
						|
// ClientRPCStats models all stats from /proc/net/rpc/nfs.
 | 
						|
type ClientRPCStats struct {
 | 
						|
	Network       Network
 | 
						|
	ClientRPC     ClientRPC
 | 
						|
	V2Stats       V2Stats
 | 
						|
	V3Stats       V3Stats
 | 
						|
	ClientV4Stats ClientV4Stats
 | 
						|
}
 | 
						|
 | 
						|
// ServerRPCStats models all stats from /proc/net/rpc/nfsd.
 | 
						|
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
 | 
						|
}
 |