async performLimitCheck()

in source/lambda/services/servicequotaschecks/lib/service-quotas-checks.js [298:332]


    async performLimitCheck(checkName, service,params_limits,params_usage,valid_regions) {
        try {
            let serviceLimitPromise = this.getServiceLimits(checkName, params_limits, valid_regions);
            let serviceUsagePromise = this.getServiceUsage(checkName, params_usage, valid_regions);
            let serviceLimit = await serviceLimitPromise;
            let serviceUsage = await serviceUsagePromise;
            let serviceUsageMap = serviceUsage[checkName];
            let serviceLimitMap = serviceLimit[checkName];
            for(let region in serviceUsageMap) {
                let currentRegion = region;
                LOGGER.log('DEBUG', 'current region ' + JSON.stringify(currentRegion))
                let currentServiceLimit = serviceLimitMap[currentRegion];
                LOGGER.log('DEBUG', 'currentServiceLimit ' + JSON.stringify(currentServiceLimit))
                let currentUsage = serviceUsageMap[currentRegion];
                LOGGER.log('DEBUG', 'currentUsage  ' + JSON.stringify(currentUsage))
                if (currentUsage >= currentServiceLimit) { 
                    try {
                        await this.pushEventToEventbridge(checkName, "RED", currentUsage, currentRegion, service, "ERROR", currentServiceLimit);
                    }catch(err){
                        LOGGER.log('ERROR', err);
                    }
                }else if (currentUsage >= process.env.LIMIT_THRESHOLD * currentServiceLimit) {
                    try{
                        await this.pushEventToEventbridge(checkName, "YELLOW", currentUsage, currentRegion, service, "WARN", currentServiceLimit);
                    }catch(err){
                        LOGGER.log('ERROR', err);
                    }
                }else {
                    LOGGER.log("DEBUG", `checkName: ${checkName}`);
                }
            }
        } catch (err) {
            LOGGER.log('ERROR', err);
        }
    };