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 9.79 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})"); } metricConsumptionRate() { return this.metricFactory.createMetricMath("(consumptionVolume / PERIOD(consumptionVolume))", { consumptionVolume: this.metricDeletedMessageCount(), }, "Consumption TPS (avg: ${AVG}, max: ${MAX})"); } // 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})"); } } exports.SqsQueueMetricFactory = SqsQueueMetricFactory; _a = JSII_RTTI_SYMBOL_1; SqsQueueMetricFactory[_a] = { fqn: "cdk-monitoring-constructs.SqsQueueMetricFactory", version: "10.0.0" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FzUXVldWVNZXRyaWNGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiU3FzUXVldWVNZXRyaWNGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEseUNBS3NCO0FBTXRCLE1BQWEscUJBQXNCLFNBQVEsMEJBQWlCO0lBRzFELFlBQVksYUFBNEIsRUFBRSxLQUFpQztRQUN6RSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsb0NBQW9DO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUM7WUFDbEQsS0FBSyxFQUFFLFNBQVM7WUFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCwwQkFBMEI7UUFDeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQztZQUNwQyxTQUFTLEVBQUUsd0JBQWUsQ0FBQyxHQUFHO1lBQzlCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUM7WUFDdkMsU0FBUyxFQUFFLHdCQUFlLENBQUMsR0FBRztZQUM5QixLQUFLLEVBQUUsU0FBUztZQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELDRDQUE0QztRQUMxQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDO1lBQzdDLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCwrQkFBK0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztZQUMvQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDeEMsK0NBQStDLEVBQy9DO1lBQ0UsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixFQUFFO1NBQ3BELEVBQ0QsMkNBQTJDLENBQzVDLENBQUM7SUFDSixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDeEMsaURBQWlELEVBQ2pEO1lBQ0UsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFO1NBQ3BELEVBQ0QsNENBQTRDLENBQzdDLENBQUM7SUFDSixDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLHNFQUFzRTtJQUN0RSxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3hDLHdGQUF3RixFQUN4RjtZQUNFLGVBQWUsRUFBRSxJQUFJLENBQUMsb0NBQW9DLEVBQUU7WUFDNUQsY0FBYyxFQUFFLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUNqRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMseUJBQXlCLEVBQUU7U0FDcEQsRUFDRCxvREFBb0QsQ0FDckQsQ0FBQztJQUNKLENBQUM7O0FBN0ZILHNEQThGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElRdWV1ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCI7XG5cbmltcG9ydCB7XG4gIEJhc2VNZXRyaWNGYWN0b3J5LFxuICBCYXNlTWV0cmljRmFjdG9yeVByb3BzLFxuICBNZXRyaWNGYWN0b3J5LFxuICBNZXRyaWNTdGF0aXN0aWMsXG59IGZyb20gXCIuLi8uLi9jb21tb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBTcXNRdWV1ZU1ldHJpY0ZhY3RvcnlQcm9wcyBleHRlbmRzIEJhc2VNZXRyaWNGYWN0b3J5UHJvcHMge1xuICByZWFkb25seSBxdWV1ZTogSVF1ZXVlO1xufVxuXG5leHBvcnQgY2xhc3MgU3FzUXVldWVNZXRyaWNGYWN0b3J5IGV4dGVuZHMgQmFzZU1ldHJpY0ZhY3Rvcnkge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcXVldWU6IElRdWV1ZTtcblxuICBjb25zdHJ1Y3RvcihtZXRyaWNGYWN0b3J5OiBNZXRyaWNGYWN0b3J5LCBwcm9wczogU3FzUXVldWVNZXRyaWNGYWN0b3J5UHJvcHMpIHtcbiAgICBzdXBlcihtZXRyaWNGYWN0b3J5LCBwcm9wcyk7XG5cbiAgICB0aGlzLnF1ZXVlID0gcHJvcHMucXVldWU7XG4gIH1cblxuICBtZXRyaWNBcHByb3hpbWF0ZVZpc2libGVNZXNzYWdlQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5hZGFwdE1ldHJpYyhcbiAgICAgIHRoaXMucXVldWUubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzVmlzaWJsZSh7XG4gICAgICAgIGxhYmVsOiBcIlZpc2libGVcIixcbiAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbixcbiAgICAgICAgYWNjb3VudDogdGhpcy5hY2NvdW50LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0luY29taW5nTWVzc2FnZUNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuYWRhcHRNZXRyaWMoXG4gICAgICB0aGlzLnF1ZXVlLm1ldHJpY051bWJlck9mTWVzc2FnZXNTZW50KHtcbiAgICAgICAgc3RhdGlzdGljOiBNZXRyaWNTdGF0aXN0aWMuU1VNLFxuICAgICAgICBsYWJlbDogXCJJbmNvbWluZ1wiLFxuICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgICBhY2NvdW50OiB0aGlzLmFjY291bnQsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljRGVsZXRlZE1lc3NhZ2VDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmFkYXB0TWV0cmljKFxuICAgICAgdGhpcy5xdWV1ZS5tZXRyaWNOdW1iZXJPZk1lc3NhZ2VzRGVsZXRlZCh7XG4gICAgICAgIHN0YXRpc3RpYzogTWV0cmljU3RhdGlzdGljLlNVTSxcbiAgICAgICAgbGFiZWw6IFwiRGVsZXRlZFwiLFxuICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgICBhY2NvdW50OiB0aGlzLmFjY291bnQsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljQXBwcm94aW1hdGVBZ2VPZk9sZGVzdE1lc3NhZ2VJblNlY29uZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5hZGFwdE1ldHJpYyhcbiAgICAgIHRoaXMucXVldWUubWV0cmljQXBwcm94aW1hdGVBZ2VPZk9sZGVzdE1lc3NhZ2Uoe1xuICAgICAgICBsYWJlbDogXCJBZ2VcIixcbiAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbixcbiAgICAgICAgYWNjb3VudDogdGhpcy5hY2NvdW50LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0F2ZXJhZ2VNZXNzYWdlU2l6ZUluQnl0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5hZGFwdE1ldHJpYyhcbiAgICAgIHRoaXMucXVldWUubWV0cmljU2VudE1lc3NhZ2VTaXplKHtcbiAgICAgICAgbGFiZWw6IFwiU2l6ZVwiLFxuICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgICBhY2NvdW50OiB0aGlzLmFjY291bnQsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljUHJvZHVjdGlvblJhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWNNYXRoKFxuICAgICAgXCIocHJvZHVjdGlvblZvbHVtZSAvIFBFUklPRChwcm9kdWN0aW9uVm9sdW1lKSlcIixcbiAgICAgIHtcbiAgICAgICAgcHJvZHVjdGlvblZvbHVtZTogdGhpcy5tZXRyaWNJbmNvbWluZ01lc3NhZ2VDb3VudCgpLFxuICAgICAgfSxcbiAgICAgIFwiUHJvZHVjdGlvbiBUUFMgKGF2ZzogJHtBVkd9LCBtYXg6ICR7TUFYfSlcIixcbiAgICApO1xuICB9XG5cbiAgbWV0cmljQ29uc3VtcHRpb25SYXRlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljTWF0aChcbiAgICAgIFwiKGNvbnN1bXB0aW9uVm9sdW1lIC8gUEVSSU9EKGNvbnN1bXB0aW9uVm9sdW1lKSlcIixcbiAgICAgIHtcbiAgICAgICAgY29uc3VtcHRpb25Wb2x1bWU6IHRoaXMubWV0cmljRGVsZXRlZE1lc3NhZ2VDb3VudCgpLFxuICAgICAgfSxcbiAgICAgIFwiQ29uc3VtcHRpb24gVFBTIChhdmc6ICR7QVZHfSwgbWF4OiAke01BWH0pXCIsXG4gICAgKTtcbiAgfVxuXG4gIC8vIFRpbWUgdG8gZHJhaW4gcXVldWUgKG51bWJlciBvZiB2aXNpYmxlIG1lc3NhZ2VzIC8gbmV0IGNvbnN1bXB0aW9uIHJhdGUpXG4gIC8vIE5ldCBjb25zdW1wdGlvbiByYXRlIGlzIGRlZmluZWQgYnkgY29uc3VtcHRpb24gcmF0ZSAtIGluY29taW5nIHJhdGVcbiAgbWV0cmljVGltZVRvRHJhaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWNNYXRoKFxuICAgICAgXCIodmlzaWJsZU1lc3NhZ2VzIC8gKGNvbnN1bXB0aW9uVm9sdW1lIC0gaW5jb21pbmdWb2x1bWUpKSAqIChQRVJJT0QoY29uc3VtcHRpb25Wb2x1bWUpKVwiLFxuICAgICAge1xuICAgICAgICB2aXNpYmxlTWVzc2FnZXM6IHRoaXMubWV0cmljQXBwcm94aW1hdGVWaXNpYmxlTWVzc2FnZUNvdW50KCksXG4gICAgICAgIGluY29taW5nVm9sdW1lOiB0aGlzLm1ldHJpY0luY29taW5nTWVzc2FnZUNvdW50KCksXG4gICAgICAgIGNvbnN1bXB0aW9uVm9sdW1lOiB0aGlzLm1ldHJpY0RlbGV0ZWRNZXNzYWdlQ291bnQoKSxcbiAgICAgIH0sXG4gICAgICBcIlRpbWUgdG8gRHJhaW4gKHNlY29uZHMpIChhdmc6ICR7QVZHfSwgbWF4OiAke01BWH0pXCIsXG4gICAgKTtcbiAgfVxufVxuIl19