cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
80 lines • 12 kB
JavaScript
"use strict";
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NetworkLoadBalancerMetricFactory = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const common_1 = require("../../common");
/**
* Metric factory to create metrics for network load-balanced service.
*/
class NetworkLoadBalancerMetricFactory extends common_1.BaseMetricFactory {
constructor(metricFactory, props) {
super(metricFactory, props);
this.networkLoadBalancer = props.networkLoadBalancer;
this.networkTargetGroup = props.networkTargetGroup;
this.invertStatisticsOfTaskCountEnabled =
props.invertStatisticsOfTaskCountEnabled ?? false;
}
metricHealthyTaskCount() {
return this.metricFactory.adaptMetric(this.networkTargetGroup.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.networkTargetGroup.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.networkLoadBalancer.metrics.activeFlowCount({
label: "Active",
region: this.region,
account: this.account,
}));
}
metricNewConnectionCount() {
return this.metricFactory.adaptMetric(this.networkLoadBalancer.metrics.newFlowCount({
label: "New",
region: this.region,
account: this.account,
}));
}
metricProcessedBytesMin() {
return this.metricFactory.adaptMetric(this.networkLoadBalancer.metrics.processedBytes({
statistic: common_1.MetricStatistic.MIN,
label: "Processed Bytes (min)",
region: this.region,
account: this.account,
}));
}
metricUnhealthyRoutingCount() {
const unhealthyRoutingFlowCount = this.metricFactory.adaptMetric(this.networkLoadBalancer.metrics.custom("UnhealthyRoutingFlowCount", {
statistic: common_1.MetricStatistic.SUM,
region: this.region,
account: this.account,
}));
return this.metricFactory.createMetricMath("FILL(unhealthyRoutingFlowCount, 0)", { unhealthyRoutingFlowCount }, "Unhealthy routing (fail open)");
}
}
exports.NetworkLoadBalancerMetricFactory = NetworkLoadBalancerMetricFactory;
_a = JSII_RTTI_SYMBOL_1;
NetworkLoadBalancerMetricFactory[_a] = { fqn: "cdk-monitoring-constructs.NetworkLoadBalancerMetricFactory", version: "9.15.2" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmV0d29ya0xvYWRCYWxhbmNlck1ldHJpY0ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJOZXR3b3JrTG9hZEJhbGFuY2VyTWV0cmljRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVNBLHlDQU9zQjtBQVl0Qjs7R0FFRztBQUNILE1BQWEsZ0NBQ1gsU0FBUSwwQkFBd0Q7SUFPaEUsWUFDRSxhQUE0QixFQUM1QixLQUE0QztRQUU1QyxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUNuRCxJQUFJLENBQUMsa0NBQWtDO1lBQ3JDLEtBQUssQ0FBQyxrQ0FBa0MsSUFBSSxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1lBQy9DLEtBQUssRUFBRSxlQUFlO1lBQ3RCLEtBQUssRUFBRSwyQkFBa0I7WUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxrQ0FBa0M7Z0JBQ2hELENBQUMsQ0FBQyx3QkFBZSxDQUFDLEdBQUc7Z0JBQ3JCLENBQUMsQ0FBQyx3QkFBZSxDQUFDLEdBQUc7WUFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztZQUNqRCxLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLEtBQUssRUFBRSw2QkFBb0I7WUFDM0IsU0FBUyxFQUFFLElBQUksQ0FBQyxrQ0FBa0M7Z0JBQ2hELENBQUMsQ0FBQyx3QkFBZSxDQUFDLEdBQUc7Z0JBQ3JCLENBQUMsQ0FBQyx3QkFBZSxDQUFDLEdBQUc7WUFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCwwQkFBMEI7UUFDeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUN4QyxvRUFBb0UsRUFDcEU7WUFDRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDL0Msa0JBQWtCLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1NBQ3BELEVBQ0Qsb0NBQW9DLENBQ3JDLENBQUM7SUFDSixDQUFDO0lBRUQsMkJBQTJCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQ25DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1lBQy9DLEtBQUssRUFBRSxRQUFRO1lBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDbkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDNUMsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUM5QyxTQUFTLEVBQUUsd0JBQWUsQ0FBQyxHQUFHO1lBQzlCLEtBQUssRUFBRSx1QkFBdUI7WUFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCwyQkFBMkI7UUFDekIsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDOUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsMkJBQTJCLEVBQUU7WUFDbkUsU0FBUyxFQUFFLHdCQUFlLENBQUMsR0FBRztZQUM5QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUN4QyxvQ0FBb0MsRUFDcEMsRUFBRSx5QkFBeUIsRUFBRSxFQUM3QiwrQkFBK0IsQ0FDaEMsQ0FBQztJQUNKLENBQUM7O0FBeEdILDRFQXlHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElOZXR3b3JrTG9hZEJhbGFuY2VyLFxuICBJTmV0d29ya1RhcmdldEdyb3VwLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjJcIjtcblxuaW1wb3J0IHtcbiAgSUxvYWRCYWxhbmNlck1ldHJpY0ZhY3RvcnksXG4gIEJhc2VMb2FkQmFsYW5jZXJNZXRyaWNGYWN0b3J5UHJvcHMsXG59IGZyb20gXCIuL0xvYWRCYWxhbmNlck1ldHJpY0ZhY3RvcnlcIjtcbmltcG9ydCB7XG4gIEJhc2VNZXRyaWNGYWN0b3J5LFxuICBCYXNlTWV0cmljRmFjdG9yeVByb3BzLFxuICBIZWFsdGh5TWV0cmljQ29sb3IsXG4gIE1ldHJpY0ZhY3RvcnksXG4gIE1ldHJpY1N0YXRpc3RpYyxcbiAgVW5oZWFsdGh5TWV0cmljQ29sb3IsXG59IGZyb20gXCIuLi8uLi9jb21tb25cIjtcblxuLyoqXG4gKiBQcm9wcyB0byBjcmVhdGUgTmV0d29ya0xvYWRCYWxhbmNlck1ldHJpY0ZhY3RvcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0xvYWRCYWxhbmNlck1ldHJpY0ZhY3RvcnlQcm9wc1xuICBleHRlbmRzIEJhc2VMb2FkQmFsYW5jZXJNZXRyaWNGYWN0b3J5UHJvcHMsXG4gICAgQmFzZU1ldHJpY0ZhY3RvcnlQcm9wcyB7XG4gIHJlYWRvbmx5IG5ldHdvcmtMb2FkQmFsYW5jZXI6IElOZXR3b3JrTG9hZEJhbGFuY2VyO1xuICByZWFkb25seSBuZXR3b3JrVGFyZ2V0R3JvdXA6IElOZXR3b3JrVGFyZ2V0R3JvdXA7XG59XG5cbi8qKlxuICogTWV0cmljIGZhY3RvcnkgdG8gY3JlYXRlIG1ldHJpY3MgZm9yIG5ldHdvcmsgbG9hZC1iYWxhbmNlZCBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgTmV0d29ya0xvYWRCYWxhbmNlck1ldHJpY0ZhY3RvcnlcbiAgZXh0ZW5kcyBCYXNlTWV0cmljRmFjdG9yeTxOZXR3b3JrTG9hZEJhbGFuY2VyTWV0cmljRmFjdG9yeVByb3BzPlxuICBpbXBsZW1lbnRzIElMb2FkQmFsYW5jZXJNZXRyaWNGYWN0b3J5XG57XG4gIHByb3RlY3RlZCByZWFkb25seSBuZXR3b3JrTG9hZEJhbGFuY2VyOiBJTmV0d29ya0xvYWRCYWxhbmNlcjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5ldHdvcmtUYXJnZXRHcm91cDogSU5ldHdvcmtUYXJnZXRHcm91cDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGludmVydFN0YXRpc3RpY3NPZlRhc2tDb3VudEVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbWV0cmljRmFjdG9yeTogTWV0cmljRmFjdG9yeSxcbiAgICBwcm9wczogTmV0d29ya0xvYWRCYWxhbmNlck1ldHJpY0ZhY3RvcnlQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIobWV0cmljRmFjdG9yeSwgcHJvcHMpO1xuXG4gICAgdGhpcy5uZXR3b3JrTG9hZEJhbGFuY2VyID0gcHJvcHMubmV0d29ya0xvYWRCYWxhbmNlcjtcbiAgICB0aGlzLm5ldHdvcmtUYXJnZXRHcm91cCA9IHByb3BzLm5ldHdvcmtUYXJnZXRHcm91cDtcbiAgICB0aGlzLmludmVydFN0YXRpc3RpY3NPZlRhc2tDb3VudEVuYWJsZWQgPVxuICAgICAgcHJvcHMuaW52ZXJ0U3RhdGlzdGljc09mVGFza0NvdW50RW5hYmxlZCA/PyBmYWxzZTtcbiAgfVxuXG4gIG1ldHJpY0hlYWx0aHlUYXNrQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5hZGFwdE1ldHJpYyhcbiAgICAgIHRoaXMubmV0d29ya1RhcmdldEdyb3VwLm1ldHJpY3MuaGVhbHRoeUhvc3RDb3VudCh7XG4gICAgICAgIGxhYmVsOiBcIkhlYWx0aHkgVGFza3NcIixcbiAgICAgICAgY29sb3I6IEhlYWx0aHlNZXRyaWNDb2xvcixcbiAgICAgICAgc3RhdGlzdGljOiB0aGlzLmludmVydFN0YXRpc3RpY3NPZlRhc2tDb3VudEVuYWJsZWRcbiAgICAgICAgICA/IE1ldHJpY1N0YXRpc3RpYy5NQVhcbiAgICAgICAgICA6IE1ldHJpY1N0YXRpc3RpYy5NSU4sXG4gICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNVbmhlYWx0aHlUYXNrQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5hZGFwdE1ldHJpYyhcbiAgICAgIHRoaXMubmV0d29ya1RhcmdldEdyb3VwLm1ldHJpY3MudW5IZWFsdGh5SG9zdENvdW50KHtcbiAgICAgICAgbGFiZWw6IFwiVW5oZWFsdGh5IFRhc2tzXCIsXG4gICAgICAgIGNvbG9yOiBVbmhlYWx0aHlNZXRyaWNDb2xvcixcbiAgICAgICAgc3RhdGlzdGljOiB0aGlzLmludmVydFN0YXRpc3RpY3NPZlRhc2tDb3VudEVuYWJsZWRcbiAgICAgICAgICA/IE1ldHJpY1N0YXRpc3RpYy5NSU5cbiAgICAgICAgICA6IE1ldHJpY1N0YXRpc3RpYy5NQVgsXG4gICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNIZWFsdGh5VGFza0luUGVyY2VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpY01hdGgoXG4gICAgICBcIihoZWFsdGh5VGFza0NvdW50IC8gKGhlYWx0aHlUYXNrQ291bnQgKyB1bmhlYWx0aHlUYXNrQ291bnQpKSAqIDEwMFwiLFxuICAgICAge1xuICAgICAgICBoZWFsdGh5VGFza0NvdW50OiB0aGlzLm1ldHJpY0hlYWx0aHlUYXNrQ291bnQoKSxcbiAgICAgICAgdW5oZWFsdGh5VGFza0NvdW50OiB0aGlzLm1ldHJpY1VuaGVhbHRoeVRhc2tDb3VudCgpLFxuICAgICAgfSxcbiAgICAgIFwiSGVhbHRoeSBUYXNrIFBlcmNlbnQgKGF2ZzogJHtBVkd9KVwiLFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNBY3RpdmVDb25uZWN0aW9uQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5hZGFwdE1ldHJpYyhcbiAgICAgIHRoaXMubmV0d29ya0xvYWRCYWxhbmNlci5tZXRyaWNzLmFjdGl2ZUZsb3dDb3VudCh7XG4gICAgICAgIGxhYmVsOiBcIkFjdGl2ZVwiLFxuICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgICBhY2NvdW50OiB0aGlzLmFjY291bnQsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljTmV3Q29ubmVjdGlvbkNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuYWRhcHRNZXRyaWMoXG4gICAgICB0aGlzLm5ldHdvcmtMb2FkQmFsYW5jZXIubWV0cmljcy5uZXdGbG93Q291bnQoe1xuICAgICAgICBsYWJlbDogXCJOZXdcIixcbiAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbixcbiAgICAgICAgYWNjb3VudDogdGhpcy5hY2NvdW50LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY1Byb2Nlc3NlZEJ5dGVzTWluKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuYWRhcHRNZXRyaWMoXG4gICAgICB0aGlzLm5ldHdvcmtMb2FkQmFsYW5jZXIubWV0cmljcy5wcm9jZXNzZWRCeXRlcyh7XG4gICAgICAgIHN0YXRpc3RpYzogTWV0cmljU3RhdGlzdGljLk1JTixcbiAgICAgICAgbGFiZWw6IFwiUHJvY2Vzc2VkIEJ5dGVzIChtaW4pXCIsXG4gICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNVbmhlYWx0aHlSb3V0aW5nQ291bnQoKSB7XG4gICAgY29uc3QgdW5oZWFsdGh5Um91dGluZ0Zsb3dDb3VudCA9IHRoaXMubWV0cmljRmFjdG9yeS5hZGFwdE1ldHJpYyhcbiAgICAgIHRoaXMubmV0d29ya0xvYWRCYWxhbmNlci5tZXRyaWNzLmN1c3RvbShcIlVuaGVhbHRoeVJvdXRpbmdGbG93Q291bnRcIiwge1xuICAgICAgICBzdGF0aXN0aWM6IE1ldHJpY1N0YXRpc3RpYy5TVU0sXG4gICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpY01hdGgoXG4gICAgICBcIkZJTEwodW5oZWFsdGh5Um91dGluZ0Zsb3dDb3VudCwgMClcIixcbiAgICAgIHsgdW5oZWFsdGh5Um91dGluZ0Zsb3dDb3VudCB9LFxuICAgICAgXCJVbmhlYWx0aHkgcm91dGluZyAoZmFpbCBvcGVuKVwiLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==