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