code: func ReadDiskStats(stats *DiskStats) error {
  	// Open the process disk IO counter file
  	inf, err := os.Open(fmt.Sprintf("/proc/%d/io", os.Getpid()))
  	if err != nil {
  		return err
  	}
  	defer inf.Close()
  	in := bufio.NewReader(inf)
  
  	// Iterate over the IO counter, and extract what we need
  	for {
  		// Read the next line and split to key and value
  		line, err := in.ReadString('\n')
  		if err != nil {
  			if err == io.EOF {
  				return nil
  			}
  			return err
  		}
  		parts := strings.Split(line, ":")
  		if len(parts) != 2 {
  			continue
  		}
  		key := strings.TrimSpace(parts[0])
  		value, err := strconv.ParseInt(strings.TrimSpace(parts[1]), 10, 64)
  		if err != nil {
  			return err
  		}
  
  		// Update the counter based on the key
  		switch key {
  		case "syscr":
  			stats.ReadCount = value
  		case "syscw":
  			stats.WriteCount = value
  		case "rchar":
  			stats.ReadBytes = value
  		case "wchar":
  			stats.WriteBytes = value
  		}
  	}
  }
docs: // ReadDiskStats retrieves the disk IO stats belonging to the current process.