cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
40 lines • 6.45 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";
const AllRulesDimensionValue = "ALL";
/**
* 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: AllRulesDimensionValue,
WebACL: props.acl.name,
...(props.region && { 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.15.2" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FmVjJNZXRyaWNGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiV2FmVjJNZXRyaWNGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEseUNBS3NCO0FBRXRCLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUNwQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssQ0FBQztBQVNyQzs7R0FFRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsMEJBQTBDO0lBR2hGLFlBQVksYUFBNEIsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTVCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7U0FDekU7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLElBQUksRUFBRSxzQkFBc0I7WUFDNUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUN0QixHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDcEMsaUJBQWlCLEVBQ2pCLHdCQUFlLENBQUMsR0FBRyxFQUNuQixTQUFTLEVBQ1QsSUFBSSxDQUFDLFVBQVUsRUFDZixTQUFTLEVBQ1QsZUFBZSxFQUNmLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDcEMsaUJBQWlCLEVBQ2pCLHdCQUFlLENBQUMsR0FBRyxFQUNuQixTQUFTLEVBQ1QsSUFBSSxDQUFDLFVBQVUsRUFDZixTQUFTLEVBQ1QsZUFBZSxFQUNmLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUN4Qyx1Q0FBdUMsRUFDdkM7WUFDRSxPQUFPLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUU7U0FDdEMsRUFDRCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7O0FBMURILGdEQTJEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpbWVuc2lvbkhhc2ggfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7IENmbldlYkFDTCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtd2FmdjJcIjtcbmltcG9ydCB7XG4gIEJhc2VNZXRyaWNGYWN0b3J5LFxuICBCYXNlTWV0cmljRmFjdG9yeVByb3BzLFxuICBNZXRyaWNGYWN0b3J5LFxuICBNZXRyaWNTdGF0aXN0aWMsXG59IGZyb20gXCIuLi8uLi9jb21tb25cIjtcblxuY29uc3QgTWV0cmljTmFtZXNwYWNlID0gXCJBV1MvV0FGVjJcIjtcbmNvbnN0IEFsbFJ1bGVzRGltZW5zaW9uVmFsdWUgPSBcIkFMTFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdhZlYyTWV0cmljRmFjdG9yeVByb3BzIGV4dGVuZHMgQmFzZU1ldHJpY0ZhY3RvcnlQcm9wcyB7XG4gIC8qKlxuICAgKiBOb3RlIHRoYXQgdGhlIFwicmVnaW9uXCIgcHJvcCBpcyByZXF1aXJlZCBpZiB0aGlzIGhhcyBhIFwiUkVHSU9OQUxcIiBzY29wZS5cbiAgICovXG4gIHJlYWRvbmx5IGFjbDogQ2ZuV2ViQUNMO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS93YWYvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL21vbml0b3JpbmctY2xvdWR3YXRjaC5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWZWMk1ldHJpY0ZhY3RvcnkgZXh0ZW5kcyBCYXNlTWV0cmljRmFjdG9yeTxXYWZWMk1ldHJpY0ZhY3RvcnlQcm9wcz4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGltZW5zaW9uczogRGltZW5zaW9uSGFzaDtcblxuICBjb25zdHJ1Y3RvcihtZXRyaWNGYWN0b3J5OiBNZXRyaWNGYWN0b3J5LCBwcm9wczogV2FmVjJNZXRyaWNGYWN0b3J5UHJvcHMpIHtcbiAgICBzdXBlcihtZXRyaWNGYWN0b3J5LCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMuYWNsLnNjb3BlID09PSBcIlJFR0lPTkFMXCIgJiYgIXByb3BzLnJlZ2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGByZWdpb24gaXMgcmVxdWlyZWQgaWYgQ2ZuV2ViQUNMIGhhcyBcIlJFR0lPTkFMXCIgc2NvcGVgKTtcbiAgICB9XG5cbiAgICB0aGlzLmRpbWVuc2lvbnMgPSB7XG4gICAgICBSdWxlOiBBbGxSdWxlc0RpbWVuc2lvblZhbHVlLFxuICAgICAgV2ViQUNMOiBwcm9wcy5hY2wubmFtZSxcbiAgICAgIC4uLihwcm9wcy5yZWdpb24gJiYgeyBSZWdpb246IHByb3BzLnJlZ2lvbiB9KSxcbiAgICB9O1xuICB9XG5cbiAgbWV0cmljQWxsb3dlZFJlcXVlc3RzKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljKFxuICAgICAgXCJBbGxvd2VkUmVxdWVzdHNcIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5TVU0sXG4gICAgICBcIkFsbG93ZWRcIixcbiAgICAgIHRoaXMuZGltZW5zaW9ucyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIE1ldHJpY05hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNCbG9ja2VkUmVxdWVzdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBcIkJsb2NrZWRSZXF1ZXN0c1wiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLlNVTSxcbiAgICAgIFwiQmxvY2tlZFwiLFxuICAgICAgdGhpcy5kaW1lbnNpb25zLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgTWV0cmljTmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0Jsb2NrZWRSZXF1ZXN0c1JhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWNNYXRoKFxuICAgICAgXCIxMDAgKiAoYmxvY2tlZCAvIChhbGxvd2VkICsgYmxvY2tlZCkpXCIsXG4gICAgICB7XG4gICAgICAgIGFsbG93ZWQ6IHRoaXMubWV0cmljQWxsb3dlZFJlcXVlc3RzKCksXG4gICAgICAgIGJsb2NrZWQ6IHRoaXMubWV0cmljQmxvY2tlZFJlcXVlc3RzKCksXG4gICAgICB9LFxuICAgICAgXCJCbG9ja2VkIChyYXRlKVwiLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxufVxuIl19
;