UNPKG

cdk-monitoring-constructs

Version:

[![NPM version](https://badge.fury.io/js/cdk-monitoring-constructs.svg)](https://badge.fury.io/js/cdk-monitoring-constructs) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.cdklabs/cdkmonitoringconstructs/badge.svg)](https://m

77 lines 9.76 kB
"use strict"; 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