code: func NewNfsCollector() (Collector, error) {
  	fs, err := procfs.NewFS(*procPath)
  	if err != nil {
  		return nil, fmt.Errorf("failed to open procfs: %v", err)
  	}
  
  	return &nfsCollector{
  		fs: fs,
  		nfsNetReadsDesc: prometheus.NewDesc(
  			prometheus.BuildFQName(namespace, nfsSubsystem, "packets_total"),
  			"Total NFSd network packets (sent+received) by protocol type.",
  			[]string{"protocol"},
  			nil,
  		),
  		nfsNetConnectionsDesc: prometheus.NewDesc(
  			prometheus.BuildFQName(namespace, nfsSubsystem, "connections_total"),
  			"Total number of NFSd TCP connections.",
  			nil,
  			nil,
  		),
  		nfsRPCOperationsDesc: prometheus.NewDesc(
  			prometheus.BuildFQName(namespace, nfsSubsystem, "rpcs_total"),
  			"Total number of RPCs performed.",
  			nil,
  			nil,
  		),
  		nfsRPCRetransmissionsDesc: prometheus.NewDesc(
  			prometheus.BuildFQName(namespace, nfsSubsystem, "rpc_retransmissions_total"),
  			"Number of RPC transmissions performed.",
  			nil,
  			nil,
  		),
  		nfsRPCAuthenticationRefreshesDesc: prometheus.NewDesc(
  			prometheus.BuildFQName(namespace, nfsSubsystem, "rpc_authentication_refreshes_total"),
  			"Number of RPC authentication refreshes performed.",
  			nil,
  			nil,
  		),
  		nfsProceduresDesc: prometheus.NewDesc(
  			prometheus.BuildFQName(namespace, nfsSubsystem, "requests_total"),
  			"Number of NFS procedures invoked.",
  			[]string{"proto", "method"},
  			nil,
  		),
  	}, nil
  }
docs: // NewNfsCollector returns a new Collector exposing NFS statistics.