cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
72 lines • 9.79 kB
JavaScript
"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