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

72 lines 10.5 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.SqsQueueMetricFactory = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const common_1 = require("../../common"); class SqsQueueMetricFactory extends common_1.BaseMetricFactory { constructor(metricFactory, props) { super(metricFactory, props); this.queue = props.queue; } metricApproximateVisibleMessageCount() { return this.metricFactory.adaptMetric(this.queue.metricApproximateNumberOfMessagesVisible({ label: "Visible", region: this.region, account: this.account, })); } metricIncomingMessageCount() { return this.metricFactory.adaptMetric(this.queue.metricNumberOfMessagesSent({ statistic: common_1.MetricStatistic.SUM, label: "Incoming", region: this.region, account: this.account, })); } metricDeletedMessageCount() { return this.metricFactory.adaptMetric(this.queue.metricNumberOfMessagesDeleted({ statistic: common_1.MetricStatistic.SUM, label: "Deleted", region: this.region, account: this.account, })); } metricApproximateAgeOfOldestMessageInSeconds() { return this.metricFactory.adaptMetric(this.queue.metricApproximateAgeOfOldestMessage({ label: "Age", region: this.region, account: this.account, })); } metricAverageMessageSizeInBytes() { return this.metricFactory.adaptMetric(this.queue.metricSentMessageSize({ label: "Size", region: this.region, account: this.account, })); } metricProductionRate() { return this.metricFactory.createMetricMath("(productionVolume / PERIOD(productionVolume))", { productionVolume: this.metricIncomingMessageCount(), }, "Production TPS (avg: ${AVG}, max: ${MAX})", undefined, undefined, this.region, this.account); } metricConsumptionRate() { return this.metricFactory.createMetricMath("(consumptionVolume / PERIOD(consumptionVolume))", { consumptionVolume: this.metricDeletedMessageCount(), }, "Consumption TPS (avg: ${AVG}, max: ${MAX})", undefined, undefined, this.region, this.account); } // Time to drain queue (number of visible messages / net consumption rate) // Net consumption rate is defined by consumption rate - incoming rate metricTimeToDrain() { return this.metricFactory.createMetricMath("(visibleMessages / (consumptionVolume - incomingVolume)) * (PERIOD(consumptionVolume))", { visibleMessages: this.metricApproximateVisibleMessageCount(), incomingVolume: this.metricIncomingMessageCount(), consumptionVolume: this.metricDeletedMessageCount(), }, "Time to Drain (seconds) (avg: ${AVG}, max: ${MAX})", undefined, undefined, this.region, this.account); } } exports.SqsQueueMetricFactory = SqsQueueMetricFactory; _a = JSII_RTTI_SYMBOL_1; SqsQueueMetricFactory[_a] = { fqn: "cdk-monitoring-constructs.SqsQueueMetricFactory", version: "9.7.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FzUXVldWVNZXRyaWNGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiU3FzUXVldWVNZXRyaWNGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEseUNBS3NCO0FBTXRCLE1BQWEscUJBQXNCLFNBQVEsMEJBQTZDO0lBR3RGLFlBQVksYUFBNEIsRUFBRSxLQUFpQztRQUN6RSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsb0NBQW9DO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUM7WUFDbEQsS0FBSyxFQUFFLFNBQVM7WUFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCwwQkFBMEI7UUFDeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQztZQUNwQyxTQUFTLEVBQUUsd0JBQWUsQ0FBQyxHQUFHO1lBQzlCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUM7WUFDdkMsU0FBUyxFQUFFLHdCQUFlLENBQUMsR0FBRztZQUM5QixLQUFLLEVBQUUsU0FBUztZQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELDRDQUE0QztRQUMxQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDO1lBQzdDLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCwrQkFBK0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztZQUMvQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDeEMsK0NBQStDLEVBQy9DO1lBQ0UsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixFQUFFO1NBQ3BELEVBQ0QsMkNBQTJDLEVBQzNDLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDeEMsaURBQWlELEVBQ2pEO1lBQ0UsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFO1NBQ3BELEVBQ0QsNENBQTRDLEVBQzVDLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLHNFQUFzRTtJQUN0RSxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3hDLHdGQUF3RixFQUN4RjtZQUNFLGVBQWUsRUFBRSxJQUFJLENBQUMsb0NBQW9DLEVBQUU7WUFDNUQsY0FBYyxFQUFFLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUNqRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMseUJBQXlCLEVBQUU7U0FDcEQsRUFDRCxvREFBb0QsRUFDcEQsU0FBUyxFQUNULFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7O0FBekdILHNEQTBHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElRdWV1ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCI7XG5cbmltcG9ydCB7XG4gIEJhc2VNZXRyaWNGYWN0b3J5LFxuICBCYXNlTWV0cmljRmFjdG9yeVByb3BzLFxuICBNZXRyaWNGYWN0b3J5LFxuICBNZXRyaWNTdGF0aXN0aWMsXG59IGZyb20gXCIuLi8uLi9jb21tb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBTcXNRdWV1ZU1ldHJpY0ZhY3RvcnlQcm9wcyBleHRlbmRzIEJhc2VNZXRyaWNGYWN0b3J5UHJvcHMge1xuICByZWFkb25seSBxdWV1ZTogSVF1ZXVlO1xufVxuXG5leHBvcnQgY2xhc3MgU3FzUXVldWVNZXRyaWNGYWN0b3J5IGV4dGVuZHMgQmFzZU1ldHJpY0ZhY3Rvcnk8U3FzUXVldWVNZXRyaWNGYWN0b3J5UHJvcHM+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHF1ZXVlOiBJUXVldWU7XG5cbiAgY29uc3RydWN0b3IobWV0cmljRmFjdG9yeTogTWV0cmljRmFjdG9yeSwgcHJvcHM6IFNxc1F1ZXVlTWV0cmljRmFjdG9yeVByb3BzKSB7XG4gICAgc3VwZXIobWV0cmljRmFjdG9yeSwgcHJvcHMpO1xuXG4gICAgdGhpcy5xdWV1ZSA9IHByb3BzLnF1ZXVlO1xuICB9XG5cbiAgbWV0cmljQXBwcm94aW1hdGVWaXNpYmxlTWVzc2FnZUNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuYWRhcHRNZXRyaWMoXG4gICAgICB0aGlzLnF1ZXVlLm1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc1Zpc2libGUoe1xuICAgICAgICBsYWJlbDogXCJWaXNpYmxlXCIsXG4gICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNJbmNvbWluZ01lc3NhZ2VDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmFkYXB0TWV0cmljKFxuICAgICAgdGhpcy5xdWV1ZS5tZXRyaWNOdW1iZXJPZk1lc3NhZ2VzU2VudCh7XG4gICAgICAgIHN0YXRpc3RpYzogTWV0cmljU3RhdGlzdGljLlNVTSxcbiAgICAgICAgbGFiZWw6IFwiSW5jb21pbmdcIixcbiAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbixcbiAgICAgICAgYWNjb3VudDogdGhpcy5hY2NvdW50LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0RlbGV0ZWRNZXNzYWdlQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5hZGFwdE1ldHJpYyhcbiAgICAgIHRoaXMucXVldWUubWV0cmljTnVtYmVyT2ZNZXNzYWdlc0RlbGV0ZWQoe1xuICAgICAgICBzdGF0aXN0aWM6IE1ldHJpY1N0YXRpc3RpYy5TVU0sXG4gICAgICAgIGxhYmVsOiBcIkRlbGV0ZWRcIixcbiAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbixcbiAgICAgICAgYWNjb3VudDogdGhpcy5hY2NvdW50LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0FwcHJveGltYXRlQWdlT2ZPbGRlc3RNZXNzYWdlSW5TZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuYWRhcHRNZXRyaWMoXG4gICAgICB0aGlzLnF1ZXVlLm1ldHJpY0FwcHJveGltYXRlQWdlT2ZPbGRlc3RNZXNzYWdlKHtcbiAgICAgICAgbGFiZWw6IFwiQWdlXCIsXG4gICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNBdmVyYWdlTWVzc2FnZVNpemVJbkJ5dGVzKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuYWRhcHRNZXRyaWMoXG4gICAgICB0aGlzLnF1ZXVlLm1ldHJpY1NlbnRNZXNzYWdlU2l6ZSh7XG4gICAgICAgIGxhYmVsOiBcIlNpemVcIixcbiAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbixcbiAgICAgICAgYWNjb3VudDogdGhpcy5hY2NvdW50LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY1Byb2R1Y3Rpb25SYXRlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljTWF0aChcbiAgICAgIFwiKHByb2R1Y3Rpb25Wb2x1bWUgLyBQRVJJT0QocHJvZHVjdGlvblZvbHVtZSkpXCIsXG4gICAgICB7XG4gICAgICAgIHByb2R1Y3Rpb25Wb2x1bWU6IHRoaXMubWV0cmljSW5jb21pbmdNZXNzYWdlQ291bnQoKSxcbiAgICAgIH0sXG4gICAgICBcIlByb2R1Y3Rpb24gVFBTIChhdmc6ICR7QVZHfSwgbWF4OiAke01BWH0pXCIsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljQ29uc3VtcHRpb25SYXRlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljTWF0aChcbiAgICAgIFwiKGNvbnN1bXB0aW9uVm9sdW1lIC8gUEVSSU9EKGNvbnN1bXB0aW9uVm9sdW1lKSlcIixcbiAgICAgIHtcbiAgICAgICAgY29uc3VtcHRpb25Wb2x1bWU6IHRoaXMubWV0cmljRGVsZXRlZE1lc3NhZ2VDb3VudCgpLFxuICAgICAgfSxcbiAgICAgIFwiQ29uc3VtcHRpb24gVFBTIChhdmc6ICR7QVZHfSwgbWF4OiAke01BWH0pXCIsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG5cbiAgLy8gVGltZSB0byBkcmFpbiBxdWV1ZSAobnVtYmVyIG9mIHZpc2libGUgbWVzc2FnZXMgLyBuZXQgY29uc3VtcHRpb24gcmF0ZSlcbiAgLy8gTmV0IGNvbnN1bXB0aW9uIHJhdGUgaXMgZGVmaW5lZCBieSBjb25zdW1wdGlvbiByYXRlIC0gaW5jb21pbmcgcmF0ZVxuICBtZXRyaWNUaW1lVG9EcmFpbigpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpY01hdGgoXG4gICAgICBcIih2aXNpYmxlTWVzc2FnZXMgLyAoY29uc3VtcHRpb25Wb2x1bWUgLSBpbmNvbWluZ1ZvbHVtZSkpICogKFBFUklPRChjb25zdW1wdGlvblZvbHVtZSkpXCIsXG4gICAgICB7XG4gICAgICAgIHZpc2libGVNZXNzYWdlczogdGhpcy5tZXRyaWNBcHByb3hpbWF0ZVZpc2libGVNZXNzYWdlQ291bnQoKSxcbiAgICAgICAgaW5jb21pbmdWb2x1bWU6IHRoaXMubWV0cmljSW5jb21pbmdNZXNzYWdlQ291bnQoKSxcbiAgICAgICAgY29uc3VtcHRpb25Wb2x1bWU6IHRoaXMubWV0cmljRGVsZXRlZE1lc3NhZ2VDb3VudCgpLFxuICAgICAgfSxcbiAgICAgIFwiVGltZSB0byBEcmFpbiAoc2Vjb25kcykgKGF2ZzogJHtBVkd9LCBtYXg6ICR7TUFYfSlcIixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==