code: func (c *pressureStatsCollector) Update(ch chan<- prometheus.Metric) error {
  	for _, res := range psiResources {
  		log.Debugf("collecting statistics for resource: %s", res)
  		vals, err := c.fs.NewPSIStatsForResource(res)
  		if err != nil {
  			log.Debug("pressure information is unavailable, you need a Linux kernel >= 4.20 and/or CONFIG_PSI enabled for your kernel")
  			return nil
  		}
  		switch res {
  		case "cpu":
  			ch <- prometheus.MustNewConstMetric(c.cpu, prometheus.CounterValue, float64(vals.Some.Total)/1000.0/1000.0)
  		case "io":
  			ch <- prometheus.MustNewConstMetric(c.io, prometheus.CounterValue, float64(vals.Some.Total)/1000.0/1000.0)
  			ch <- prometheus.MustNewConstMetric(c.ioFull, prometheus.CounterValue, float64(vals.Full.Total)/1000.0/1000.0)
  		case "memory":
  			ch <- prometheus.MustNewConstMetric(c.mem, prometheus.CounterValue, float64(vals.Some.Total)/1000.0/1000.0)
  			ch <- prometheus.MustNewConstMetric(c.memFull, prometheus.CounterValue, float64(vals.Full.Total)/1000.0/1000.0)
  		default:
  			log.Debugf("did not account for resource: %s", res)
  		}
  	}
  
  	return nil
  }
docs: // Update calls procfs.NewPSIStatsForResource for the different resources and updates the values