UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

44 lines (43 loc) 2.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class DynamoDBTablesCapacitiesAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const allTablesDetails = params.tables_details; if (!allTablesDetails) { return undefined; } const tables_capacities = { type: types_1.CheckAnalysisType.PerformanceEfficiency }; tables_capacities.what = "Are you reviewing DynamoDB table capacities regularly?"; tables_capacities.why = `DynamoDB table capacities effect both performance and cost so we need to review them regularly`; tables_capacities.recommendation = "Recommended to review DynamoDB table capacities at least once in a month"; tables_capacities.benchmark = ['all']; const allRegionsAnalysis = {}; for (const region in allTablesDetails) { const regionTablesDetails = allTablesDetails[region]; allRegionsAnalysis[region] = []; for (const table of regionTablesDetails) { const tableStatusAnalysis = {}; tableStatusAnalysis.resource = { capacities: table.ProvisionedThroughput, tableName: table.TableName, }; tableStatusAnalysis.resourceSummary = { name: "Table", value: table.TableName, }; tableStatusAnalysis.severity = types_1.SeverityStatus.Info; tableStatusAnalysis.message = `Read: ${table.ProvisionedThroughput.ReadCapacityUnits}, Write: ${table.ProvisionedThroughput.WriteCapacityUnits}`; tableStatusAnalysis.action = "Review once in every month"; allRegionsAnalysis[region].push(tableStatusAnalysis); } } tables_capacities.regions = allRegionsAnalysis; return { tables_capacities }; } } exports.DynamoDBTablesCapacitiesAnalyzer = DynamoDBTablesCapacitiesAnalyzer;