protected QuotaRecommendation buildQuotaRecommendation(float usage, QuotaName quotaName, String resourceId) {
    QuotaAction quotaAction = QuotaAction.ALLOW;
    if (usage >= MAX_USAGE_PERCENTAGE_ALLOWED) {
      if (quotaMetrics.perQuotaResourceOutOfQuotaMap.containsKey(resourceId)) {
        quotaMetrics.perQuotaResourceOutOfQuotaMap.get(resourceId).inc();
      }
      if (requestThrottlingEnabled) {
        quotaAction = QuotaAction.DELAY;
      }
      // Check if this request would have been throttled and log metrics.
      logMetricIfThrottleCandidate(quotaName, resourceId);
    }
    return new QuotaRecommendation(quotaAction, usage, quotaName,
        (quotaAction == QuotaAction.DELAY) ? throttleRetryAfterMs : QuotaRecommendation.NO_THROTTLE_RETRY_AFTER_MS);
  }
Build the {@link QuotaRecommendation} object from the specified usage and {@link QuotaName}.
@param usage percentage usage.
@param quotaName {@link QuotaName} object.
@param resourceId resource id of the resource for which check is being done.
@return QuotaRecommendation object.
ambry-quota/src/main/java/com/github/ambry/quota/capacityunit/AmbryCUQuotaEnforcer.java