cloud-report
Version:
Collects and analyzes cloud resources
57 lines (56 loc) • 2.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("../../../types");
const base_1 = require("../../base");
class DashboardsUsageAnalyzer extends base_1.BaseAnalyzer {
analyze(params, fullReport) {
const allDashboards = params.dashboards;
if (!allDashboards) {
return undefined;
}
const dashboards_used = { type: types_1.CheckAnalysisType.OperationalExcellence };
dashboards_used.what = "Are CloudWatch Dashboards being used?";
dashboards_used.why = `We need to monitor our applications and infrastructure with various metrics and
dashboards help us to quickly glance at these graphs`;
dashboards_used.recommendation = `Recommended to use dashboards for various important
metrics such as Errors, Latency and CPU Utilization etc`;
dashboards_used.benchmark = ['all'];
const allRegionsAnalysis = {};
for (const region in allDashboards) {
const regionDashboards = allDashboards[region];
allRegionsAnalysis[region] = [];
const dashboardAnalysis = {};
if (regionDashboards && regionDashboards.length) {
dashboardAnalysis.resource = regionDashboards;
dashboardAnalysis.resourceSummary = {
name: "Dashboards",
value: this.getDashboardNames(regionDashboards).join(", "),
};
dashboardAnalysis.severity = types_1.SeverityStatus.Good;
dashboardAnalysis.message = "Dashboards are being used";
}
else {
dashboardAnalysis.resource = {};
dashboardAnalysis.resourceSummary = {
name: "Dashboards",
value: "None",
};
dashboardAnalysis.severity = types_1.SeverityStatus.Warning;
dashboardAnalysis.message = "Dashboards are not being used";
dashboardAnalysis.action = "Create dashboards for various performance metrics";
}
allRegionsAnalysis[region].push(dashboardAnalysis);
}
dashboards_used.regions = allRegionsAnalysis;
return { dashboards_used };
}
getDashboardNames(dashboards) {
if (!dashboards) {
return [];
}
return dashboards.map((dashboard) => {
return dashboard.DashboardName;
});
}
}
exports.DashboardsUsageAnalyzer = DashboardsUsageAnalyzer;