code: func (c *nfsdCollector) Update(ch chan<- prometheus.Metric) error {
  	stats, err := c.fs.NFSdServerRPCStats()
  	if err != nil {
  		if os.IsNotExist(err) {
  			log.Debugf("Not collecting NFSd metrics: %s", err)
  			return nil
  		}
  		return fmt.Errorf("failed to retrieve nfsd stats: %v", err)
  	}
  
  	c.updateNFSdReplyCacheStats(ch, &stats.ReplyCache)
  	c.updateNFSdFileHandlesStats(ch, &stats.FileHandles)
  	c.updateNFSdInputOutputStats(ch, &stats.InputOutput)
  	c.updateNFSdThreadsStats(ch, &stats.Threads)
  	c.updateNFSdReadAheadCacheStats(ch, &stats.ReadAheadCache)
  	c.updateNFSdNetworkStats(ch, &stats.Network)
  	c.updateNFSdServerRPCStats(ch, &stats.ServerRPC)
  	c.updateNFSdRequestsv2Stats(ch, &stats.V2Stats)
  	c.updateNFSdRequestsv3Stats(ch, &stats.V3Stats)
  	c.updateNFSdRequestsv4Stats(ch, &stats.V4Ops)
  
  	return nil
  }
docs: // Update implements Collector.