func readNFSServerStats()

in image/resources/knfsd-agent/nfs.go [192:284]


func readNFSServerStats(fs nfs.FS) (*client.NFSServerStats, error) {
	s, err := fs.ServerRPCStats()
	if err != nil {
		return nil, err
	}

	return &client.NFSServerStats{
		Threads: s.Threads.Threads,
		IO: client.NFSIO{
			Read:  s.InputOutput.Read,
			Write: s.InputOutput.Write,
		},
		Network: client.NFSNetwork{
			TotalPackets:   s.Network.NetCount,
			UDPPackets:     s.Network.UDPCount,
			TCPPackets:     s.Network.TCPCount,
			TCPConnections: s.Network.TCPConnect,
		},
		RPC: client.NFSServerRPC{
			Count:     s.ServerRPC.RPCCount,
			BadTotal:  s.ServerRPC.BadCnt,
			BadFormat: s.ServerRPC.BadFmt,
			BadAuth:   s.ServerRPC.BadAuth,
		},
		Proc3: client.NFSProc3{
			Null:        s.V3Stats.Null,
			GetAttr:     s.V3Stats.GetAttr,
			SetAttr:     s.V3Stats.SetAttr,
			Lookup:      s.V3Stats.Lookup,
			Access:      s.V3Stats.Access,
			ReadLink:    s.V3Stats.ReadLink,
			Read:        s.V3Stats.Read,
			Write:       s.V3Stats.Write,
			Create:      s.V3Stats.Create,
			MkDir:       s.V3Stats.MkDir,
			SymLink:     s.V3Stats.SymLink,
			MkNod:       s.V3Stats.MkNod,
			Remove:      s.V3Stats.Remove,
			RmDir:       s.V3Stats.RmDir,
			Rename:      s.V3Stats.Rename,
			Link:        s.V3Stats.Link,
			ReadDir:     s.V3Stats.ReadDir,
			ReadDirPlus: s.V3Stats.ReadDirPlus,
			FsStat:      s.V3Stats.FsStat,
			FsInfo:      s.V3Stats.FsInfo,
			PathConf:    s.V3Stats.PathConf,
			Commit:      s.V3Stats.Commit,
		},
		Proc4: client.NFSServerProc4{
			Null:     s.ServerV4Stats.Null,
			Compound: s.ServerV4Stats.Compound,
		},
		Proc4Ops: client.NFSProc4Ops{
			Access:             s.V4Ops.Access,
			Close:              s.V4Ops.Close,
			Commit:             s.V4Ops.Commit,
			Create:             s.V4Ops.Create,
			DelegPurge:         s.V4Ops.DelegPurge,
			DelegReturn:        s.V4Ops.DelegReturn,
			GetAttr:            s.V4Ops.GetAttr,
			GetFH:              s.V4Ops.GetFH,
			Link:               s.V4Ops.Link,
			Lock:               s.V4Ops.Lock,
			LockTest:           s.V4Ops.Lockt,
			Unlock:             s.V4Ops.Locku,
			Lookup:             s.V4Ops.Lookup,
			LookupParent:       s.V4Ops.LookupRoot,
			NVerify:            s.V4Ops.Nverify,
			Open:               s.V4Ops.Open,
			OpenAttr:           s.V4Ops.OpenAttr,
			OpenConfirm:        s.V4Ops.OpenConfirm,
			OpenDowngrade:      s.V4Ops.OpenDgrd,
			PutFH:              s.V4Ops.PutFH,
			PutPubFH:           s.V4Ops.PutPubFH,
			PutRootFH:          s.V4Ops.PutRootFH,
			Read:               s.V4Ops.Read,
			ReadDir:            s.V4Ops.ReadDir,
			ReadLink:           s.V4Ops.ReadLink,
			Remove:             s.V4Ops.Remove,
			Rename:             s.V4Ops.Rename,
			Renew:              s.V4Ops.Renew,
			RestoreFH:          s.V4Ops.RestoreFH,
			SaveFH:             s.V4Ops.SaveFH,
			SecInfo:            s.V4Ops.SecInfo,
			SetAttr:            s.V4Ops.SetAttr,
			SetClientID:        s.V4Ops.SetClientID,
			SetClientIDConfirm: s.V4Ops.SetClientIDConfirm,
			Verify:             s.V4Ops.Verify,
			Write:              s.V4Ops.Write,
			ReleaseLockOwner:   s.V4Ops.RelLockOwner,
		},
	}, nil
}