code: func (gm *GenericMetrics) RecordCall(callID, callName string, callTime time.Time, callStarted chan bool) string {
  	if callID == "" {
  		hashData := []byte("GenericMetrics-" + callName + strconv.FormatFloat(float64(rand.Float32()), 'f', -1, 32))
  		hash := fmt.Sprintf("%x", md5.Sum(hashData))
  		// Go routines are utilized to avoid blocking the main thread in case of
  		// resource contention with var outstandingCalls
  		go gm.FireCallStart(hash, callName, callTime, callStarted)
  		go gm.IncrementCallCount(callName)
  		return hash
  	} else {
  		go gm.FireCallEnd(callID, callName, callTime, callStarted)
  		return ""
  	}
  }
docs: // This function creates a hash of the callName and a randomly generated number.
  // The hash serves to match the call invokation with the call's end, which is
  // required to compute the call duration. The final metric is observed when the
  // FireCallEnd function is called.
  // If callID is empty, then we initiate the call with FireCallStart
  // We use a channel holding 1 bool to ensure that the FireCallEnd is called AFTER
  // the FireCallStart (because these are done in separate go routines)