function getOrCreateApdexMetric(name, scope, overrideApdex) {
  if (!name) {
    throw new Error('Metrics must be named')
  }

  const resolved = this._resolve(scope)

  if (!resolved[name]) {
    this.empty = false

    // Only use the given override to create the metric if this is not the
    // global apdex AND we have a valid value.
    const apdexT =
      name !== NAMES.APDEX && overrideApdex > 0 ? overrideApdex * FROM_MILLIS : this.apdexT
    resolved[name] = new ApdexStats(apdexT)
  }
  return resolved[name]
}
Look up the mapping from a name (and optionally a scope) to a set of metric
apdex data for that name, creating the data if they don't already exist.

@param {string} name          The name of the requested metric.
@param {string} scope         The scope to which the metric is bound
                              (optional).
@param {number} overrideApdex A custom apdexT for this metric, in
                              milliseconds. This will be the same for
                              a given run, because key transaction metrics
                              are set at connect time via server-side
                              configuration.
@returns {ApdexStats} The aggregated data for that name.