cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
77 lines • 9.7 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AlarmNamingStrategy = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const IAlarmDedupeStringProcessor_1 = require("./IAlarmDedupeStringProcessor");
const AlarmNamePartSeparator = "-";
const AlarmLabelPartSeparator = " ";
class AlarmNamingStrategy {
constructor(globalPrefix, localPrefix, dedupeStringStrategy) {
this.globalPrefix = globalPrefix;
this.localPrefix = localPrefix;
this.dedupeStringStrategy =
dedupeStringStrategy ?? new IAlarmDedupeStringProcessor_1.DoNotModifyDedupeString();
}
/**
* Alarm name is resolved like this:
* - If "alarmNameOverride" is defined for an alarm, it will be used as alarm name.
* - Otherwise, the alarm name will be generated by joining: global prefix, local prefix, alarm name suffix, disambiguator.
*
* @param props properties
*/
getName(props) {
if (props.alarmNameOverride) {
return props.alarmNameOverride;
}
const parts = [
this.globalPrefix,
this.localPrefix,
props.alarmNameSuffix,
];
if (props.disambiguator) {
parts.push(props.disambiguator);
}
return this.joinDistinct(parts, AlarmNamePartSeparator);
}
getWidgetLabel(props) {
// not using global prefix to make the label shorter
const parts = [this.localPrefix, props.alarmNameSuffix];
if (props.disambiguator) {
parts.push(props.disambiguator);
}
return this.joinDistinct(parts, AlarmLabelPartSeparator);
}
/**
* Dedupe string resolved like this:
* - If "dedupeStringOverride" is defined for an alarm, it will be used as a dedupe string.
* - If "alarmDedupeStringSuffix" from the alarm factory is defined, "GlobalPrefix-LocalPrefix-AlarmDedupeStringSuffix" will be used as a dedupe string.
* - Otherwise, the alarm dedupe string will not be set.
* If a dedupe string strategy is set, it will be used to process the final string.
*
* @param props properties
*/
getDedupeString(props) {
if (props.dedupeStringOverride) {
return this.dedupeStringStrategy.processDedupeStringOverride(props.dedupeStringOverride);
}
if (props.alarmDedupeStringSuffix) {
// not using disambiguator here as we are still alarming on the same thing
const parts = [
this.globalPrefix,
this.localPrefix,
props.alarmDedupeStringSuffix,
];
const dedupeString = this.joinDistinct(parts, AlarmNamePartSeparator);
return this.dedupeStringStrategy.processDedupeString(dedupeString);
}
return undefined;
}
joinDistinct(parts, separator) {
return parts.filter((x, i, a) => a.indexOf(x) == i).join(separator);
}
}
exports.AlarmNamingStrategy = AlarmNamingStrategy;
_a = JSII_RTTI_SYMBOL_1;
AlarmNamingStrategy[_a] = { fqn: "cdk-monitoring-constructs.AlarmNamingStrategy", version: "9.7.1" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWxhcm1OYW1pbmdTdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkFsYXJtTmFtaW5nU3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrRUFHdUM7QUFHdkMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUM7QUFDbkMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFFcEMsTUFBYSxtQkFBbUI7SUFLOUIsWUFDRSxZQUFvQixFQUNwQixXQUFtQixFQUNuQixvQkFBa0Q7UUFFbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLG9CQUFvQjtZQUN2QixvQkFBb0IsSUFBSSxJQUFJLHFEQUF1QixFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxLQUF1QjtRQUM3QixJQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztTQUNoQztRQUVELE1BQU0sS0FBSyxHQUFhO1lBQ3RCLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxXQUFXO1lBQ2hCLEtBQUssQ0FBQyxlQUFlO1NBQ3RCLENBQUM7UUFFRixJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUU7WUFDdkIsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDakM7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLHNCQUFzQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUF1QjtRQUNwQyxvREFBb0Q7UUFDcEQsTUFBTSxLQUFLLEdBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVsRSxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUU7WUFDdkIsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDakM7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsZUFBZSxDQUFDLEtBQXVCO1FBQ3JDLElBQUksS0FBSyxDQUFDLG9CQUFvQixFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLDJCQUEyQixDQUMxRCxLQUFLLENBQUMsb0JBQW9CLENBQzNCLENBQUM7U0FDSDtRQUVELElBQUksS0FBSyxDQUFDLHVCQUF1QixFQUFFO1lBQ2pDLDBFQUEwRTtZQUMxRSxNQUFNLEtBQUssR0FBRztnQkFDWixJQUFJLENBQUMsWUFBWTtnQkFDakIsSUFBSSxDQUFDLFdBQVc7Z0JBQ2hCLEtBQUssQ0FBQyx1QkFBdUI7YUFDOUIsQ0FBQztZQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLHNCQUFzQixDQUFDLENBQUM7WUFDdEUsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDcEU7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRVMsWUFBWSxDQUFDLEtBQWUsRUFBRSxTQUFpQjtRQUN2RCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEUsQ0FBQzs7QUFwRkgsa0RBcUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRG9Ob3RNb2RpZnlEZWR1cGVTdHJpbmcsXG4gIElBbGFybURlZHVwZVN0cmluZ1Byb2Nlc3Nvcixcbn0gZnJvbSBcIi4vSUFsYXJtRGVkdXBlU3RyaW5nUHJvY2Vzc29yXCI7XG5pbXBvcnQgeyBBbGFybU5hbWluZ0lucHV0LCBJQWxhcm1OYW1pbmdTdHJhdGVneSB9IGZyb20gXCIuL0lBbGFybU5hbWluZ1N0cmF0ZWd5XCI7XG5cbmNvbnN0IEFsYXJtTmFtZVBhcnRTZXBhcmF0b3IgPSBcIi1cIjtcbmNvbnN0IEFsYXJtTGFiZWxQYXJ0U2VwYXJhdG9yID0gXCIgXCI7XG5cbmV4cG9ydCBjbGFzcyBBbGFybU5hbWluZ1N0cmF0ZWd5IGltcGxlbWVudHMgSUFsYXJtTmFtaW5nU3RyYXRlZ3kge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2xvYmFsUHJlZml4OiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBsb2NhbFByZWZpeDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVkdXBlU3RyaW5nU3RyYXRlZ3k6IElBbGFybURlZHVwZVN0cmluZ1Byb2Nlc3NvcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBnbG9iYWxQcmVmaXg6IHN0cmluZyxcbiAgICBsb2NhbFByZWZpeDogc3RyaW5nLFxuICAgIGRlZHVwZVN0cmluZ1N0cmF0ZWd5PzogSUFsYXJtRGVkdXBlU3RyaW5nUHJvY2Vzc29yLFxuICApIHtcbiAgICB0aGlzLmdsb2JhbFByZWZpeCA9IGdsb2JhbFByZWZpeDtcbiAgICB0aGlzLmxvY2FsUHJlZml4ID0gbG9jYWxQcmVmaXg7XG4gICAgdGhpcy5kZWR1cGVTdHJpbmdTdHJhdGVneSA9XG4gICAgICBkZWR1cGVTdHJpbmdTdHJhdGVneSA/PyBuZXcgRG9Ob3RNb2RpZnlEZWR1cGVTdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGFybSBuYW1lIGlzIHJlc29sdmVkIGxpa2UgdGhpczpcbiAgICogLSBJZiBcImFsYXJtTmFtZU92ZXJyaWRlXCIgaXMgZGVmaW5lZCBmb3IgYW4gYWxhcm0sIGl0IHdpbGwgYmUgdXNlZCBhcyBhbGFybSBuYW1lLlxuICAgKiAtIE90aGVyd2lzZSwgdGhlIGFsYXJtIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgam9pbmluZzogZ2xvYmFsIHByZWZpeCwgbG9jYWwgcHJlZml4LCBhbGFybSBuYW1lIHN1ZmZpeCwgZGlzYW1iaWd1YXRvci5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHByb3BlcnRpZXNcbiAgICovXG4gIGdldE5hbWUocHJvcHM6IEFsYXJtTmFtaW5nSW5wdXQpIHtcbiAgICBpZiAocHJvcHMuYWxhcm1OYW1lT3ZlcnJpZGUpIHtcbiAgICAgIHJldHVybiBwcm9wcy5hbGFybU5hbWVPdmVycmlkZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXG4gICAgICB0aGlzLmdsb2JhbFByZWZpeCxcbiAgICAgIHRoaXMubG9jYWxQcmVmaXgsXG4gICAgICBwcm9wcy5hbGFybU5hbWVTdWZmaXgsXG4gICAgXTtcblxuICAgIGlmIChwcm9wcy5kaXNhbWJpZ3VhdG9yKSB7XG4gICAgICBwYXJ0cy5wdXNoKHByb3BzLmRpc2FtYmlndWF0b3IpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmpvaW5EaXN0aW5jdChwYXJ0cywgQWxhcm1OYW1lUGFydFNlcGFyYXRvcik7XG4gIH1cblxuICBnZXRXaWRnZXRMYWJlbChwcm9wczogQWxhcm1OYW1pbmdJbnB1dCkge1xuICAgIC8vIG5vdCB1c2luZyBnbG9iYWwgcHJlZml4IHRvIG1ha2UgdGhlIGxhYmVsIHNob3J0ZXJcbiAgICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbdGhpcy5sb2NhbFByZWZpeCwgcHJvcHMuYWxhcm1OYW1lU3VmZml4XTtcblxuICAgIGlmIChwcm9wcy5kaXNhbWJpZ3VhdG9yKSB7XG4gICAgICBwYXJ0cy5wdXNoKHByb3BzLmRpc2FtYmlndWF0b3IpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmpvaW5EaXN0aW5jdChwYXJ0cywgQWxhcm1MYWJlbFBhcnRTZXBhcmF0b3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZHVwZSBzdHJpbmcgcmVzb2x2ZWQgbGlrZSB0aGlzOlxuICAgKiAtIElmIFwiZGVkdXBlU3RyaW5nT3ZlcnJpZGVcIiBpcyBkZWZpbmVkIGZvciBhbiBhbGFybSwgaXQgd2lsbCBiZSB1c2VkIGFzIGEgZGVkdXBlIHN0cmluZy5cbiAgICogLSBJZiBcImFsYXJtRGVkdXBlU3RyaW5nU3VmZml4XCIgZnJvbSB0aGUgYWxhcm0gZmFjdG9yeSBpcyBkZWZpbmVkLCBcIkdsb2JhbFByZWZpeC1Mb2NhbFByZWZpeC1BbGFybURlZHVwZVN0cmluZ1N1ZmZpeFwiIHdpbGwgYmUgdXNlZCBhcyBhIGRlZHVwZSBzdHJpbmcuXG4gICAqIC0gT3RoZXJ3aXNlLCB0aGUgYWxhcm0gZGVkdXBlIHN0cmluZyB3aWxsIG5vdCBiZSBzZXQuXG4gICAqIElmIGEgZGVkdXBlIHN0cmluZyBzdHJhdGVneSBpcyBzZXQsIGl0IHdpbGwgYmUgdXNlZCB0byBwcm9jZXNzIHRoZSBmaW5hbCBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBwcm9wZXJ0aWVzXG4gICAqL1xuICBnZXREZWR1cGVTdHJpbmcocHJvcHM6IEFsYXJtTmFtaW5nSW5wdXQpIHtcbiAgICBpZiAocHJvcHMuZGVkdXBlU3RyaW5nT3ZlcnJpZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZHVwZVN0cmluZ1N0cmF0ZWd5LnByb2Nlc3NEZWR1cGVTdHJpbmdPdmVycmlkZShcbiAgICAgICAgcHJvcHMuZGVkdXBlU3RyaW5nT3ZlcnJpZGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5hbGFybURlZHVwZVN0cmluZ1N1ZmZpeCkge1xuICAgICAgLy8gbm90IHVzaW5nIGRpc2FtYmlndWF0b3IgaGVyZSBhcyB3ZSBhcmUgc3RpbGwgYWxhcm1pbmcgb24gdGhlIHNhbWUgdGhpbmdcbiAgICAgIGNvbnN0IHBhcnRzID0gW1xuICAgICAgICB0aGlzLmdsb2JhbFByZWZpeCxcbiAgICAgICAgdGhpcy5sb2NhbFByZWZpeCxcbiAgICAgICAgcHJvcHMuYWxhcm1EZWR1cGVTdHJpbmdTdWZmaXgsXG4gICAgICBdO1xuICAgICAgY29uc3QgZGVkdXBlU3RyaW5nID0gdGhpcy5qb2luRGlzdGluY3QocGFydHMsIEFsYXJtTmFtZVBhcnRTZXBhcmF0b3IpO1xuICAgICAgcmV0dXJuIHRoaXMuZGVkdXBlU3RyaW5nU3RyYXRlZ3kucHJvY2Vzc0RlZHVwZVN0cmluZyhkZWR1cGVTdHJpbmcpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgam9pbkRpc3RpbmN0KHBhcnRzOiBzdHJpbmdbXSwgc2VwYXJhdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBwYXJ0cy5maWx0ZXIoKHgsIGksIGEpID0+IGEuaW5kZXhPZih4KSA9PSBpKS5qb2luKHNlcGFyYXRvcik7XG4gIH1cbn1cbiJdfQ==