UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

57 lines (56 loc) 2.6 kB
"use strict"; 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;