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

80 lines 12.4 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.ApplicationLoadBalancerMetricFactory = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const common_1 = require("../../common"); /** * Metric factory to create metrics for application load-balanced service. */ class ApplicationLoadBalancerMetricFactory extends common_1.BaseMetricFactory { constructor(metricFactory, props) { super(metricFactory, props); this.applicationLoadBalancer = props.applicationLoadBalancer; this.applicationTargetGroup = props.applicationTargetGroup; this.invertStatisticsOfTaskCountEnabled = props.invertStatisticsOfTaskCountEnabled ?? false; } metricHealthyTaskCount() { return this.metricFactory.adaptMetric(this.applicationTargetGroup.metrics.healthyHostCount({ label: "Healthy Tasks", color: common_1.HealthyMetricColor, statistic: this.invertStatisticsOfTaskCountEnabled ? common_1.MetricStatistic.MAX : common_1.MetricStatistic.MIN, region: this.region, account: this.account, })); } metricUnhealthyTaskCount() { return this.metricFactory.adaptMetric(this.applicationTargetGroup.metrics.unhealthyHostCount({ label: "Unhealthy Tasks", color: common_1.UnhealthyMetricColor, statistic: this.invertStatisticsOfTaskCountEnabled ? common_1.MetricStatistic.MIN : common_1.MetricStatistic.MAX, region: this.region, account: this.account, })); } metricHealthyTaskInPercent() { return this.metricFactory.createMetricMath("(healthyTaskCount / (healthyTaskCount + unhealthyTaskCount)) * 100", { healthyTaskCount: this.metricHealthyTaskCount(), unhealthyTaskCount: this.metricUnhealthyTaskCount(), }, "Healthy Task Percent (avg: ${AVG})"); } metricActiveConnectionCount() { return this.metricFactory.adaptMetric(this.applicationLoadBalancer.metrics.activeConnectionCount({ label: "Active", region: this.region, account: this.account, })); } metricNewConnectionCount() { return this.metricFactory.adaptMetric(this.applicationLoadBalancer.metrics.newConnectionCount({ label: "New", region: this.region, account: this.account, })); } metricProcessedBytesMin() { return this.metricFactory.adaptMetric(this.applicationLoadBalancer.metrics.processedBytes({ statistic: common_1.MetricStatistic.MIN, label: "Processed Bytes (min)", region: this.region, account: this.account, })); } metricUnhealthyRoutingCount() { const unhealthyRoutingRequestCount = this.metricFactory.adaptMetric(this.applicationTargetGroup.metrics.custom("UnhealthyRoutingRequestCount", { statistic: common_1.MetricStatistic.SUM, region: this.region, account: this.account, })); return this.metricFactory.createMetricMath("FILL(unhealthyRoutingRequestCount, 0)", { unhealthyRoutingRequestCount }, "Unhealthy routing (fail open)"); } } exports.ApplicationLoadBalancerMetricFactory = ApplicationLoadBalancerMetricFactory; _a = JSII_RTTI_SYMBOL_1; ApplicationLoadBalancerMetricFactory[_a] = { fqn: "cdk-monitoring-constructs.ApplicationLoadBalancerMetricFactory", version: "9.15.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0EseUNBT3NCO0FBWXRCOztHQUVHO0FBQ0gsTUFBYSxvQ0FDWCxTQUFRLDBCQUE0RDtJQU9wRSxZQUNFLGFBQTRCLEVBQzVCLEtBQWdEO1FBRWhELEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztRQUM3RCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDLHNCQUFzQixDQUFDO1FBQzNELElBQUksQ0FBQyxrQ0FBa0M7WUFDckMsS0FBSyxDQUFDLGtDQUFrQyxJQUFJLEtBQUssQ0FBQztJQUN0RCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQ25DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7WUFDbkQsS0FBSyxFQUFFLGVBQWU7WUFDdEIsS0FBSyxFQUFFLDJCQUFrQjtZQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLGtDQUFrQztnQkFDaEQsQ0FBQyxDQUFDLHdCQUFlLENBQUMsR0FBRztnQkFDckIsQ0FBQyxDQUFDLHdCQUFlLENBQUMsR0FBRztZQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUNuQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1lBQ3JELEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsS0FBSyxFQUFFLDZCQUFvQjtZQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLGtDQUFrQztnQkFDaEQsQ0FBQyxDQUFDLHdCQUFlLENBQUMsR0FBRztnQkFDckIsQ0FBQyxDQUFDLHdCQUFlLENBQUMsR0FBRztZQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3hDLG9FQUFvRSxFQUNwRTtZQUNFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7U0FDcEQsRUFDRCxvQ0FBb0MsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFFRCwyQkFBMkI7UUFDekIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDbkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztZQUN6RCxLQUFLLEVBQUUsUUFBUTtZQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQ25DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7WUFDdEQsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUNuQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUNsRCxTQUFTLEVBQUUsd0JBQWUsQ0FBQyxHQUFHO1lBQzlCLEtBQUssRUFBRSx1QkFBdUI7WUFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCwyQkFBMkI7UUFDekIsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDakUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ3hDLDhCQUE4QixFQUM5QjtZQUNFLFNBQVMsRUFBRSx3QkFBZSxDQUFDLEdBQUc7WUFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUNGLENBQ0YsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDeEMsdUNBQXVDLEVBQ3ZDLEVBQUUsNEJBQTRCLEVBQUUsRUFDaEMsK0JBQStCLENBQ2hDLENBQUM7SUFDSixDQUFDOztBQTNHSCxvRkE0R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIsXG4gIElBcHBsaWNhdGlvblRhcmdldEdyb3VwLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjJcIjtcblxuaW1wb3J0IHtcbiAgSUxvYWRCYWxhbmNlck1ldHJpY0ZhY3RvcnksXG4gIEJhc2VMb2FkQmFsYW5jZXJNZXRyaWNGYWN0b3J5UHJvcHMsXG59IGZyb20gXCIuL0xvYWRCYWxhbmNlck1ldHJpY0ZhY3RvcnlcIjtcbmltcG9ydCB7XG4gIEJhc2VNZXRyaWNGYWN0b3J5LFxuICBCYXNlTWV0cmljRmFjdG9yeVByb3BzLFxuICBIZWFsdGh5TWV0cmljQ29sb3IsXG4gIE1ldHJpY0ZhY3RvcnksXG4gIE1ldHJpY1N0YXRpc3RpYyxcbiAgVW5oZWFsdGh5TWV0cmljQ29sb3IsXG59IGZyb20gXCIuLi8uLi9jb21tb25cIjtcblxuLyoqXG4gKiBQcm9wcyB0byBjcmVhdGUgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNGYWN0b3J5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljRmFjdG9yeVByb3BzXG4gIGV4dGVuZHMgQmFzZUxvYWRCYWxhbmNlck1ldHJpY0ZhY3RvcnlQcm9wcyxcbiAgICBCYXNlTWV0cmljRmFjdG9yeVByb3BzIHtcbiAgcmVhZG9ubHkgYXBwbGljYXRpb25Mb2FkQmFsYW5jZXI6IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcbiAgcmVhZG9ubHkgYXBwbGljYXRpb25UYXJnZXRHcm91cDogSUFwcGxpY2F0aW9uVGFyZ2V0R3JvdXA7XG59XG5cbi8qKlxuICogTWV0cmljIGZhY3RvcnkgdG8gY3JlYXRlIG1ldHJpY3MgZm9yIGFwcGxpY2F0aW9uIGxvYWQtYmFsYW5jZWQgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljRmFjdG9yeVxuICBleHRlbmRzIEJhc2VNZXRyaWNGYWN0b3J5PEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljRmFjdG9yeVByb3BzPlxuICBpbXBsZW1lbnRzIElMb2FkQmFsYW5jZXJNZXRyaWNGYWN0b3J5XG57XG4gIHByb3RlY3RlZCByZWFkb25seSBhcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjogSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBwbGljYXRpb25UYXJnZXRHcm91cDogSUFwcGxpY2F0aW9uVGFyZ2V0R3JvdXA7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbnZlcnRTdGF0aXN0aWNzT2ZUYXNrQ291bnRFbmFibGVkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1ldHJpY0ZhY3Rvcnk6IE1ldHJpY0ZhY3RvcnksXG4gICAgcHJvcHM6IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljRmFjdG9yeVByb3BzLFxuICApIHtcbiAgICBzdXBlcihtZXRyaWNGYWN0b3J5LCBwcm9wcyk7XG5cbiAgICB0aGlzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyID0gcHJvcHMuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXI7XG4gICAgdGhpcy5hcHBsaWNhdGlvblRhcmdldEdyb3VwID0gcHJvcHMuYXBwbGljYXRpb25UYXJnZXRHcm91cDtcbiAgICB0aGlzLmludmVydFN0YXRpc3RpY3NPZlRhc2tDb3VudEVuYWJsZWQgPVxuICAgICAgcHJvcHMuaW52ZXJ0U3RhdGlzdGljc09mVGFza0NvdW50RW5hYmxlZCA/PyBmYWxzZTtcbiAgfVxuXG4gIG1ldHJpY0hlYWx0aHlUYXNrQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5hZGFwdE1ldHJpYyhcbiAgICAgIHRoaXMuYXBwbGljYXRpb25UYXJnZXRHcm91cC5tZXRyaWNzLmhlYWx0aHlIb3N0Q291bnQoe1xuICAgICAgICBsYWJlbDogXCJIZWFsdGh5IFRhc2tzXCIsXG4gICAgICAgIGNvbG9yOiBIZWFsdGh5TWV0cmljQ29sb3IsXG4gICAgICAgIHN0YXRpc3RpYzogdGhpcy5pbnZlcnRTdGF0aXN0aWNzT2ZUYXNrQ291bnRFbmFibGVkXG4gICAgICAgICAgPyBNZXRyaWNTdGF0aXN0aWMuTUFYXG4gICAgICAgICAgOiBNZXRyaWNTdGF0aXN0aWMuTUlOLFxuICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgICBhY2NvdW50OiB0aGlzLmFjY291bnQsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljVW5oZWFsdGh5VGFza0NvdW50KCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuYWRhcHRNZXRyaWMoXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAubWV0cmljcy51bmhlYWx0aHlIb3N0Q291bnQoe1xuICAgICAgICBsYWJlbDogXCJVbmhlYWx0aHkgVGFza3NcIixcbiAgICAgICAgY29sb3I6IFVuaGVhbHRoeU1ldHJpY0NvbG9yLFxuICAgICAgICBzdGF0aXN0aWM6IHRoaXMuaW52ZXJ0U3RhdGlzdGljc09mVGFza0NvdW50RW5hYmxlZFxuICAgICAgICAgID8gTWV0cmljU3RhdGlzdGljLk1JTlxuICAgICAgICAgIDogTWV0cmljU3RhdGlzdGljLk1BWCxcbiAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbixcbiAgICAgICAgYWNjb3VudDogdGhpcy5hY2NvdW50LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0hlYWx0aHlUYXNrSW5QZXJjZW50KCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljTWF0aChcbiAgICAgIFwiKGhlYWx0aHlUYXNrQ291bnQgLyAoaGVhbHRoeVRhc2tDb3VudCArIHVuaGVhbHRoeVRhc2tDb3VudCkpICogMTAwXCIsXG4gICAgICB7XG4gICAgICAgIGhlYWx0aHlUYXNrQ291bnQ6IHRoaXMubWV0cmljSGVhbHRoeVRhc2tDb3VudCgpLFxuICAgICAgICB1bmhlYWx0aHlUYXNrQ291bnQ6IHRoaXMubWV0cmljVW5oZWFsdGh5VGFza0NvdW50KCksXG4gICAgICB9LFxuICAgICAgXCJIZWFsdGh5IFRhc2sgUGVyY2VudCAoYXZnOiAke0FWR30pXCIsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0FjdGl2ZUNvbm5lY3Rpb25Db3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmFkYXB0TWV0cmljKFxuICAgICAgdGhpcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlci5tZXRyaWNzLmFjdGl2ZUNvbm5lY3Rpb25Db3VudCh7XG4gICAgICAgIGxhYmVsOiBcIkFjdGl2ZVwiLFxuICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgICBhY2NvdW50OiB0aGlzLmFjY291bnQsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljTmV3Q29ubmVjdGlvbkNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuYWRhcHRNZXRyaWMoXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyLm1ldHJpY3MubmV3Q29ubmVjdGlvbkNvdW50KHtcbiAgICAgICAgbGFiZWw6IFwiTmV3XCIsXG4gICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNQcm9jZXNzZWRCeXRlc01pbigpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmFkYXB0TWV0cmljKFxuICAgICAgdGhpcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlci5tZXRyaWNzLnByb2Nlc3NlZEJ5dGVzKHtcbiAgICAgICAgc3RhdGlzdGljOiBNZXRyaWNTdGF0aXN0aWMuTUlOLFxuICAgICAgICBsYWJlbDogXCJQcm9jZXNzZWQgQnl0ZXMgKG1pbilcIixcbiAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbixcbiAgICAgICAgYWNjb3VudDogdGhpcy5hY2NvdW50LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY1VuaGVhbHRoeVJvdXRpbmdDb3VudCgpIHtcbiAgICBjb25zdCB1bmhlYWx0aHlSb3V0aW5nUmVxdWVzdENvdW50ID0gdGhpcy5tZXRyaWNGYWN0b3J5LmFkYXB0TWV0cmljKFxuICAgICAgdGhpcy5hcHBsaWNhdGlvblRhcmdldEdyb3VwLm1ldHJpY3MuY3VzdG9tKFxuICAgICAgICBcIlVuaGVhbHRoeVJvdXRpbmdSZXF1ZXN0Q291bnRcIixcbiAgICAgICAge1xuICAgICAgICAgIHN0YXRpc3RpYzogTWV0cmljU3RhdGlzdGljLlNVTSxcbiAgICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljTWF0aChcbiAgICAgIFwiRklMTCh1bmhlYWx0aHlSb3V0aW5nUmVxdWVzdENvdW50LCAwKVwiLFxuICAgICAgeyB1bmhlYWx0aHlSb3V0aW5nUmVxdWVzdENvdW50IH0sXG4gICAgICBcIlVuaGVhbHRoeSByb3V0aW5nIChmYWlsIG9wZW4pXCIsXG4gICAgKTtcbiAgfVxufVxuIl19