cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
77 lines • 9.76 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: "10.0.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWxhcm1OYW1pbmdTdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkFsYXJtTmFtaW5nU3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrRUFHdUM7QUFHdkMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUM7QUFDbkMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFFcEMsTUFBYSxtQkFBbUI7SUFLOUIsWUFDRSxZQUFvQixFQUNwQixXQUFtQixFQUNuQixvQkFBa0Q7UUFFbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLG9CQUFvQjtZQUN2QixvQkFBb0IsSUFBSSxJQUFJLHFEQUF1QixFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxLQUF1QjtRQUM3QixJQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzVCLE9BQU8sS0FBSyxDQUFDLGlCQUFpQixDQUFDO1FBQ2pDLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBYTtZQUN0QixJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsV0FBVztZQUNoQixLQUFLLENBQUMsZUFBZTtTQUN0QixDQUFDO1FBRUYsSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQXVCO1FBQ3BDLG9EQUFvRDtRQUNwRCxNQUFNLEtBQUssR0FBYSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWxFLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsZUFBZSxDQUFDLEtBQXVCO1FBQ3JDLElBQUksS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCLENBQzFELEtBQUssQ0FBQyxvQkFBb0IsQ0FDM0IsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2xDLDBFQUEwRTtZQUMxRSxNQUFNLEtBQUssR0FBRztnQkFDWixJQUFJLENBQUMsWUFBWTtnQkFDakIsSUFBSSxDQUFDLFdBQVc7Z0JBQ2hCLEtBQUssQ0FBQyx1QkFBdUI7YUFDOUIsQ0FBQztZQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLHNCQUFzQixDQUFDLENBQUM7WUFDdEUsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFUyxZQUFZLENBQUMsS0FBZSxFQUFFLFNBQWlCO1FBQ3ZELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RSxDQUFDOztBQXBGSCxrREFxRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEb05vdE1vZGlmeURlZHVwZVN0cmluZyxcbiAgSUFsYXJtRGVkdXBlU3RyaW5nUHJvY2Vzc29yLFxufSBmcm9tIFwiLi9JQWxhcm1EZWR1cGVTdHJpbmdQcm9jZXNzb3JcIjtcbmltcG9ydCB7IEFsYXJtTmFtaW5nSW5wdXQsIElBbGFybU5hbWluZ1N0cmF0ZWd5IH0gZnJvbSBcIi4vSUFsYXJtTmFtaW5nU3RyYXRlZ3lcIjtcblxuY29uc3QgQWxhcm1OYW1lUGFydFNlcGFyYXRvciA9IFwiLVwiO1xuY29uc3QgQWxhcm1MYWJlbFBhcnRTZXBhcmF0b3IgPSBcIiBcIjtcblxuZXhwb3J0IGNsYXNzIEFsYXJtTmFtaW5nU3RyYXRlZ3kgaW1wbGVtZW50cyBJQWxhcm1OYW1pbmdTdHJhdGVneSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBnbG9iYWxQcmVmaXg6IHN0cmluZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsUHJlZml4OiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZWR1cGVTdHJpbmdTdHJhdGVneTogSUFsYXJtRGVkdXBlU3RyaW5nUHJvY2Vzc29yO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGdsb2JhbFByZWZpeDogc3RyaW5nLFxuICAgIGxvY2FsUHJlZml4OiBzdHJpbmcsXG4gICAgZGVkdXBlU3RyaW5nU3RyYXRlZ3k/OiBJQWxhcm1EZWR1cGVTdHJpbmdQcm9jZXNzb3IsXG4gICkge1xuICAgIHRoaXMuZ2xvYmFsUHJlZml4ID0gZ2xvYmFsUHJlZml4O1xuICAgIHRoaXMubG9jYWxQcmVmaXggPSBsb2NhbFByZWZpeDtcbiAgICB0aGlzLmRlZHVwZVN0cmluZ1N0cmF0ZWd5ID1cbiAgICAgIGRlZHVwZVN0cmluZ1N0cmF0ZWd5ID8/IG5ldyBEb05vdE1vZGlmeURlZHVwZVN0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsYXJtIG5hbWUgaXMgcmVzb2x2ZWQgbGlrZSB0aGlzOlxuICAgKiAtIElmIFwiYWxhcm1OYW1lT3ZlcnJpZGVcIiBpcyBkZWZpbmVkIGZvciBhbiBhbGFybSwgaXQgd2lsbCBiZSB1c2VkIGFzIGFsYXJtIG5hbWUuXG4gICAqIC0gT3RoZXJ3aXNlLCB0aGUgYWxhcm0gbmFtZSB3aWxsIGJlIGdlbmVyYXRlZCBieSBqb2luaW5nOiBnbG9iYWwgcHJlZml4LCBsb2NhbCBwcmVmaXgsIGFsYXJtIG5hbWUgc3VmZml4LCBkaXNhbWJpZ3VhdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgcHJvcGVydGllc1xuICAgKi9cbiAgZ2V0TmFtZShwcm9wczogQWxhcm1OYW1pbmdJbnB1dCkge1xuICAgIGlmIChwcm9wcy5hbGFybU5hbWVPdmVycmlkZSkge1xuICAgICAgcmV0dXJuIHByb3BzLmFsYXJtTmFtZU92ZXJyaWRlO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtcbiAgICAgIHRoaXMuZ2xvYmFsUHJlZml4LFxuICAgICAgdGhpcy5sb2NhbFByZWZpeCxcbiAgICAgIHByb3BzLmFsYXJtTmFtZVN1ZmZpeCxcbiAgICBdO1xuXG4gICAgaWYgKHByb3BzLmRpc2FtYmlndWF0b3IpIHtcbiAgICAgIHBhcnRzLnB1c2gocHJvcHMuZGlzYW1iaWd1YXRvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuam9pbkRpc3RpbmN0KHBhcnRzLCBBbGFybU5hbWVQYXJ0U2VwYXJhdG9yKTtcbiAgfVxuXG4gIGdldFdpZGdldExhYmVsKHByb3BzOiBBbGFybU5hbWluZ0lucHV0KSB7XG4gICAgLy8gbm90IHVzaW5nIGdsb2JhbCBwcmVmaXggdG8gbWFrZSB0aGUgbGFiZWwgc2hvcnRlclxuICAgIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFt0aGlzLmxvY2FsUHJlZml4LCBwcm9wcy5hbGFybU5hbWVTdWZmaXhdO1xuXG4gICAgaWYgKHByb3BzLmRpc2FtYmlndWF0b3IpIHtcbiAgICAgIHBhcnRzLnB1c2gocHJvcHMuZGlzYW1iaWd1YXRvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuam9pbkRpc3RpbmN0KHBhcnRzLCBBbGFybUxhYmVsUGFydFNlcGFyYXRvcik7XG4gIH1cblxuICAvKipcbiAgICogRGVkdXBlIHN0cmluZyByZXNvbHZlZCBsaWtlIHRoaXM6XG4gICAqIC0gSWYgXCJkZWR1cGVTdHJpbmdPdmVycmlkZVwiIGlzIGRlZmluZWQgZm9yIGFuIGFsYXJtLCBpdCB3aWxsIGJlIHVzZWQgYXMgYSBkZWR1cGUgc3RyaW5nLlxuICAgKiAtIElmIFwiYWxhcm1EZWR1cGVTdHJpbmdTdWZmaXhcIiBmcm9tIHRoZSBhbGFybSBmYWN0b3J5IGlzIGRlZmluZWQsIFwiR2xvYmFsUHJlZml4LUxvY2FsUHJlZml4LUFsYXJtRGVkdXBlU3RyaW5nU3VmZml4XCIgd2lsbCBiZSB1c2VkIGFzIGEgZGVkdXBlIHN0cmluZy5cbiAgICogLSBPdGhlcndpc2UsIHRoZSBhbGFybSBkZWR1cGUgc3RyaW5nIHdpbGwgbm90IGJlIHNldC5cbiAgICogSWYgYSBkZWR1cGUgc3RyaW5nIHN0cmF0ZWd5IGlzIHNldCwgaXQgd2lsbCBiZSB1c2VkIHRvIHByb2Nlc3MgdGhlIGZpbmFsIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHByb3BlcnRpZXNcbiAgICovXG4gIGdldERlZHVwZVN0cmluZyhwcm9wczogQWxhcm1OYW1pbmdJbnB1dCkge1xuICAgIGlmIChwcm9wcy5kZWR1cGVTdHJpbmdPdmVycmlkZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVkdXBlU3RyaW5nU3RyYXRlZ3kucHJvY2Vzc0RlZHVwZVN0cmluZ092ZXJyaWRlKFxuICAgICAgICBwcm9wcy5kZWR1cGVTdHJpbmdPdmVycmlkZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmFsYXJtRGVkdXBlU3RyaW5nU3VmZml4KSB7XG4gICAgICAvLyBub3QgdXNpbmcgZGlzYW1iaWd1YXRvciBoZXJlIGFzIHdlIGFyZSBzdGlsbCBhbGFybWluZyBvbiB0aGUgc2FtZSB0aGluZ1xuICAgICAgY29uc3QgcGFydHMgPSBbXG4gICAgICAgIHRoaXMuZ2xvYmFsUHJlZml4LFxuICAgICAgICB0aGlzLmxvY2FsUHJlZml4LFxuICAgICAgICBwcm9wcy5hbGFybURlZHVwZVN0cmluZ1N1ZmZpeCxcbiAgICAgIF07XG4gICAgICBjb25zdCBkZWR1cGVTdHJpbmcgPSB0aGlzLmpvaW5EaXN0aW5jdChwYXJ0cywgQWxhcm1OYW1lUGFydFNlcGFyYXRvcik7XG4gICAgICByZXR1cm4gdGhpcy5kZWR1cGVTdHJpbmdTdHJhdGVneS5wcm9jZXNzRGVkdXBlU3RyaW5nKGRlZHVwZVN0cmluZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBqb2luRGlzdGluY3QocGFydHM6IHN0cmluZ1tdLCBzZXBhcmF0b3I6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhcnRzLmZpbHRlcigoeCwgaSwgYSkgPT4gYS5pbmRleE9mKHgpID09IGkpLmpvaW4oc2VwYXJhdG9yKTtcbiAgfVxufVxuIl19