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

39 lines 6.1 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.WafV2MetricFactory = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const common_1 = require("../../common"); const MetricNamespace = "AWS/WAFV2"; /** * https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html */ class WafV2MetricFactory extends common_1.BaseMetricFactory { constructor(metricFactory, props) { super(metricFactory, props); if (props.acl.scope === "REGIONAL" && !props.region) { throw new Error(`region is required if CfnWebACL has "REGIONAL" scope`); } this.dimensions = { Rule: "ALL", WebACL: props.acl.name, ...(props.acl.scope === "REGIONAL" && { Region: props.region }), }; } metricAllowedRequests() { return this.metricFactory.createMetric("AllowedRequests", common_1.MetricStatistic.SUM, "Allowed", this.dimensions, undefined, MetricNamespace, undefined, this.region, this.account); } metricBlockedRequests() { return this.metricFactory.createMetric("BlockedRequests", common_1.MetricStatistic.SUM, "Blocked", this.dimensions, undefined, MetricNamespace, undefined, this.region, this.account); } metricBlockedRequestsRate() { return this.metricFactory.createMetricMath("100 * (blocked / (allowed + blocked))", { allowed: this.metricAllowedRequests(), blocked: this.metricBlockedRequests(), }, "Blocked (rate)"); } } exports.WafV2MetricFactory = WafV2MetricFactory; _a = JSII_RTTI_SYMBOL_1; WafV2MetricFactory[_a] = { fqn: "cdk-monitoring-constructs.WafV2MetricFactory", version: "10.2.0" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FmVjJNZXRyaWNGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiV2FmVjJNZXRyaWNGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEseUNBS3NCO0FBRXRCLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQVNwQzs7R0FFRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsMEJBQWlCO0lBR3ZELFlBQVksYUFBNEIsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTVCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixJQUFJLEVBQUUsS0FBSztZQUNYLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUk7WUFDdEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDaEUsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDcEMsaUJBQWlCLEVBQ2pCLHdCQUFlLENBQUMsR0FBRyxFQUNuQixTQUFTLEVBQ1QsSUFBSSxDQUFDLFVBQVUsRUFDZixTQUFTLEVBQ1QsZUFBZSxFQUNmLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDcEMsaUJBQWlCLEVBQ2pCLHdCQUFlLENBQUMsR0FBRyxFQUNuQixTQUFTLEVBQ1QsSUFBSSxDQUFDLFVBQVUsRUFDZixTQUFTLEVBQ1QsZUFBZSxFQUNmLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUN4Qyx1Q0FBdUMsRUFDdkM7WUFDRSxPQUFPLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUU7U0FDdEMsRUFDRCxnQkFBZ0IsQ0FDakIsQ0FBQztJQUNKLENBQUM7O0FBdERILGdEQXVEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpbWVuc2lvbkhhc2ggfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7IENmbldlYkFDTCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtd2FmdjJcIjtcbmltcG9ydCB7XG4gIEJhc2VNZXRyaWNGYWN0b3J5LFxuICBCYXNlTWV0cmljRmFjdG9yeVByb3BzLFxuICBNZXRyaWNGYWN0b3J5LFxuICBNZXRyaWNTdGF0aXN0aWMsXG59IGZyb20gXCIuLi8uLi9jb21tb25cIjtcblxuY29uc3QgTWV0cmljTmFtZXNwYWNlID0gXCJBV1MvV0FGVjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBXYWZWMk1ldHJpY0ZhY3RvcnlQcm9wcyBleHRlbmRzIEJhc2VNZXRyaWNGYWN0b3J5UHJvcHMge1xuICAvKipcbiAgICogTm90ZSB0aGF0IHRoZSBcInJlZ2lvblwiIHByb3AgaXMgcmVxdWlyZWQgaWYgdGhpcyBoYXMgYSBcIlJFR0lPTkFMXCIgc2NvcGUuXG4gICAqL1xuICByZWFkb25seSBhY2w6IENmbldlYkFDTDtcbn1cblxuLyoqXG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vd2FmL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9tb25pdG9yaW5nLWNsb3Vkd2F0Y2guaHRtbFxuICovXG5leHBvcnQgY2xhc3MgV2FmVjJNZXRyaWNGYWN0b3J5IGV4dGVuZHMgQmFzZU1ldHJpY0ZhY3Rvcnkge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGltZW5zaW9uczogRGltZW5zaW9uSGFzaDtcblxuICBjb25zdHJ1Y3RvcihtZXRyaWNGYWN0b3J5OiBNZXRyaWNGYWN0b3J5LCBwcm9wczogV2FmVjJNZXRyaWNGYWN0b3J5UHJvcHMpIHtcbiAgICBzdXBlcihtZXRyaWNGYWN0b3J5LCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMuYWNsLnNjb3BlID09PSBcIlJFR0lPTkFMXCIgJiYgIXByb3BzLnJlZ2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGByZWdpb24gaXMgcmVxdWlyZWQgaWYgQ2ZuV2ViQUNMIGhhcyBcIlJFR0lPTkFMXCIgc2NvcGVgKTtcbiAgICB9XG5cbiAgICB0aGlzLmRpbWVuc2lvbnMgPSB7XG4gICAgICBSdWxlOiBcIkFMTFwiLFxuICAgICAgV2ViQUNMOiBwcm9wcy5hY2wubmFtZSxcbiAgICAgIC4uLihwcm9wcy5hY2wuc2NvcGUgPT09IFwiUkVHSU9OQUxcIiAmJiB7IFJlZ2lvbjogcHJvcHMucmVnaW9uIH0pLFxuICAgIH07XG4gIH1cblxuICBtZXRyaWNBbGxvd2VkUmVxdWVzdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBcIkFsbG93ZWRSZXF1ZXN0c1wiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLlNVTSxcbiAgICAgIFwiQWxsb3dlZFwiLFxuICAgICAgdGhpcy5kaW1lbnNpb25zLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgTWV0cmljTmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0Jsb2NrZWRSZXF1ZXN0cygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIFwiQmxvY2tlZFJlcXVlc3RzXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuU1VNLFxuICAgICAgXCJCbG9ja2VkXCIsXG4gICAgICB0aGlzLmRpbWVuc2lvbnMsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBNZXRyaWNOYW1lc3BhY2UsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljQmxvY2tlZFJlcXVlc3RzUmF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpY01hdGgoXG4gICAgICBcIjEwMCAqIChibG9ja2VkIC8gKGFsbG93ZWQgKyBibG9ja2VkKSlcIixcbiAgICAgIHtcbiAgICAgICAgYWxsb3dlZDogdGhpcy5tZXRyaWNBbGxvd2VkUmVxdWVzdHMoKSxcbiAgICAgICAgYmxvY2tlZDogdGhpcy5tZXRyaWNCbG9ja2VkUmVxdWVzdHMoKSxcbiAgICAgIH0sXG4gICAgICBcIkJsb2NrZWQgKHJhdGUpXCIsXG4gICAgKTtcbiAgfVxufVxuIl19