code: func CaptureDebugGCStatsOnce(r Registry) {
  	lastGC := gcStats.LastGC
  	t := time.Now()
  	debug.ReadGCStats(&gcStats)
  	debugMetrics.ReadGCStats.UpdateSince(t)
  
  	debugMetrics.GCStats.LastGC.Update(gcStats.LastGC.UnixNano())
  	debugMetrics.GCStats.NumGC.Update(gcStats.NumGC)
  	if lastGC != gcStats.LastGC && 0 < len(gcStats.Pause) {
  		debugMetrics.GCStats.Pause.Update(int64(gcStats.Pause[0]))
  	}
  	//debugMetrics.GCStats.PauseQuantiles.Update(gcStats.PauseQuantiles)
  	debugMetrics.GCStats.PauseTotal.Update(int64(gcStats.PauseTotal))
  }
docs: // Capture new values for the Go garbage collector statistics exported in
  // debug.GCStats.  This is designed to be called in a background goroutine.
  // Giving a registry which has not been given to RegisterDebugGCStats will
  // panic.
  //
  // Be careful (but much less so) with this because debug.ReadGCStats calls
  // the C function runtime·lock(runtime·mheap) which, while not a stop-the-world
  // operation, isn't something you want to be doing all the time.