code: func (c *ksmdCollector) Update(ch chan<- prometheus.Metric) error {
  	for _, n := range ksmdFiles {
  		val, err := readUintFromFile(sysFilePath(filepath.Join("kernel/mm/ksm", n)))
  		if err != nil {
  			return err
  		}
  
  		t := prometheus.GaugeValue
  		v := float64(val)
  		switch n {
  		case "full_scans":
  			t = prometheus.CounterValue
  		case "sleep_millisecs":
  			v /= 1000
  		}
  		ch <- prometheus.MustNewConstMetric(c.metricDescs[n], t, v)
  	}
  
  	return nil
  }
docs: // Update implements Collector and exposes kernel and system statistics.