cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
63 lines • 11.6 kB
JavaScript
"use strict";
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RedshiftClusterMetricFactory = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const common_1 = require("../../common");
const RedshiftNamespace = "AWS/Redshift";
class RedshiftClusterMetricFactory extends common_1.BaseMetricFactory {
constructor(metricFactory, props) {
super(metricFactory, props);
this.dimensionsMap = {
ClusterIdentifier: props.clusterIdentifier,
};
}
metricTotalConnectionCount() {
return this.metric("DatabaseConnections", common_1.MetricStatistic.SUM, "Connections");
}
metricAverageDiskSpaceUsageInPercent() {
return this.metric("PercentageDiskSpaceUsed", common_1.MetricStatistic.AVERAGE, "Disk Usage");
}
metricAverageCpuUsageInPercent() {
return this.metric("CPUUtilization", common_1.MetricStatistic.AVERAGE, "CPU Usage");
}
metricShortQueryDurationP90InMillis() {
const sQueryLatency90 = this.metricQueryDuration("short", common_1.MetricStatistic.P90);
// need to convert micros to millis
return this.metricFactory.createMetricMath("sQueryLatency90 / 1000", { sQueryLatency90 }, "Short P90");
}
metricMediumQueryDurationP90InMillis() {
const mQueryLatency90 = this.metricQueryDuration("medium", common_1.MetricStatistic.P90);
// need to convert micros to millis
return this.metricFactory.createMetricMath("mQueryLatency90 / 1000", { mQueryLatency90 }, "Medium P90");
}
metricLongQueryDurationP90InMillis() {
const lQueryLatency90 = this.metricQueryDuration("long", common_1.MetricStatistic.P90);
// need to convert micros to millis
return this.metricFactory.createMetricMath("lQueryLatency90 / 1000", { lQueryLatency90 }, "Long P90");
}
metricMaintenanceModeEnabled() {
return this.metric("MaintenanceMode", common_1.MetricStatistic.MAX, "Maintenance");
}
metricReadLatencyP90InMillis() {
const readLatency = this.metric("ReadLatency", common_1.MetricStatistic.P90, "Read P90");
// need to convert seconds to millis
return this.metricFactory.createMetricMath("readLatency * 1000", { readLatency }, "Read P90");
}
metricWriteLatencyP90InMillis() {
const writeLatency = this.metric("WriteLatency", common_1.MetricStatistic.P90, "Write P90");
// need to convert seconds to millis
return this.metricFactory.createMetricMath("writeLatency * 1000", { writeLatency }, "Write P90");
}
metricQueryDuration(latency, statistic) {
const dimensions = { ...this.dimensionsMap, latency };
return this.metricFactory.createMetric("QueryDuration", statistic, latency, dimensions, undefined, RedshiftNamespace, undefined, this.region, this.account);
}
metric(metricName, statistic, label) {
return this.metricFactory.createMetric(metricName, statistic, label, this.dimensionsMap, undefined, RedshiftNamespace, undefined, this.region, this.account);
}
}
exports.RedshiftClusterMetricFactory = RedshiftClusterMetricFactory;
_a = JSII_RTTI_SYMBOL_1;
RedshiftClusterMetricFactory[_a] = { fqn: "cdk-monitoring-constructs.RedshiftClusterMetricFactory", version: "10.0.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVkc2hpZnRDbHVzdGVyTWV0cmljRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlJlZHNoaWZ0Q2x1c3Rlck1ldHJpY0ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx5Q0FLc0I7QUFFdEIsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUM7QUFTekMsTUFBYSw0QkFBNkIsU0FBUSwwQkFBaUI7SUFHakUsWUFDRSxhQUE0QixFQUM1QixLQUF3QztRQUV4QyxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtTQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2hCLHFCQUFxQixFQUNyQix3QkFBZSxDQUFDLEdBQUcsRUFDbkIsYUFBYSxDQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsb0NBQW9DO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIseUJBQXlCLEVBQ3pCLHdCQUFlLENBQUMsT0FBTyxFQUN2QixZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCw4QkFBOEI7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLHdCQUFlLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxtQ0FBbUM7UUFDakMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUM5QyxPQUFPLEVBQ1Asd0JBQWUsQ0FBQyxHQUFHLENBQ3BCLENBQUM7UUFDRixtQ0FBbUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUN4Qyx3QkFBd0IsRUFDeEIsRUFBRSxlQUFlLEVBQUUsRUFDbkIsV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsb0NBQW9DO1FBQ2xDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FDOUMsUUFBUSxFQUNSLHdCQUFlLENBQUMsR0FBRyxDQUNwQixDQUFDO1FBQ0YsbUNBQW1DO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDeEMsd0JBQXdCLEVBQ3hCLEVBQUUsZUFBZSxFQUFFLEVBQ25CLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELGtDQUFrQztRQUNoQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQzlDLE1BQU0sRUFDTix3QkFBZSxDQUFDLEdBQUcsQ0FDcEIsQ0FBQztRQUNGLG1DQUFtQztRQUNuQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3hDLHdCQUF3QixFQUN4QixFQUFFLGVBQWUsRUFBRSxFQUNuQixVQUFVLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLHdCQUFlLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FDN0IsYUFBYSxFQUNiLHdCQUFlLENBQUMsR0FBRyxFQUNuQixVQUFVLENBQ1gsQ0FBQztRQUNGLG9DQUFvQztRQUNwQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3hDLG9CQUFvQixFQUNwQixFQUFFLFdBQVcsRUFBRSxFQUNmLFVBQVUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELDZCQUE2QjtRQUMzQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUM5QixjQUFjLEVBQ2Qsd0JBQWUsQ0FBQyxHQUFHLEVBQ25CLFdBQVcsQ0FDWixDQUFDO1FBQ0Ysb0NBQW9DO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDeEMscUJBQXFCLEVBQ3JCLEVBQUUsWUFBWSxFQUFFLEVBQ2hCLFdBQVcsQ0FDWixDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQixDQUN6QixPQUEwQixFQUMxQixTQUEwQjtRQUUxQixNQUFNLFVBQVUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyxlQUFlLEVBQ2YsU0FBUyxFQUNULE9BQU8sRUFDUCxVQUFVLEVBQ1YsU0FBUyxFQUNULGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUNaLFVBQWtCLEVBQ2xCLFNBQTBCLEVBQzFCLEtBQWE7UUFFYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyxVQUFVLEVBQ1YsU0FBUyxFQUNULEtBQUssRUFDTCxJQUFJLENBQUMsYUFBYSxFQUNsQixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7O0FBM0lILG9FQTRJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpbWVuc2lvbnNNYXAgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcblxuaW1wb3J0IHtcbiAgQmFzZU1ldHJpY0ZhY3RvcnksXG4gIEJhc2VNZXRyaWNGYWN0b3J5UHJvcHMsXG4gIE1ldHJpY0ZhY3RvcnksXG4gIE1ldHJpY1N0YXRpc3RpYyxcbn0gZnJvbSBcIi4uLy4uL2NvbW1vblwiO1xuXG5jb25zdCBSZWRzaGlmdE5hbWVzcGFjZSA9IFwiQVdTL1JlZHNoaWZ0XCI7XG5cbnR5cGUgUXVlcnlMYXRlbmN5Q2xhc3MgPSBcInNob3J0XCIgfCBcIm1lZGl1bVwiIHwgXCJsb25nXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVkc2hpZnRDbHVzdGVyTWV0cmljRmFjdG9yeVByb3BzXG4gIGV4dGVuZHMgQmFzZU1ldHJpY0ZhY3RvcnlQcm9wcyB7XG4gIHJlYWRvbmx5IGNsdXN0ZXJJZGVudGlmaWVyOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWRzaGlmdENsdXN0ZXJNZXRyaWNGYWN0b3J5IGV4dGVuZHMgQmFzZU1ldHJpY0ZhY3Rvcnkge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGltZW5zaW9uc01hcDogRGltZW5zaW9uc01hcDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBtZXRyaWNGYWN0b3J5OiBNZXRyaWNGYWN0b3J5LFxuICAgIHByb3BzOiBSZWRzaGlmdENsdXN0ZXJNZXRyaWNGYWN0b3J5UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKG1ldHJpY0ZhY3RvcnksIHByb3BzKTtcblxuICAgIHRoaXMuZGltZW5zaW9uc01hcCA9IHtcbiAgICAgIENsdXN0ZXJJZGVudGlmaWVyOiBwcm9wcy5jbHVzdGVySWRlbnRpZmllcixcbiAgICB9O1xuICB9XG5cbiAgbWV0cmljVG90YWxDb25uZWN0aW9uQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKFxuICAgICAgXCJEYXRhYmFzZUNvbm5lY3Rpb25zXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuU1VNLFxuICAgICAgXCJDb25uZWN0aW9uc1wiLFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNBdmVyYWdlRGlza1NwYWNlVXNhZ2VJblBlcmNlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKFxuICAgICAgXCJQZXJjZW50YWdlRGlza1NwYWNlVXNlZFwiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLkFWRVJBR0UsXG4gICAgICBcIkRpc2sgVXNhZ2VcIixcbiAgICApO1xuICB9XG5cbiAgbWV0cmljQXZlcmFnZUNwdVVzYWdlSW5QZXJjZW50KCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYyhcIkNQVVV0aWxpemF0aW9uXCIsIE1ldHJpY1N0YXRpc3RpYy5BVkVSQUdFLCBcIkNQVSBVc2FnZVwiKTtcbiAgfVxuXG4gIG1ldHJpY1Nob3J0UXVlcnlEdXJhdGlvblA5MEluTWlsbGlzKCkge1xuICAgIGNvbnN0IHNRdWVyeUxhdGVuY3k5MCA9IHRoaXMubWV0cmljUXVlcnlEdXJhdGlvbihcbiAgICAgIFwic2hvcnRcIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5QOTAsXG4gICAgKTtcbiAgICAvLyBuZWVkIHRvIGNvbnZlcnQgbWljcm9zIHRvIG1pbGxpc1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljTWF0aChcbiAgICAgIFwic1F1ZXJ5TGF0ZW5jeTkwIC8gMTAwMFwiLFxuICAgICAgeyBzUXVlcnlMYXRlbmN5OTAgfSxcbiAgICAgIFwiU2hvcnQgUDkwXCIsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY01lZGl1bVF1ZXJ5RHVyYXRpb25QOTBJbk1pbGxpcygpIHtcbiAgICBjb25zdCBtUXVlcnlMYXRlbmN5OTAgPSB0aGlzLm1ldHJpY1F1ZXJ5RHVyYXRpb24oXG4gICAgICBcIm1lZGl1bVwiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLlA5MCxcbiAgICApO1xuICAgIC8vIG5lZWQgdG8gY29udmVydCBtaWNyb3MgdG8gbWlsbGlzXG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWNNYXRoKFxuICAgICAgXCJtUXVlcnlMYXRlbmN5OTAgLyAxMDAwXCIsXG4gICAgICB7IG1RdWVyeUxhdGVuY3k5MCB9LFxuICAgICAgXCJNZWRpdW0gUDkwXCIsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0xvbmdRdWVyeUR1cmF0aW9uUDkwSW5NaWxsaXMoKSB7XG4gICAgY29uc3QgbFF1ZXJ5TGF0ZW5jeTkwID0gdGhpcy5tZXRyaWNRdWVyeUR1cmF0aW9uKFxuICAgICAgXCJsb25nXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDkwLFxuICAgICk7XG4gICAgLy8gbmVlZCB0byBjb252ZXJ0IG1pY3JvcyB0byBtaWxsaXNcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpY01hdGgoXG4gICAgICBcImxRdWVyeUxhdGVuY3k5MCAvIDEwMDBcIixcbiAgICAgIHsgbFF1ZXJ5TGF0ZW5jeTkwIH0sXG4gICAgICBcIkxvbmcgUDkwXCIsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY01haW50ZW5hbmNlTW9kZUVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKFwiTWFpbnRlbmFuY2VNb2RlXCIsIE1ldHJpY1N0YXRpc3RpYy5NQVgsIFwiTWFpbnRlbmFuY2VcIik7XG4gIH1cblxuICBtZXRyaWNSZWFkTGF0ZW5jeVA5MEluTWlsbGlzKCkge1xuICAgIGNvbnN0IHJlYWRMYXRlbmN5ID0gdGhpcy5tZXRyaWMoXG4gICAgICBcIlJlYWRMYXRlbmN5XCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDkwLFxuICAgICAgXCJSZWFkIFA5MFwiLFxuICAgICk7XG4gICAgLy8gbmVlZCB0byBjb252ZXJ0IHNlY29uZHMgdG8gbWlsbGlzXG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWNNYXRoKFxuICAgICAgXCJyZWFkTGF0ZW5jeSAqIDEwMDBcIixcbiAgICAgIHsgcmVhZExhdGVuY3kgfSxcbiAgICAgIFwiUmVhZCBQOTBcIixcbiAgICApO1xuICB9XG5cbiAgbWV0cmljV3JpdGVMYXRlbmN5UDkwSW5NaWxsaXMoKSB7XG4gICAgY29uc3Qgd3JpdGVMYXRlbmN5ID0gdGhpcy5tZXRyaWMoXG4gICAgICBcIldyaXRlTGF0ZW5jeVwiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLlA5MCxcbiAgICAgIFwiV3JpdGUgUDkwXCIsXG4gICAgKTtcbiAgICAvLyBuZWVkIHRvIGNvbnZlcnQgc2Vjb25kcyB0byBtaWxsaXNcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpY01hdGgoXG4gICAgICBcIndyaXRlTGF0ZW5jeSAqIDEwMDBcIixcbiAgICAgIHsgd3JpdGVMYXRlbmN5IH0sXG4gICAgICBcIldyaXRlIFA5MFwiLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG1ldHJpY1F1ZXJ5RHVyYXRpb24oXG4gICAgbGF0ZW5jeTogUXVlcnlMYXRlbmN5Q2xhc3MsXG4gICAgc3RhdGlzdGljOiBNZXRyaWNTdGF0aXN0aWMsXG4gICkge1xuICAgIGNvbnN0IGRpbWVuc2lvbnMgPSB7IC4uLnRoaXMuZGltZW5zaW9uc01hcCwgbGF0ZW5jeSB9O1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljKFxuICAgICAgXCJRdWVyeUR1cmF0aW9uXCIsXG4gICAgICBzdGF0aXN0aWMsXG4gICAgICBsYXRlbmN5LFxuICAgICAgZGltZW5zaW9ucyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIFJlZHNoaWZ0TmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbWV0cmljKFxuICAgIG1ldHJpY05hbWU6IHN0cmluZyxcbiAgICBzdGF0aXN0aWM6IE1ldHJpY1N0YXRpc3RpYyxcbiAgICBsYWJlbDogc3RyaW5nLFxuICApIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBzdGF0aXN0aWMsXG4gICAgICBsYWJlbCxcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIFJlZHNoaWZ0TmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxufVxuIl19