code: func Snapshot() (c map[string]uint64, g map[string]int64) {
  	hm.Lock()
  	defer hm.Unlock()
  
  	gm.Lock()
  	defer gm.Unlock()
  
  	cm.Lock()
  	defer cm.Unlock()
  
  	for _, init := range inits {
  		init()
  	}
  
  	c = make(map[string]uint64, len(counters)+len(counterFuncs))
  	for n, v := range counters {
  		c[n] = v
  	}
  
  	for n, f := range counterFuncs {
  		c[n] = f()
  	}
  
  	g = make(map[string]int64, len(gauges))
  	for n, f := range gauges {
  		g[n] = f()
  	}
  
  	return
  }
docs: // Snapshot returns a copy of the values of all registered counters and gauges.