cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
46 lines • 9.29 kB
JavaScript
"use strict";
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseServiceMetricFactory = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const common_1 = require("../../common");
const EcsNamespace = "AWS/ECS";
const EcsContainerInsightsNamespace = "ECS/ContainerInsights";
/**
* Metric factory for a base service (parent class for e.g. Fargate and EC2 services).
*/
class BaseServiceMetricFactory extends common_1.BaseMetricFactory {
constructor(metricFactory, props) {
super(metricFactory, props);
this.dimensionsMap = {
ClusterName: props.service.cluster.clusterName,
ServiceName: props.service.serviceName,
};
this.service = props.service;
}
metricClusterCpuUtilisationInPercent() {
return this.metricFactory.createMetric("CPUUtilization", common_1.MetricStatistic.AVERAGE, "Cluster CPU Utilization", this.dimensionsMap, undefined, EcsNamespace, undefined, this.region, this.account);
}
metricClusterMemoryUtilisationInPercent() {
return this.metricFactory.createMetric("MemoryUtilization", common_1.MetricStatistic.AVERAGE, "Cluster Memory Utilization", this.dimensionsMap, undefined, EcsNamespace, undefined, this.region, this.account);
}
metricRunningTaskCount() {
return this.metricFactory.createMetric("RunningTaskCount", common_1.MetricStatistic.AVERAGE, "Running Tasks", this.dimensionsMap, undefined, EcsContainerInsightsNamespace, undefined, this.region, this.account);
}
metricEphemeralStorageReserved() {
return this.metricFactory.createMetric("EphemeralStorageReserved", common_1.MetricStatistic.MAX, "Ephemeral Storage Reserved", this.dimensionsMap, undefined, EcsContainerInsightsNamespace, undefined, this.region, this.account);
}
metricEphemeralStorageUtilized() {
return this.metricFactory.createMetric("EphemeralStorageUtilized", common_1.MetricStatistic.MAX, "Ephemeral Storage Utilized", this.dimensionsMap, undefined, EcsContainerInsightsNamespace, undefined, this.region, this.account);
}
metricEphemeralStorageUsageInPercent() {
return this.metricFactory.createMetricMath("100 * (used/total)", {
used: this.metricEphemeralStorageUtilized(),
total: this.metricEphemeralStorageReserved(),
}, "Ephemeral Storage Usage");
}
}
exports.BaseServiceMetricFactory = BaseServiceMetricFactory;
_a = JSII_RTTI_SYMBOL_1;
BaseServiceMetricFactory[_a] = { fqn: "cdk-monitoring-constructs.BaseServiceMetricFactory", version: "9.15.2" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVNlcnZpY2VNZXRyaWNGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQmFzZVNlcnZpY2VNZXRyaWNGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EseUNBS3NCO0FBRXRCLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQztBQUMvQixNQUFNLDZCQUE2QixHQUFHLHVCQUF1QixDQUFDO0FBUzlEOztHQUVHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSwwQkFBZ0Q7SUFPNUYsWUFDRSxhQUE0QixFQUM1QixLQUFvQztRQUVwQyxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsV0FBVyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDOUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVztTQUN2QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFFRCxvQ0FBb0M7UUFDbEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDcEMsZ0JBQWdCLEVBQ2hCLHdCQUFlLENBQUMsT0FBTyxFQUN2Qix5QkFBeUIsRUFDekIsSUFBSSxDQUFDLGFBQWEsRUFDbEIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsdUNBQXVDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQ3BDLG1CQUFtQixFQUNuQix3QkFBZSxDQUFDLE9BQU8sRUFDdkIsNEJBQTRCLEVBQzVCLElBQUksQ0FBQyxhQUFhLEVBQ2xCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyxrQkFBa0IsRUFDbEIsd0JBQWUsQ0FBQyxPQUFPLEVBQ3ZCLGVBQWUsRUFDZixJQUFJLENBQUMsYUFBYSxFQUNsQixTQUFTLEVBQ1QsNkJBQTZCLEVBQzdCLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCw4QkFBOEI7UUFDNUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDcEMsMEJBQTBCLEVBQzFCLHdCQUFlLENBQUMsR0FBRyxFQUNuQiw0QkFBNEIsRUFDNUIsSUFBSSxDQUFDLGFBQWEsRUFDbEIsU0FBUyxFQUNULDZCQUE2QixFQUM3QixTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsOEJBQThCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQ3BDLDBCQUEwQixFQUMxQix3QkFBZSxDQUFDLEdBQUcsRUFDbkIsNEJBQTRCLEVBQzVCLElBQUksQ0FBQyxhQUFhLEVBQ2xCLFNBQVMsRUFDVCw2QkFBNkIsRUFDN0IsU0FBUyxFQUNULElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELG9DQUFvQztRQUNsQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3hDLG9CQUFvQixFQUNwQjtZQUNFLElBQUksRUFBRSxJQUFJLENBQUMsOEJBQThCLEVBQUU7WUFDM0MsS0FBSyxFQUFFLElBQUksQ0FBQyw4QkFBOEIsRUFBRTtTQUM3QyxFQUNELHlCQUF5QixDQUMxQixDQUFDO0lBQ0osQ0FBQzs7QUFuR0gsNERBb0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGltZW5zaW9uc01hcCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0IHsgSUJhc2VTZXJ2aWNlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIjtcblxuaW1wb3J0IHtcbiAgQmFzZU1ldHJpY0ZhY3RvcnksXG4gIEJhc2VNZXRyaWNGYWN0b3J5UHJvcHMsXG4gIE1ldHJpY0ZhY3RvcnksXG4gIE1ldHJpY1N0YXRpc3RpYyxcbn0gZnJvbSBcIi4uLy4uL2NvbW1vblwiO1xuXG5jb25zdCBFY3NOYW1lc3BhY2UgPSBcIkFXUy9FQ1NcIjtcbmNvbnN0IEVjc0NvbnRhaW5lckluc2lnaHRzTmFtZXNwYWNlID0gXCJFQ1MvQ29udGFpbmVySW5zaWdodHNcIjtcblxuLyoqXG4gKiBQcm9wcyB0byBjcmVhdGUgQmFzZVNlcnZpY2VNZXRyaWNGYWN0b3J5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VTZXJ2aWNlTWV0cmljRmFjdG9yeVByb3BzIGV4dGVuZHMgQmFzZU1ldHJpY0ZhY3RvcnlQcm9wcyB7XG4gIHJlYWRvbmx5IHNlcnZpY2U6IElCYXNlU2VydmljZTtcbn1cblxuLyoqXG4gKiBNZXRyaWMgZmFjdG9yeSBmb3IgYSBiYXNlIHNlcnZpY2UgKHBhcmVudCBjbGFzcyBmb3IgZS5nLiBGYXJnYXRlIGFuZCBFQzIgc2VydmljZXMpLlxuICovXG5leHBvcnQgY2xhc3MgQmFzZVNlcnZpY2VNZXRyaWNGYWN0b3J5IGV4dGVuZHMgQmFzZU1ldHJpY0ZhY3Rvcnk8QmFzZVNlcnZpY2VNZXRyaWNGYWN0b3J5UHJvcHM+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpbWVuc2lvbnNNYXA6IERpbWVuc2lvbnNNYXA7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzbid0IHJlcXVpcmVkIGJ5IGNkay1tb25pdG9yaW5nLWNvbnN0cnVjdHMgYW55bW9yZTsgdXNlIHlvdXIgb3duIHJlZmVyZW5jZS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlOiBJQmFzZVNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbWV0cmljRmFjdG9yeTogTWV0cmljRmFjdG9yeSxcbiAgICBwcm9wczogQmFzZVNlcnZpY2VNZXRyaWNGYWN0b3J5UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKG1ldHJpY0ZhY3RvcnksIHByb3BzKTtcblxuICAgIHRoaXMuZGltZW5zaW9uc01hcCA9IHtcbiAgICAgIENsdXN0ZXJOYW1lOiBwcm9wcy5zZXJ2aWNlLmNsdXN0ZXIuY2x1c3Rlck5hbWUsXG4gICAgICBTZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZSxcbiAgICB9O1xuICAgIHRoaXMuc2VydmljZSA9IHByb3BzLnNlcnZpY2U7XG4gIH1cblxuICBtZXRyaWNDbHVzdGVyQ3B1VXRpbGlzYXRpb25JblBlcmNlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBcIkNQVVV0aWxpemF0aW9uXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuQVZFUkFHRSxcbiAgICAgIFwiQ2x1c3RlciBDUFUgVXRpbGl6YXRpb25cIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIEVjc05hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNDbHVzdGVyTWVtb3J5VXRpbGlzYXRpb25JblBlcmNlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBcIk1lbW9yeVV0aWxpemF0aW9uXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuQVZFUkFHRSxcbiAgICAgIFwiQ2x1c3RlciBNZW1vcnkgVXRpbGl6YXRpb25cIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIEVjc05hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNSdW5uaW5nVGFza0NvdW50KCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljKFxuICAgICAgXCJSdW5uaW5nVGFza0NvdW50XCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuQVZFUkFHRSxcbiAgICAgIFwiUnVubmluZyBUYXNrc1wiLFxuICAgICAgdGhpcy5kaW1lbnNpb25zTWFwLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgRWNzQ29udGFpbmVySW5zaWdodHNOYW1lc3BhY2UsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljRXBoZW1lcmFsU3RvcmFnZVJlc2VydmVkKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljKFxuICAgICAgXCJFcGhlbWVyYWxTdG9yYWdlUmVzZXJ2ZWRcIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5NQVgsXG4gICAgICBcIkVwaGVtZXJhbCBTdG9yYWdlIFJlc2VydmVkXCIsXG4gICAgICB0aGlzLmRpbWVuc2lvbnNNYXAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBFY3NDb250YWluZXJJbnNpZ2h0c05hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNFcGhlbWVyYWxTdG9yYWdlVXRpbGl6ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBcIkVwaGVtZXJhbFN0b3JhZ2VVdGlsaXplZFwiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLk1BWCxcbiAgICAgIFwiRXBoZW1lcmFsIFN0b3JhZ2UgVXRpbGl6ZWRcIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIEVjc0NvbnRhaW5lckluc2lnaHRzTmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0VwaGVtZXJhbFN0b3JhZ2VVc2FnZUluUGVyY2VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpY01hdGgoXG4gICAgICBcIjEwMCAqICh1c2VkL3RvdGFsKVwiLFxuICAgICAge1xuICAgICAgICB1c2VkOiB0aGlzLm1ldHJpY0VwaGVtZXJhbFN0b3JhZ2VVdGlsaXplZCgpLFxuICAgICAgICB0b3RhbDogdGhpcy5tZXRyaWNFcGhlbWVyYWxTdG9yYWdlUmVzZXJ2ZWQoKSxcbiAgICAgIH0sXG4gICAgICBcIkVwaGVtZXJhbCBTdG9yYWdlIFVzYWdlXCIsXG4gICAgKTtcbiAgfVxufVxuIl19