cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
39 lines • 6.35 kB
JavaScript
;
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)", undefined, undefined, this.region, this.account);
}
}
exports.WafV2MetricFactory = WafV2MetricFactory;
_a = JSII_RTTI_SYMBOL_1;
WafV2MetricFactory[_a] = { fqn: "cdk-monitoring-constructs.WafV2MetricFactory", version: "9.19.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FmVjJNZXRyaWNGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiV2FmVjJNZXRyaWNGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEseUNBS3NCO0FBRXRCLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQVNwQzs7R0FFRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsMEJBQTBDO0lBR2hGLFlBQVksYUFBNEIsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTVCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7U0FDekU7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLElBQUksRUFBRSxLQUFLO1lBQ1gsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUN0QixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssVUFBVSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNoRSxDQUFDO0lBQ0osQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyxpQkFBaUIsRUFDakIsd0JBQWUsQ0FBQyxHQUFHLEVBQ25CLFNBQVMsRUFDVCxJQUFJLENBQUMsVUFBVSxFQUNmLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyxpQkFBaUIsRUFDakIsd0JBQWUsQ0FBQyxHQUFHLEVBQ25CLFNBQVMsRUFDVCxJQUFJLENBQUMsVUFBVSxFQUNmLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELHlCQUF5QjtRQUN2QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3hDLHVDQUF1QyxFQUN2QztZQUNFLE9BQU8sRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDckMsT0FBTyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtTQUN0QyxFQUNELGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQzs7QUExREgsZ0RBMkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGltZW5zaW9uSGFzaCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0IHsgQ2ZuV2ViQUNMIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy13YWZ2MlwiO1xuaW1wb3J0IHtcbiAgQmFzZU1ldHJpY0ZhY3RvcnksXG4gIEJhc2VNZXRyaWNGYWN0b3J5UHJvcHMsXG4gIE1ldHJpY0ZhY3RvcnksXG4gIE1ldHJpY1N0YXRpc3RpYyxcbn0gZnJvbSBcIi4uLy4uL2NvbW1vblwiO1xuXG5jb25zdCBNZXRyaWNOYW1lc3BhY2UgPSBcIkFXUy9XQUZWMlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdhZlYyTWV0cmljRmFjdG9yeVByb3BzIGV4dGVuZHMgQmFzZU1ldHJpY0ZhY3RvcnlQcm9wcyB7XG4gIC8qKlxuICAgKiBOb3RlIHRoYXQgdGhlIFwicmVnaW9uXCIgcHJvcCBpcyByZXF1aXJlZCBpZiB0aGlzIGhhcyBhIFwiUkVHSU9OQUxcIiBzY29wZS5cbiAgICovXG4gIHJlYWRvbmx5IGFjbDogQ2ZuV2ViQUNMO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS93YWYvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL21vbml0b3JpbmctY2xvdWR3YXRjaC5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWZWMk1ldHJpY0ZhY3RvcnkgZXh0ZW5kcyBCYXNlTWV0cmljRmFjdG9yeTxXYWZWMk1ldHJpY0ZhY3RvcnlQcm9wcz4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGltZW5zaW9uczogRGltZW5zaW9uSGFzaDtcblxuICBjb25zdHJ1Y3RvcihtZXRyaWNGYWN0b3J5OiBNZXRyaWNGYWN0b3J5LCBwcm9wczogV2FmVjJNZXRyaWNGYWN0b3J5UHJvcHMpIHtcbiAgICBzdXBlcihtZXRyaWNGYWN0b3J5LCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMuYWNsLnNjb3BlID09PSBcIlJFR0lPTkFMXCIgJiYgIXByb3BzLnJlZ2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGByZWdpb24gaXMgcmVxdWlyZWQgaWYgQ2ZuV2ViQUNMIGhhcyBcIlJFR0lPTkFMXCIgc2NvcGVgKTtcbiAgICB9XG5cbiAgICB0aGlzLmRpbWVuc2lvbnMgPSB7XG4gICAgICBSdWxlOiBcIkFMTFwiLFxuICAgICAgV2ViQUNMOiBwcm9wcy5hY2wubmFtZSxcbiAgICAgIC4uLihwcm9wcy5hY2wuc2NvcGUgPT09IFwiUkVHSU9OQUxcIiAmJiB7IFJlZ2lvbjogcHJvcHMucmVnaW9uIH0pLFxuICAgIH07XG4gIH1cblxuICBtZXRyaWNBbGxvd2VkUmVxdWVzdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBcIkFsbG93ZWRSZXF1ZXN0c1wiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLlNVTSxcbiAgICAgIFwiQWxsb3dlZFwiLFxuICAgICAgdGhpcy5kaW1lbnNpb25zLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgTWV0cmljTmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0Jsb2NrZWRSZXF1ZXN0cygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIFwiQmxvY2tlZFJlcXVlc3RzXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuU1VNLFxuICAgICAgXCJCbG9ja2VkXCIsXG4gICAgICB0aGlzLmRpbWVuc2lvbnMsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBNZXRyaWNOYW1lc3BhY2UsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljQmxvY2tlZFJlcXVlc3RzUmF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpY01hdGgoXG4gICAgICBcIjEwMCAqIChibG9ja2VkIC8gKGFsbG93ZWQgKyBibG9ja2VkKSlcIixcbiAgICAgIHtcbiAgICAgICAgYWxsb3dlZDogdGhpcy5tZXRyaWNBbGxvd2VkUmVxdWVzdHMoKSxcbiAgICAgICAgYmxvY2tlZDogdGhpcy5tZXRyaWNCbG9ja2VkUmVxdWVzdHMoKSxcbiAgICAgIH0sXG4gICAgICBcIkJsb2NrZWQgKHJhdGUpXCIsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG59XG4iXX0=