UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

52 lines (51 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const aws_1 = require("../../../utils/aws"); const base_1 = require("../../base"); const metrics_1 = require("./metrics"); class MetricCollector extends base_1.BaseCollector { constructor() { super(...arguments); this.context = {}; } getContext() { return this.context; } collect(callback) { return this.checkAlarmForMetrics(); } async checkAlarmForMetrics() { const self = this; const serviceName = "CloudWatch"; const CloudWatchRegions = self.getRegions(serviceName); const metrics = {}; for (const region of CloudWatchRegions) { try { const CloudWatchService = self.getClient(serviceName, region); metrics[region] = []; this.context[region] = region; for (const eachMetric of metrics_1.DefinedMetrics) { let params = { MetricName: eachMetric.metricName, Namespace: eachMetric.nameSpace }; let metricInfo = params; const alarmsResponse = await CloudWatchService.describeAlarmsForMetric(params).promise(); if (alarmsResponse.MetricAlarms) { metricInfo['data'] = alarmsResponse.MetricAlarms; } else { metricInfo['data'] = []; } metrics[region] = metrics[region].concat(metricInfo); } } catch (error) { aws_1.AWSErrorHandler.handle(error); continue; } } return { metrics }; } } exports.MetricCollector = MetricCollector;