@Override
  public void chargeUsage(QuotaResource quotaResource, QuotaName quotaName, double usageCost) throws QuotaException {
    checkSupported(quotaName, quotaResource);
    final String resourceId = quotaResource.getResourceId();
    assertResourceId(resourceId, true);
    chargeSystemResourceUsage(quotaName, usageCost);
    if (quotaName == QuotaName.READ_CAPACITY_UNIT) {
      cuUsage.get(resourceId).incrementRcu((long) Math.ceil(usageCost));
    } else {
      cuUsage.get(resourceId).incrementWcu((long) Math.ceil(usageCost));
    }
  }
Constructor for {@link AmbryCUQuotaSource}.
@param quotaConfig {@link QuotaConfig} object.
@param accountService {@link AccountService} object.
@param quotaMetrics {@link QuotaMetrics} object.
@param routerConfig {@link RouterConfig} object.
@throws IOException in case of any exception.
ambry-quota/src/main/java/com/github/ambry/quota/capacityunit/AmbryCUQuotaSource.java