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

68 lines 10.7 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.MonitoringNamingStrategy = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_cdk_lib_1 = require("aws-cdk-lib"); /** * Utility class to unify approach to naming monitoring sections. * @see https://docs.aws.amazon.com/cdk/latest/guide/tokens.html#tokens_lazy */ class MonitoringNamingStrategy { constructor(input) { this.input = input; } resolveAlarmFriendlyName() { return this.input.alarmFriendlyName ?? this.getFallbackAlarmFriendlyName(); } resolveHumanReadableName() { return this.input.humanReadableName ?? this.getFallbackHumanReadableName(); } static isAlarmFriendly(str) { // we do not know the exact pattern yet, but this is a safe approximation // also, tokens are not allowed in alarm names return str && !aws_cdk_lib_1.Token.isUnresolved(str) && /^[a-zA-Z0-9\-_\.]+$/.test(str); } getFallbackAlarmFriendlyName() { if (this.input.fallbackConstructName) { if (MonitoringNamingStrategy.isAlarmFriendly(this.input.fallbackConstructName)) { return this.input.fallbackConstructName; } } if (this.input.namedConstruct) { const node = this.input.namedConstruct.node; if (MonitoringNamingStrategy.isAlarmFriendly(node.id)) { // scope-unique ID return node.id; } } throw new Error("Insufficient information provided for naming the alarms and/or monitoring section: " + "Please provide alarmFriendlyName, humanReadableName, or namedConstruct as a fallback"); } getFallbackHumanReadableName() { return aws_cdk_lib_1.Lazy.uncachedString({ produce: (context) => { const resolvedName = context.resolve(this.input.fallbackConstructName); if (typeof resolvedName === "string" && MonitoringNamingStrategy.isNonBlank(resolvedName)) { return resolvedName; } if (this.input.namedConstruct) { const node = this.input.namedConstruct.node; if (MonitoringNamingStrategy.isNonBlank(node.id)) { // scope-unique ID return node.id; } } return this.resolveAlarmFriendlyName(); }, }); } static isNonBlank(str) { return str && str.trim().length > 0; } } exports.MonitoringNamingStrategy = MonitoringNamingStrategy; _a = JSII_RTTI_SYMBOL_1; MonitoringNamingStrategy[_a] = { fqn: "cdk-monitoring-constructs.MonitoringNamingStrategy", version: "10.0.0" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uaXRvcmluZ05hbWluZ1N0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTW9uaXRvcmluZ05hbWluZ1N0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTBDO0FBMEMxQzs7O0dBR0c7QUFDSCxNQUFhLHdCQUF3QjtJQUduQyxZQUFZLEtBQTBCO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQzdFLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQzdFLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDaEMseUVBQXlFO1FBQ3pFLDhDQUE4QztRQUM5QyxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sNEJBQTRCO1FBQ2xDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3JDLElBQ0Usd0JBQXdCLENBQUMsZUFBZSxDQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUNqQyxFQUNELENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUM1QyxJQUFJLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDdEQsa0JBQWtCO2dCQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakIsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUNiLHFGQUFxRjtZQUNuRixzRkFBc0YsQ0FDekYsQ0FBQztJQUNKLENBQUM7SUFFTyw0QkFBNEI7UUFDbEMsT0FBTyxrQkFBSSxDQUFDLGNBQWMsQ0FBQztZQUN6QixPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDbkIsTUFBTSxZQUFZLEdBQVEsT0FBTyxDQUFDLE9BQU8sQ0FDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FDakMsQ0FBQztnQkFDRixJQUNFLE9BQU8sWUFBWSxLQUFLLFFBQVE7b0JBQ2hDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFDakQsQ0FBQztvQkFDRCxPQUFPLFlBQVksQ0FBQztnQkFDdEIsQ0FBQztnQkFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztvQkFDNUMsSUFBSSx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7d0JBQ2pELGtCQUFrQjt3QkFDbEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNqQixDQUFDO2dCQUNILENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUN6QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBVztRQUNuQyxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDOztBQXhFSCw0REF5RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXp5LCBUb2tlbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFtZVJlc29sdXRpb25JbnB1dCBleHRlbmRzIFVzZXJQcm92aWRlZE5hbWVzIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdCB0aGF0IHRoaXMgbmFtaW5nIHN0cmF0ZWd5IGlzIG5hbWluZy5cbiAgICogSXQgaXMgdXNlZCBhcyBhIGxhc3QgcmVzb3J0IGZvciBuYW1pbmcuXG4gICAqL1xuICByZWFkb25seSBuYW1lZENvbnN0cnVjdD86IElDb25zdHJ1Y3Q7XG4gIC8qKlxuICAgKiBGYWxsYmFjayBuYW1lIGJlZm9yZSB3ZSBmYWxsYmFjayB0byBleHRyYWN0aW5nIG5hbWUgZnJvbSB0aGUgY29uc3RydWN0IGl0c2VsZi5cbiAgICogVGhpcyBtaWdodCBiZSBzb21lIGNvbnN0cnVjdCByZWZlcmVuY2UsIHN1Y2ggaXMgY2x1c3RlciBJRCwgc3RyZWFtIG5hbWUsIGFuZCBzbyBvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2UgbmFtZWRDb25zdHJ1Y3QgdG8gZXh0cmFjdCB0aGUgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2tDb25zdHJ1Y3ROYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcm92aWRlZE5hbWVzIHtcbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIG5hbWUgaXMgYSBmcmVlZm9ybSBzdHJpbmcsIHVzZWQgYXMgYSBjYXB0aW9uIG9yIGRlc2NyaXB0aW9uLlxuICAgKiBUaGVyZSBhcmUgbm8gbGltaXRhdGlvbnMgb24gd2hhdCBpdCBjYW4gYmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlIGFsYXJtRnJpZW5kbHlOYW1lXG4gICAqL1xuICByZWFkb25seSBodW1hblJlYWRhYmxlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFBsYWluIG5hbWUsIHVzZWQgaW4gbmFtaW5nIGFsYXJtcy4gVGhpcyB1bmlxdWUgYW1vbmcgb3RoZXIgcmVzb3VyY2VzLCBhbmQgcmVzcGVjdCB0aGUgQVdTIENESyByZXN0cmljdGlvbiBwb3NlZCBvbiBhbGFybSBuYW1lcy5cbiAgICogVGhlIGxlbmd0aCBtdXN0IGJlIDEgLSAyNTUgY2hhcmFjdGVycyBhbmQgYWx0aG91Z2ggdGhlIHZhbGlkYXRpb24gcnVsZXMgYXJlIHVuZG9jdW1lbnRlZCwgd2UgcmVjb21tZW5kIHVzaW5nIEFTQ0lJIGFuZCBoeXBoZW5zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlcml2ZXMgbmFtZSBmcm9tIHRoZSBjb25zdHJ1Y3QgaXRzZWxmXG4gICAqL1xuICByZWFkb25seSBhbGFybUZyaWVuZGx5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgdGhpcyBpcyBkZWZpbmVkLCB0aGUgbG9jYWwgYWxhcm0gbmFtZSBwcmVmaXggdXNlZCBpbiBuYW1pbmcgYWxhcm1zIGZvciB0aGUgY29uc3RydWN0IHdpbGwgYmUgc2V0IHRvIHRoaXMgdmFsdWUuXG4gICAqIFRoZSBsZW5ndGggbXVzdCBiZSAxIC0gMjU1IGNoYXJhY3RlcnMgYW5kIGFsdGhvdWdoIHRoZSB2YWxpZGF0aW9uIHJ1bGVzIGFyZSB1bmRvY3VtZW50ZWQsIHdlIHJlY29tbWVuZCB1c2luZyBBU0NJSSBhbmQgaHlwaGVucy5cbiAgICogQHNlZSBBbGFybU5hbWluZ1N0cmF0ZWd5IGZvciBtb3JlIGRldGFpbHMgb24gYWxhcm0gbmFtZSBwcmVmaXhlc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxBbGFybU5hbWVQcmVmaXhPdmVycmlkZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBVdGlsaXR5IGNsYXNzIHRvIHVuaWZ5IGFwcHJvYWNoIHRvIG5hbWluZyBtb25pdG9yaW5nIHNlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2xhdGVzdC9ndWlkZS90b2tlbnMuaHRtbCN0b2tlbnNfbGF6eVxuICovXG5leHBvcnQgY2xhc3MgTW9uaXRvcmluZ05hbWluZ1N0cmF0ZWd5IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0OiBOYW1lUmVzb2x1dGlvbklucHV0O1xuXG4gIGNvbnN0cnVjdG9yKGlucHV0OiBOYW1lUmVzb2x1dGlvbklucHV0KSB7XG4gICAgdGhpcy5pbnB1dCA9IGlucHV0O1xuICB9XG5cbiAgcmVzb2x2ZUFsYXJtRnJpZW5kbHlOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXQuYWxhcm1GcmllbmRseU5hbWUgPz8gdGhpcy5nZXRGYWxsYmFja0FsYXJtRnJpZW5kbHlOYW1lKCk7XG4gIH1cblxuICByZXNvbHZlSHVtYW5SZWFkYWJsZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dC5odW1hblJlYWRhYmxlTmFtZSA/PyB0aGlzLmdldEZhbGxiYWNrSHVtYW5SZWFkYWJsZU5hbWUoKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0FsYXJtRnJpZW5kbHkoc3RyOiBzdHJpbmcpIHtcbiAgICAvLyB3ZSBkbyBub3Qga25vdyB0aGUgZXhhY3QgcGF0dGVybiB5ZXQsIGJ1dCB0aGlzIGlzIGEgc2FmZSBhcHByb3hpbWF0aW9uXG4gICAgLy8gYWxzbywgdG9rZW5zIGFyZSBub3QgYWxsb3dlZCBpbiBhbGFybSBuYW1lc1xuICAgIHJldHVybiBzdHIgJiYgIVRva2VuLmlzVW5yZXNvbHZlZChzdHIpICYmIC9eW2EtekEtWjAtOVxcLV9cXC5dKyQvLnRlc3Qoc3RyKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmFsbGJhY2tBbGFybUZyaWVuZGx5TmFtZSgpIHtcbiAgICBpZiAodGhpcy5pbnB1dC5mYWxsYmFja0NvbnN0cnVjdE5hbWUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgTW9uaXRvcmluZ05hbWluZ1N0cmF0ZWd5LmlzQWxhcm1GcmllbmRseShcbiAgICAgICAgICB0aGlzLmlucHV0LmZhbGxiYWNrQ29uc3RydWN0TmFtZSxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0LmZhbGxiYWNrQ29uc3RydWN0TmFtZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbnB1dC5uYW1lZENvbnN0cnVjdCkge1xuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuaW5wdXQubmFtZWRDb25zdHJ1Y3Qubm9kZTtcbiAgICAgIGlmIChNb25pdG9yaW5nTmFtaW5nU3RyYXRlZ3kuaXNBbGFybUZyaWVuZGx5KG5vZGUuaWQpKSB7XG4gICAgICAgIC8vIHNjb3BlLXVuaXF1ZSBJRFxuICAgICAgICByZXR1cm4gbm9kZS5pZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkluc3VmZmljaWVudCBpbmZvcm1hdGlvbiBwcm92aWRlZCBmb3IgbmFtaW5nIHRoZSBhbGFybXMgYW5kL29yIG1vbml0b3Jpbmcgc2VjdGlvbjogXCIgK1xuICAgICAgICBcIlBsZWFzZSBwcm92aWRlIGFsYXJtRnJpZW5kbHlOYW1lLCBodW1hblJlYWRhYmxlTmFtZSwgb3IgbmFtZWRDb25zdHJ1Y3QgYXMgYSBmYWxsYmFja1wiLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldEZhbGxiYWNrSHVtYW5SZWFkYWJsZU5hbWUoKSB7XG4gICAgcmV0dXJuIExhenkudW5jYWNoZWRTdHJpbmcoe1xuICAgICAgcHJvZHVjZTogKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWROYW1lOiBhbnkgPSBjb250ZXh0LnJlc29sdmUoXG4gICAgICAgICAgdGhpcy5pbnB1dC5mYWxsYmFja0NvbnN0cnVjdE5hbWUsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0eXBlb2YgcmVzb2x2ZWROYW1lID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgTW9uaXRvcmluZ05hbWluZ1N0cmF0ZWd5LmlzTm9uQmxhbmsocmVzb2x2ZWROYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZWROYW1lO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlucHV0Lm5hbWVkQ29uc3RydWN0KSB7XG4gICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuaW5wdXQubmFtZWRDb25zdHJ1Y3Qubm9kZTtcbiAgICAgICAgICBpZiAoTW9uaXRvcmluZ05hbWluZ1N0cmF0ZWd5LmlzTm9uQmxhbmsobm9kZS5pZCkpIHtcbiAgICAgICAgICAgIC8vIHNjb3BlLXVuaXF1ZSBJRFxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuaWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVBbGFybUZyaWVuZGx5TmFtZSgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzTm9uQmxhbmsoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyICYmIHN0ci50cmltKCkubGVuZ3RoID4gMDtcbiAgfVxufVxuIl19