cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
65 lines • 8.6 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ErrorAlarmFactory = exports.ErrorType = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
var ErrorType;
(function (ErrorType) {
ErrorType["FAULT"] = "Fault";
ErrorType["ERROR"] = "Error";
ErrorType["SYSTEM_ERROR"] = "SystemError";
ErrorType["USER_ERROR"] = "UserError";
ErrorType["FAILURE"] = "Failure";
ErrorType["ABORTED"] = "Aborted";
ErrorType["THROTTLED"] = "Throttled";
ErrorType["TIMED_OUT"] = "TimedOut";
ErrorType["READ_ERROR"] = "ReadError";
ErrorType["WRITE_ERROR"] = "WriteError";
ErrorType["EXPIRED"] = "Expired";
ErrorType["KILLED"] = "Killed";
ErrorType["BLOCKED"] = "Blocked";
})(ErrorType || (exports.ErrorType = ErrorType = {}));
class ErrorAlarmFactory {
constructor(alarmFactory) {
this.alarmFactory = alarmFactory;
}
addErrorCountAlarm(metric, errorType, props, disambiguator) {
const alarmNameSuffix = `${errorType}-Count`;
return this.alarmFactory.addAlarm(metric, {
treatMissingData: props.treatMissingDataOverride ?? aws_cloudwatch_1.TreatMissingData.NOT_BREACHING,
comparisonOperator: props.comparisonOperatorOverride ??
aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD,
...props,
disambiguator,
threshold: props.maxErrorCount,
alarmNameSuffix,
// we will dedupe any kind of error to the same ticket
alarmDedupeStringSuffix: this.alarmFactory.shouldUseDefaultDedupeForError
? "AnyError"
: alarmNameSuffix,
alarmDescription: `${errorType} count is too high.`,
});
}
addErrorRateAlarm(metric, errorType, props, disambiguator) {
const alarmNameSuffix = `${errorType}-Rate`;
return this.alarmFactory.addAlarm(metric, {
treatMissingData: props.treatMissingDataOverride ?? aws_cloudwatch_1.TreatMissingData.NOT_BREACHING,
comparisonOperator: props.comparisonOperatorOverride ??
aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD,
...props,
disambiguator,
threshold: props.maxErrorRate,
alarmNameSuffix,
// we will dedupe any kind of error to the same ticket
alarmDedupeStringSuffix: this.alarmFactory.shouldUseDefaultDedupeForError
? "AnyError"
: alarmNameSuffix,
alarmDescription: `${errorType} rate is too high.`,
});
}
}
exports.ErrorAlarmFactory = ErrorAlarmFactory;
_a = JSII_RTTI_SYMBOL_1;
ErrorAlarmFactory[_a] = { fqn: "cdk-monitoring-constructs.ErrorAlarmFactory", version: "10.0.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JBbGFybUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJFcnJvckFsYXJtRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtEQUdvQztBQUtwQyxJQUFZLFNBY1g7QUFkRCxXQUFZLFNBQVM7SUFDbkIsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7SUFDZix5Q0FBNEIsQ0FBQTtJQUM1QixxQ0FBd0IsQ0FBQTtJQUN4QixnQ0FBbUIsQ0FBQTtJQUNuQixnQ0FBbUIsQ0FBQTtJQUNuQixvQ0FBdUIsQ0FBQTtJQUN2QixtQ0FBc0IsQ0FBQTtJQUN0QixxQ0FBd0IsQ0FBQTtJQUN4Qix1Q0FBMEIsQ0FBQTtJQUMxQixnQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBaUIsQ0FBQTtJQUNqQixnQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBZFcsU0FBUyx5QkFBVCxTQUFTLFFBY3BCO0FBVUQsTUFBYSxpQkFBaUI7SUFHNUIsWUFBWSxZQUEwQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsa0JBQWtCLENBQ2hCLE1BQThCLEVBQzlCLFNBQTZCLEVBQzdCLEtBQTBCLEVBQzFCLGFBQXNCO1FBRXRCLE1BQU0sZUFBZSxHQUFHLEdBQUcsU0FBUyxRQUFRLENBQUM7UUFFN0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDeEMsZ0JBQWdCLEVBQ2QsS0FBSyxDQUFDLHdCQUF3QixJQUFJLGlDQUFnQixDQUFDLGFBQWE7WUFDbEUsa0JBQWtCLEVBQ2hCLEtBQUssQ0FBQywwQkFBMEI7Z0JBQ2hDLG1DQUFrQixDQUFDLHNCQUFzQjtZQUMzQyxHQUFHLEtBQUs7WUFDUixhQUFhO1lBQ2IsU0FBUyxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQzlCLGVBQWU7WUFDZixzREFBc0Q7WUFDdEQsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyw4QkFBOEI7Z0JBQ3ZFLENBQUMsQ0FBQyxVQUFVO2dCQUNaLENBQUMsQ0FBQyxlQUFlO1lBQ25CLGdCQUFnQixFQUFFLEdBQUcsU0FBUyxxQkFBcUI7U0FDcEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUNmLE1BQThCLEVBQzlCLFNBQTZCLEVBQzdCLEtBQXlCLEVBQ3pCLGFBQXNCO1FBRXRCLE1BQU0sZUFBZSxHQUFHLEdBQUcsU0FBUyxPQUFPLENBQUM7UUFFNUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDeEMsZ0JBQWdCLEVBQ2QsS0FBSyxDQUFDLHdCQUF3QixJQUFJLGlDQUFnQixDQUFDLGFBQWE7WUFDbEUsa0JBQWtCLEVBQ2hCLEtBQUssQ0FBQywwQkFBMEI7Z0JBQ2hDLG1DQUFrQixDQUFDLHNCQUFzQjtZQUMzQyxHQUFHLEtBQUs7WUFDUixhQUFhO1lBQ2IsU0FBUyxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQzdCLGVBQWU7WUFDZixzREFBc0Q7WUFDdEQsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyw4QkFBOEI7Z0JBQ3ZFLENBQUMsQ0FBQyxVQUFVO2dCQUNaLENBQUMsQ0FBQyxlQUFlO1lBQ25CLGdCQUFnQixFQUFFLEdBQUcsU0FBUyxvQkFBb0I7U0FDbkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF6REgsOENBMERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcGFyaXNvbk9wZXJhdG9yLFxuICBUcmVhdE1pc3NpbmdEYXRhLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcblxuaW1wb3J0IHsgQWxhcm1GYWN0b3J5LCBDdXN0b21BbGFybVRocmVzaG9sZCB9IGZyb20gXCIuLi8uLi9hbGFybVwiO1xuaW1wb3J0IHsgTWV0cmljV2l0aEFsYXJtU3VwcG9ydCB9IGZyb20gXCIuLi8uLi9tZXRyaWNcIjtcblxuZXhwb3J0IGVudW0gRXJyb3JUeXBlIHtcbiAgRkFVTFQgPSBcIkZhdWx0XCIsXG4gIEVSUk9SID0gXCJFcnJvclwiLFxuICBTWVNURU1fRVJST1IgPSBcIlN5c3RlbUVycm9yXCIsXG4gIFVTRVJfRVJST1IgPSBcIlVzZXJFcnJvclwiLFxuICBGQUlMVVJFID0gXCJGYWlsdXJlXCIsXG4gIEFCT1JURUQgPSBcIkFib3J0ZWRcIixcbiAgVEhST1RUTEVEID0gXCJUaHJvdHRsZWRcIixcbiAgVElNRURfT1VUID0gXCJUaW1lZE91dFwiLFxuICBSRUFEX0VSUk9SID0gXCJSZWFkRXJyb3JcIixcbiAgV1JJVEVfRVJST1IgPSBcIldyaXRlRXJyb3JcIixcbiAgRVhQSVJFRCA9IFwiRXhwaXJlZFwiLFxuICBLSUxMRUQgPSBcIktpbGxlZFwiLFxuICBCTE9DS0VEID0gXCJCbG9ja2VkXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JDb3VudFRocmVzaG9sZCBleHRlbmRzIEN1c3RvbUFsYXJtVGhyZXNob2xkIHtcbiAgcmVhZG9ubHkgbWF4RXJyb3JDb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yUmF0ZVRocmVzaG9sZCBleHRlbmRzIEN1c3RvbUFsYXJtVGhyZXNob2xkIHtcbiAgcmVhZG9ubHkgbWF4RXJyb3JSYXRlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvckFsYXJtRmFjdG9yeSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBhbGFybUZhY3Rvcnk6IEFsYXJtRmFjdG9yeTtcblxuICBjb25zdHJ1Y3RvcihhbGFybUZhY3Rvcnk6IEFsYXJtRmFjdG9yeSkge1xuICAgIHRoaXMuYWxhcm1GYWN0b3J5ID0gYWxhcm1GYWN0b3J5O1xuICB9XG5cbiAgYWRkRXJyb3JDb3VudEFsYXJtKFxuICAgIG1ldHJpYzogTWV0cmljV2l0aEFsYXJtU3VwcG9ydCxcbiAgICBlcnJvclR5cGU6IEVycm9yVHlwZSB8IHN0cmluZyxcbiAgICBwcm9wczogRXJyb3JDb3VudFRocmVzaG9sZCxcbiAgICBkaXNhbWJpZ3VhdG9yPzogc3RyaW5nLFxuICApIHtcbiAgICBjb25zdCBhbGFybU5hbWVTdWZmaXggPSBgJHtlcnJvclR5cGV9LUNvdW50YDtcblxuICAgIHJldHVybiB0aGlzLmFsYXJtRmFjdG9yeS5hZGRBbGFybShtZXRyaWMsIHtcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6XG4gICAgICAgIHByb3BzLnRyZWF0TWlzc2luZ0RhdGFPdmVycmlkZSA/PyBUcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6XG4gICAgICAgIHByb3BzLmNvbXBhcmlzb25PcGVyYXRvck92ZXJyaWRlID8/XG4gICAgICAgIENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBkaXNhbWJpZ3VhdG9yLFxuICAgICAgdGhyZXNob2xkOiBwcm9wcy5tYXhFcnJvckNvdW50LFxuICAgICAgYWxhcm1OYW1lU3VmZml4LFxuICAgICAgLy8gd2Ugd2lsbCBkZWR1cGUgYW55IGtpbmQgb2YgZXJyb3IgdG8gdGhlIHNhbWUgdGlja2V0XG4gICAgICBhbGFybURlZHVwZVN0cmluZ1N1ZmZpeDogdGhpcy5hbGFybUZhY3Rvcnkuc2hvdWxkVXNlRGVmYXVsdERlZHVwZUZvckVycm9yXG4gICAgICAgID8gXCJBbnlFcnJvclwiXG4gICAgICAgIDogYWxhcm1OYW1lU3VmZml4LFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYCR7ZXJyb3JUeXBlfSBjb3VudCBpcyB0b28gaGlnaC5gLFxuICAgIH0pO1xuICB9XG5cbiAgYWRkRXJyb3JSYXRlQWxhcm0oXG4gICAgbWV0cmljOiBNZXRyaWNXaXRoQWxhcm1TdXBwb3J0LFxuICAgIGVycm9yVHlwZTogRXJyb3JUeXBlIHwgc3RyaW5nLFxuICAgIHByb3BzOiBFcnJvclJhdGVUaHJlc2hvbGQsXG4gICAgZGlzYW1iaWd1YXRvcj86IHN0cmluZyxcbiAgKSB7XG4gICAgY29uc3QgYWxhcm1OYW1lU3VmZml4ID0gYCR7ZXJyb3JUeXBlfS1SYXRlYDtcblxuICAgIHJldHVybiB0aGlzLmFsYXJtRmFjdG9yeS5hZGRBbGFybShtZXRyaWMsIHtcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6XG4gICAgICAgIHByb3BzLnRyZWF0TWlzc2luZ0RhdGFPdmVycmlkZSA/PyBUcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6XG4gICAgICAgIHByb3BzLmNvbXBhcmlzb25PcGVyYXRvck92ZXJyaWRlID8/XG4gICAgICAgIENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBkaXNhbWJpZ3VhdG9yLFxuICAgICAgdGhyZXNob2xkOiBwcm9wcy5tYXhFcnJvclJhdGUsXG4gICAgICBhbGFybU5hbWVTdWZmaXgsXG4gICAgICAvLyB3ZSB3aWxsIGRlZHVwZSBhbnkga2luZCBvZiBlcnJvciB0byB0aGUgc2FtZSB0aWNrZXRcbiAgICAgIGFsYXJtRGVkdXBlU3RyaW5nU3VmZml4OiB0aGlzLmFsYXJtRmFjdG9yeS5zaG91bGRVc2VEZWZhdWx0RGVkdXBlRm9yRXJyb3JcbiAgICAgICAgPyBcIkFueUVycm9yXCJcbiAgICAgICAgOiBhbGFybU5hbWVTdWZmaXgsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgJHtlcnJvclR5cGV9IHJhdGUgaXMgdG9vIGhpZ2guYCxcbiAgICB9KTtcbiAgfVxufVxuIl19