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);
}
};