github.com/hellobchain/third_party@v0.0.0-20230331131523-deb0478a2e52/prometheus/procfs/nfs/nfs.go (about)

     1  // Copyright 2018 The Prometheus Authors
     2  // Licensed under the Apache License, Version 2.0 (the "License");
     3  // you may not use this file except in compliance with the License.
     4  // You may obtain a copy of the License at
     5  //
     6  // http://www.apache.org/licenses/LICENSE-2.0
     7  //
     8  // Unless required by applicable law or agreed to in writing, software
     9  // distributed under the License is distributed on an "AS IS" BASIS,
    10  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11  // See the License for the specific language governing permissions and
    12  // limitations under the License.
    13  
    14  // Package nfs implements parsing of /proc/net/rpc/nfsd.
    15  // Fields are documented in https://www.svennd.be/nfsd-stats-explained-procnetrpcnfsd/
    16  package nfs
    17  
    18  // ReplyCache models the "rc" line.
    19  type ReplyCache struct {
    20  	Hits    uint64
    21  	Misses  uint64
    22  	NoCache uint64
    23  }
    24  
    25  // FileHandles models the "fh" line.
    26  type FileHandles struct {
    27  	Stale        uint64
    28  	TotalLookups uint64
    29  	AnonLookups  uint64
    30  	DirNoCache   uint64
    31  	NoDirNoCache uint64
    32  }
    33  
    34  // InputOutput models the "io" line.
    35  type InputOutput struct {
    36  	Read  uint64
    37  	Write uint64
    38  }
    39  
    40  // Threads models the "th" line.
    41  type Threads struct {
    42  	Threads uint64
    43  	FullCnt uint64
    44  }
    45  
    46  // ReadAheadCache models the "ra" line.
    47  type ReadAheadCache struct {
    48  	CacheSize      uint64
    49  	CacheHistogram []uint64
    50  	NotFound       uint64
    51  }
    52  
    53  // Network models the "net" line.
    54  type Network struct {
    55  	NetCount   uint64
    56  	UDPCount   uint64
    57  	TCPCount   uint64
    58  	TCPConnect uint64
    59  }
    60  
    61  // ClientRPC models the nfs "rpc" line.
    62  type ClientRPC struct {
    63  	RPCCount        uint64
    64  	Retransmissions uint64
    65  	AuthRefreshes   uint64
    66  }
    67  
    68  // ServerRPC models the nfsd "rpc" line.
    69  type ServerRPC struct {
    70  	RPCCount uint64
    71  	BadCnt   uint64
    72  	BadFmt   uint64
    73  	BadAuth  uint64
    74  	BadcInt  uint64
    75  }
    76  
    77  // V2Stats models the "proc2" line.
    78  type V2Stats struct {
    79  	Null     uint64
    80  	GetAttr  uint64
    81  	SetAttr  uint64
    82  	Root     uint64
    83  	Lookup   uint64
    84  	ReadLink uint64
    85  	Read     uint64
    86  	WrCache  uint64
    87  	Write    uint64
    88  	Create   uint64
    89  	Remove   uint64
    90  	Rename   uint64
    91  	Link     uint64
    92  	SymLink  uint64
    93  	MkDir    uint64
    94  	RmDir    uint64
    95  	ReadDir  uint64
    96  	FsStat   uint64
    97  }
    98  
    99  // V3Stats models the "proc3" line.
   100  type V3Stats struct {
   101  	Null        uint64
   102  	GetAttr     uint64
   103  	SetAttr     uint64
   104  	Lookup      uint64
   105  	Access      uint64
   106  	ReadLink    uint64
   107  	Read        uint64
   108  	Write       uint64
   109  	Create      uint64
   110  	MkDir       uint64
   111  	SymLink     uint64
   112  	MkNod       uint64
   113  	Remove      uint64
   114  	RmDir       uint64
   115  	Rename      uint64
   116  	Link        uint64
   117  	ReadDir     uint64
   118  	ReadDirPlus uint64
   119  	FsStat      uint64
   120  	FsInfo      uint64
   121  	PathConf    uint64
   122  	Commit      uint64
   123  }
   124  
   125  // ClientV4Stats models the nfs "proc4" line.
   126  type ClientV4Stats struct {
   127  	Null               uint64
   128  	Read               uint64
   129  	Write              uint64
   130  	Commit             uint64
   131  	Open               uint64
   132  	OpenConfirm        uint64
   133  	OpenNoattr         uint64
   134  	OpenDowngrade      uint64
   135  	Close              uint64
   136  	Setattr            uint64
   137  	FsInfo             uint64
   138  	Renew              uint64
   139  	SetClientID        uint64
   140  	SetClientIDConfirm uint64
   141  	Lock               uint64
   142  	Lockt              uint64
   143  	Locku              uint64
   144  	Access             uint64
   145  	Getattr            uint64
   146  	Lookup             uint64
   147  	LookupRoot         uint64
   148  	Remove             uint64
   149  	Rename             uint64
   150  	Link               uint64
   151  	Symlink            uint64
   152  	Create             uint64
   153  	Pathconf           uint64
   154  	StatFs             uint64
   155  	ReadLink           uint64
   156  	ReadDir            uint64
   157  	ServerCaps         uint64
   158  	DelegReturn        uint64
   159  	GetACL             uint64
   160  	SetACL             uint64
   161  	FsLocations        uint64
   162  	ReleaseLockowner   uint64
   163  	Secinfo            uint64
   164  	FsidPresent        uint64
   165  	ExchangeID         uint64
   166  	CreateSession      uint64
   167  	DestroySession     uint64
   168  	Sequence           uint64
   169  	GetLeaseTime       uint64
   170  	ReclaimComplete    uint64
   171  	LayoutGet          uint64
   172  	GetDeviceInfo      uint64
   173  	LayoutCommit       uint64
   174  	LayoutReturn       uint64
   175  	SecinfoNoName      uint64
   176  	TestStateID        uint64
   177  	FreeStateID        uint64
   178  	GetDeviceList      uint64
   179  	BindConnToSession  uint64
   180  	DestroyClientID    uint64
   181  	Seek               uint64
   182  	Allocate           uint64
   183  	DeAllocate         uint64
   184  	LayoutStats        uint64
   185  	Clone              uint64
   186  }
   187  
   188  // ServerV4Stats models the nfsd "proc4" line.
   189  type ServerV4Stats struct {
   190  	Null     uint64
   191  	Compound uint64
   192  }
   193  
   194  // V4Ops models the "proc4ops" line: NFSv4 operations
   195  // Variable list, see:
   196  // v4.0 https://tools.ietf.org/html/rfc3010 (38 operations)
   197  // v4.1 https://tools.ietf.org/html/rfc5661 (58 operations)
   198  // v4.2 https://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-41 (71 operations)
   199  type V4Ops struct {
   200  	//Values       uint64 // Variable depending on v4.x sub-version. TODO: Will this always at least include the fields in this struct?
   201  	Op0Unused    uint64
   202  	Op1Unused    uint64
   203  	Op2Future    uint64
   204  	Access       uint64
   205  	Close        uint64
   206  	Commit       uint64
   207  	Create       uint64
   208  	DelegPurge   uint64
   209  	DelegReturn  uint64
   210  	GetAttr      uint64
   211  	GetFH        uint64
   212  	Link         uint64
   213  	Lock         uint64
   214  	Lockt        uint64
   215  	Locku        uint64
   216  	Lookup       uint64
   217  	LookupRoot   uint64
   218  	Nverify      uint64
   219  	Open         uint64
   220  	OpenAttr     uint64
   221  	OpenConfirm  uint64
   222  	OpenDgrd     uint64
   223  	PutFH        uint64
   224  	PutPubFH     uint64
   225  	PutRootFH    uint64
   226  	Read         uint64
   227  	ReadDir      uint64
   228  	ReadLink     uint64
   229  	Remove       uint64
   230  	Rename       uint64
   231  	Renew        uint64
   232  	RestoreFH    uint64
   233  	SaveFH       uint64
   234  	SecInfo      uint64
   235  	SetAttr      uint64
   236  	Verify       uint64
   237  	Write        uint64
   238  	RelLockOwner uint64
   239  }
   240  
   241  // ClientRPCStats models all stats from /proc/net/rpc/nfs.
   242  type ClientRPCStats struct {
   243  	Network       Network
   244  	ClientRPC     ClientRPC
   245  	V2Stats       V2Stats
   246  	V3Stats       V3Stats
   247  	ClientV4Stats ClientV4Stats
   248  }
   249  
   250  // ServerRPCStats models all stats from /proc/net/rpc/nfsd.
   251  type ServerRPCStats struct {
   252  	ReplyCache     ReplyCache
   253  	FileHandles    FileHandles
   254  	InputOutput    InputOutput
   255  	Threads        Threads
   256  	ReadAheadCache ReadAheadCache
   257  	Network        Network
   258  	ServerRPC      ServerRPC
   259  	V2Stats        V2Stats
   260  	V3Stats        V3Stats
   261  	ServerV4Stats  ServerV4Stats
   262  	V4Ops          V4Ops
   263  }