services/quotas-service/src/main/java/com/amazon/aws/partners/saasfactory/saasboost/QuotasServiceDAL.java [218:270]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    private Double getFargateResourceCount() {
        Double count = 0d;
        try {
            Metric metric = Metric.builder()
                    .metricName("ResourceCount")
                    .namespace("AWS/Usage")
                    .dimensions(Arrays.asList(
                            Dimension.builder().name("Type").value("Resource").build(),
                            Dimension.builder().name("Resource").value("OnDemand").build(),
                            Dimension.builder().name("Service").value("Fargate").build(),
                            Dimension.builder().name("Class").value("None").build()
                    ))
                    .build();

            MetricStat metricStat = MetricStat.builder()
                    .stat("Maximum")
                    .period(600)
                    .metric(metric)
                    .build();

            MetricDataQuery dataQuery = MetricDataQuery.builder()
                    .metricStat(metricStat)
                    .id("fargate")
                    .returnData(true)
                    .build();

            Instant end = Instant.now();
            Instant start = end.minus(600, ChronoUnit.SECONDS);

            long startTime = System.currentTimeMillis();
            GetMetricDataRequest getMetricDataRequest = GetMetricDataRequest.builder()
                    .maxDatapoints(10000)
                    .startTime(start)
                    .endTime(end)
                    .metricDataQueries(Arrays.asList(dataQuery))
                    .build();

            GetMetricDataResponse response = cloudWatch.getMetricData(getMetricDataRequest);
            for (MetricDataResult item : response.metricDataResults()) {
                //get the last value as it is the most current
                if (!item.values().isEmpty()) {
                    count = item.values().get(item.values().size() - 1);
                    break;
                }
            }
            LOGGER.info("Time to process: " + (System.currentTimeMillis() - startTime));
        } catch (CloudWatchException cloudWatchError) {
            LOGGER.error("cloudwatch::GetMetricData", cloudWatchError);
            LOGGER.error(Utils.getFullStackTrace(cloudWatchError));
            throw cloudWatchError;
        }
        return count;
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



services/quotas-service/src/main/java/com/amazon/aws/partners/saasfactory/saasboost/QuotasServiceDAL.java [272:324]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    private Double getVCpuCount() {
        Double count = 0d;
        try {
            Metric metric = Metric.builder()
                    .metricName("ResourceCount")
                    .namespace("AWS/Usage")
                    .dimensions(Arrays.asList(
                            Dimension.builder().name("Type").value("Resource").build(),
                            Dimension.builder().name("Resource").value("vCPU").build(),
                            Dimension.builder().name("Service").value("EC2").build(),
                            Dimension.builder().name("Class").value("Standard/OnDemand").build()
                    ))
                    .build();

            MetricStat metricStat = MetricStat.builder()
                    .stat("Maximum")
                    .period(600)
                    .metric(metric)
                    .build();

            MetricDataQuery dataQuery = MetricDataQuery.builder()
                    .metricStat(metricStat)
                    .id("vcpu")
                    .returnData(true)
                    .build();

            Instant end = Instant.now();
            Instant start = end.minus(600, ChronoUnit.SECONDS);

            long startTime = System.currentTimeMillis();
            GetMetricDataRequest getMetricDataRequest = GetMetricDataRequest.builder()
                    .maxDatapoints(10000)
                    .startTime(start)
                    .endTime(end)
                    .metricDataQueries(Arrays.asList(dataQuery))
                    .build();

            GetMetricDataResponse response = cloudWatch.getMetricData(getMetricDataRequest);
            for (MetricDataResult item : response.metricDataResults()) {
                //get the last value as it is the most current
                if (!item.values().isEmpty()) {
                    count = item.values().get(item.values().size() - 1);
                    break;
                }
            }
            LOGGER.info("Time to process: " + (System.currentTimeMillis() - startTime));
        } catch (CloudWatchException cloudWatchError) {
            LOGGER.error("cloudwatch::GetMetricData", cloudWatchError);
            LOGGER.error(Utils.getFullStackTrace(cloudWatchError));
            throw cloudWatchError;
        }
        return count;
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



