cloud-report
Version:
Collects and analyzes cloud resources
44 lines (43 loc) • 2.17 kB
JavaScript
;
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;