UNPKG

cost-monitoring-construct

Version:

A CDK construct that helps track applications' costs separately and receive alerts in case of unpredicted resource usage

44 lines 5.9 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.AccountCostMonitoring = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const budget_1 = require("./budget"); const budget_strategy_1 = require("./budget-strategy"); const utils_1 = require("./utils"); class AccountCostMonitoring extends budget_strategy_1.IBudgetStrategy { createDailyBudgets(dailyLimit, subscribers) { new budget_1.Budget(this.stack, `account_daily_${dailyLimit}_%80_alert`, { limit: dailyLimit, subscribers: subscribers, alertContdition: { threshold: 80, period: utils_1.TimeUnit.DAILY, }, }).clone(`account_daily_${dailyLimit}_%100_alert`, { alertContdition: { threshold: 100 }, }); } createMonthlyBudgets(monthlyLimit, subscribers) { new budget_1.Budget(this.stack, `account_monthly_${monthlyLimit}`, { limit: monthlyLimit, subscribers: subscribers, alertContdition: { period: utils_1.TimeUnit.MONTHLY, threshold: 100, }, }) .clone(`account_monthly_${monthlyLimit * 2}`, { limit: monthlyLimit * 2 }) .clone(`account_monthly_${monthlyLimit * 3}`, { limit: monthlyLimit * 3 }) .clone(`account_monthly_${monthlyLimit * 4}`, { limit: monthlyLimit * 4 }) .clone(`account_monthly_${monthlyLimit * 10}`, { limit: monthlyLimit * 10, }); } createQuarterlyBudgets(_quarterlyLimit, _subscribers) { } createYearlyBudgets(_yearlyLimit, _subscribers) { } } exports.AccountCostMonitoring = AccountCostMonitoring; _a = JSII_RTTI_SYMBOL_1; AccountCostMonitoring[_a] = { fqn: "cost-monitoring-construct.AccountCostMonitoring", version: "1.2.3" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1jb3N0LW1vbml0b3JpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWNjb3VudC1jb3N0LW1vbml0b3JpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxxQ0FBa0M7QUFDbEMsdURBQW9EO0FBQ3BELG1DQUFtQztBQUVuQyxNQUFhLHFCQUFzQixTQUFRLGlDQUFlO0lBQzlDLGtCQUFrQixDQUMxQixVQUFrQixFQUNsQixXQUF3RDtRQUV4RCxJQUFJLGVBQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGlCQUFpQixVQUFVLFlBQVksRUFBRTtZQUM5RCxLQUFLLEVBQUUsVUFBVTtZQUNqQixXQUFXLEVBQUUsV0FBVztZQUN4QixlQUFlLEVBQUU7Z0JBQ2YsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsTUFBTSxFQUFFLGdCQUFRLENBQUMsS0FBSzthQUN2QjtTQUNGLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLFVBQVUsYUFBYSxFQUFFO1lBQ2pELGVBQWUsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUU7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLG9CQUFvQixDQUM1QixZQUFvQixFQUNwQixXQUF3RDtRQUV4RCxJQUFJLGVBQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLG1CQUFtQixZQUFZLEVBQUUsRUFBRTtZQUN4RCxLQUFLLEVBQUUsWUFBWTtZQUNuQixXQUFXLEVBQUUsV0FBVztZQUN4QixlQUFlLEVBQUU7Z0JBQ2YsTUFBTSxFQUFFLGdCQUFRLENBQUMsT0FBTztnQkFDeEIsU0FBUyxFQUFFLEdBQUc7YUFDZjtTQUNGLENBQUM7YUFDQyxLQUFLLENBQUMsbUJBQW1CLFlBQVksR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDekUsS0FBSyxDQUFDLG1CQUFtQixZQUFZLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO2FBQ3pFLEtBQUssQ0FBQyxtQkFBbUIsWUFBWSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFlBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQzthQUN6RSxLQUFLLENBQUMsbUJBQW1CLFlBQVksR0FBRyxFQUFFLEVBQUUsRUFBRTtZQUM3QyxLQUFLLEVBQUUsWUFBWSxHQUFHLEVBQUU7U0FDekIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVTLHNCQUFzQixDQUM5QixlQUF1QixFQUN2QixZQUFvRCxJQUM3QyxDQUFDO0lBQ0EsbUJBQW1CLENBQzNCLFlBQW9CLEVBQ3BCLFlBQW9ELElBQzdDLENBQUM7O0FBNUNaLHNEQTZDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c19idWRnZXRzIGFzIGJ1ZGdldHMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEJ1ZGdldCB9IGZyb20gXCIuL2J1ZGdldFwiO1xuaW1wb3J0IHsgSUJ1ZGdldFN0cmF0ZWd5IH0gZnJvbSBcIi4vYnVkZ2V0LXN0cmF0ZWd5XCI7XG5pbXBvcnQgeyBUaW1lVW5pdCB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50Q29zdE1vbml0b3JpbmcgZXh0ZW5kcyBJQnVkZ2V0U3RyYXRlZ3kge1xuICBwcm90ZWN0ZWQgY3JlYXRlRGFpbHlCdWRnZXRzKFxuICAgIGRhaWx5TGltaXQ6IG51bWJlcixcbiAgICBzdWJzY3JpYmVyczogQXJyYXk8YnVkZ2V0cy5DZm5CdWRnZXQuU3Vic2NyaWJlclByb3BlcnR5PlxuICApOiB2b2lkIHtcbiAgICBuZXcgQnVkZ2V0KHRoaXMuc3RhY2ssIGBhY2NvdW50X2RhaWx5XyR7ZGFpbHlMaW1pdH1fJTgwX2FsZXJ0YCwge1xuICAgICAgbGltaXQ6IGRhaWx5TGltaXQsXG4gICAgICBzdWJzY3JpYmVyczogc3Vic2NyaWJlcnMsXG4gICAgICBhbGVydENvbnRkaXRpb246IHtcbiAgICAgICAgdGhyZXNob2xkOiA4MCxcbiAgICAgICAgcGVyaW9kOiBUaW1lVW5pdC5EQUlMWSxcbiAgICAgIH0sXG4gICAgfSkuY2xvbmUoYGFjY291bnRfZGFpbHlfJHtkYWlseUxpbWl0fV8lMTAwX2FsZXJ0YCwge1xuICAgICAgYWxlcnRDb250ZGl0aW9uOiB7IHRocmVzaG9sZDogMTAwIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlTW9udGhseUJ1ZGdldHMoXG4gICAgbW9udGhseUxpbWl0OiBudW1iZXIsXG4gICAgc3Vic2NyaWJlcnM6IEFycmF5PGJ1ZGdldHMuQ2ZuQnVkZ2V0LlN1YnNjcmliZXJQcm9wZXJ0eT5cbiAgKTogdm9pZCB7XG4gICAgbmV3IEJ1ZGdldCh0aGlzLnN0YWNrLCBgYWNjb3VudF9tb250aGx5XyR7bW9udGhseUxpbWl0fWAsIHtcbiAgICAgIGxpbWl0OiBtb250aGx5TGltaXQsXG4gICAgICBzdWJzY3JpYmVyczogc3Vic2NyaWJlcnMsXG4gICAgICBhbGVydENvbnRkaXRpb246IHtcbiAgICAgICAgcGVyaW9kOiBUaW1lVW5pdC5NT05USExZLFxuICAgICAgICB0aHJlc2hvbGQ6IDEwMCxcbiAgICAgIH0sXG4gICAgfSlcbiAgICAgIC5jbG9uZShgYWNjb3VudF9tb250aGx5XyR7bW9udGhseUxpbWl0ICogMn1gLCB7IGxpbWl0OiBtb250aGx5TGltaXQgKiAyIH0pXG4gICAgICAuY2xvbmUoYGFjY291bnRfbW9udGhseV8ke21vbnRobHlMaW1pdCAqIDN9YCwgeyBsaW1pdDogbW9udGhseUxpbWl0ICogMyB9KVxuICAgICAgLmNsb25lKGBhY2NvdW50X21vbnRobHlfJHttb250aGx5TGltaXQgKiA0fWAsIHsgbGltaXQ6IG1vbnRobHlMaW1pdCAqIDQgfSlcbiAgICAgIC5jbG9uZShgYWNjb3VudF9tb250aGx5XyR7bW9udGhseUxpbWl0ICogMTB9YCwge1xuICAgICAgICBsaW1pdDogbW9udGhseUxpbWl0ICogMTAsXG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVRdWFydGVybHlCdWRnZXRzKFxuICAgIF9xdWFydGVybHlMaW1pdDogbnVtYmVyLFxuICAgIF9zdWJzY3JpYmVyczogYnVkZ2V0cy5DZm5CdWRnZXQuU3Vic2NyaWJlclByb3BlcnR5W11cbiAgKTogdm9pZCB7fVxuICBwcm90ZWN0ZWQgY3JlYXRlWWVhcmx5QnVkZ2V0cyhcbiAgICBfeWVhcmx5TGltaXQ6IG51bWJlcixcbiAgICBfc3Vic2NyaWJlcnM6IGJ1ZGdldHMuQ2ZuQnVkZ2V0LlN1YnNjcmliZXJQcm9wZXJ0eVtdXG4gICk6IHZvaWQge31cbn1cbiJdfQ==