cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
71 lines • 11.8 kB
JavaScript
"use strict";
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LambdaFunctionEnhancedMetricFactory = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const common_1 = require("../../common");
const LambdaInsightsNamespace = "LambdaInsights";
class LambdaFunctionEnhancedMetricFactory extends common_1.BaseMetricFactory {
constructor(metricFactory, props) {
super(metricFactory, props);
this.lambdaFunction = props.lambdaFunction;
}
enhancedMetricMaxCpuTotalTime() {
return this.enhancedMetric("cpu_total_time", common_1.MetricStatistic.MAX, "CPUTotalTime.Max");
}
enhancedMetricP90CpuTotalTime() {
return this.enhancedMetric("cpu_total_time", common_1.MetricStatistic.P90, "CPUTotalTime.P90");
}
enhancedMetricAvgCpuTotalTime() {
return this.enhancedMetric("cpu_total_time", common_1.MetricStatistic.AVERAGE, "CPUTotalTime.Avg");
}
enhancedMetricMaxMemoryUtilization() {
return this.enhancedMetric("memory_utilization", common_1.MetricStatistic.MAX, "MemoryUtilization.Max");
}
enhancedMetricP90MemoryUtilization() {
return this.enhancedMetric("memory_utilization", common_1.MetricStatistic.P90, "MemoryUtilization.P90");
}
enhancedMetricAvgMemoryUtilization() {
return this.enhancedMetric("memory_utilization", common_1.MetricStatistic.AVERAGE, "MemoryUtilization.Avg");
}
enhancedMetricMaxInitDuration() {
return this.enhancedMetric("init_duration", common_1.MetricStatistic.MAX, "InitDuration.Max");
}
enhancedMetricP90InitDuration() {
return this.enhancedMetric("init_duration", common_1.MetricStatistic.P90, "InitDuration.P90");
}
enhancedMetricAvgInitDuration() {
return this.enhancedMetric("init_duration", common_1.MetricStatistic.AVERAGE, "InitDuration.Avg");
}
enhancedMetricInitDuration() {
return this.enhancedMetric("init_duration", common_1.MetricStatistic.SUM, "InitDuration.Sum");
}
enhancedMetricMaxTotalMemory() {
return this.enhancedMetric("total_memory", common_1.MetricStatistic.MAX, "TotalMemory");
}
enhancedMetricFunctionDuration() {
return this.metricFactory.adaptMetric(this.lambdaFunction.metricDuration({
statistic: common_1.MetricStatistic.SUM,
region: this.region,
account: this.account,
}));
}
enhancedMetricFunctionCost() {
return this.metricFactory.createMetricMath("(total_memory * duration) + (total_memory * init_duration)", {
total_memory: this.enhancedMetricMaxTotalMemory(),
duration: this.enhancedMetricFunctionDuration(),
init_duration: this.enhancedMetricInitDuration(),
}, "Function Cost (avg: ${AVG}, max: ${MAX})");
}
enhancedMetric(metricName, statistic, label, color) {
const [functionName, functionVersion] = this.lambdaFunction.functionName.split(":");
return this.metricFactory.createMetric(metricName, statistic, label, {
function_name: functionName,
version: functionVersion,
}, color, LambdaInsightsNamespace, undefined, this.region, this.account);
}
}
exports.LambdaFunctionEnhancedMetricFactory = LambdaFunctionEnhancedMetricFactory;
_a = JSII_RTTI_SYMBOL_1;
LambdaFunctionEnhancedMetricFactory[_a] = { fqn: "cdk-monitoring-constructs.LambdaFunctionEnhancedMetricFactory", version: "9.15.2" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhRnVuY3Rpb25FbmhhbmNlZE1ldHJpY0ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMYW1iZGFGdW5jdGlvbkVuaGFuY2VkTWV0cmljRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLHlDQUtzQjtBQUV0QixNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDO0FBT2pELE1BQWEsbUNBQW9DLFNBQVEsMEJBQTJEO0lBR2xILFlBQ0UsYUFBNEIsRUFDNUIsS0FBK0M7UUFFL0MsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7SUFDN0MsQ0FBQztJQUVELDZCQUE2QjtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQ3hCLGdCQUFnQixFQUNoQix3QkFBZSxDQUFDLEdBQUcsRUFDbkIsa0JBQWtCLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FDeEIsZ0JBQWdCLEVBQ2hCLHdCQUFlLENBQUMsR0FBRyxFQUNuQixrQkFBa0IsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCw2QkFBNkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUN4QixnQkFBZ0IsRUFDaEIsd0JBQWUsQ0FBQyxPQUFPLEVBQ3ZCLGtCQUFrQixDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELGtDQUFrQztRQUNoQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQ3hCLG9CQUFvQixFQUNwQix3QkFBZSxDQUFDLEdBQUcsRUFDbkIsdUJBQXVCLENBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQsa0NBQWtDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FDeEIsb0JBQW9CLEVBQ3BCLHdCQUFlLENBQUMsR0FBRyxFQUNuQix1QkFBdUIsQ0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFRCxrQ0FBa0M7UUFDaEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUN4QixvQkFBb0IsRUFDcEIsd0JBQWUsQ0FBQyxPQUFPLEVBQ3ZCLHVCQUF1QixDQUN4QixDQUFDO0lBQ0osQ0FBQztJQUVELDZCQUE2QjtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQ3hCLGVBQWUsRUFDZix3QkFBZSxDQUFDLEdBQUcsRUFDbkIsa0JBQWtCLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FDeEIsZUFBZSxFQUNmLHdCQUFlLENBQUMsR0FBRyxFQUNuQixrQkFBa0IsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCw2QkFBNkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUN4QixlQUFlLEVBQ2Ysd0JBQWUsQ0FBQyxPQUFPLEVBQ3ZCLGtCQUFrQixDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQ3hCLGVBQWUsRUFDZix3QkFBZSxDQUFDLEdBQUcsRUFDbkIsa0JBQWtCLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsNEJBQTRCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FDeEIsY0FBYyxFQUNkLHdCQUFlLENBQUMsR0FBRyxFQUNuQixhQUFhLENBQ2QsQ0FBQztJQUNKLENBQUM7SUFFTyw4QkFBOEI7UUFDcEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUM7WUFDakMsU0FBUyxFQUFFLHdCQUFlLENBQUMsR0FBRztZQUM5QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3hDLDREQUE0RCxFQUM1RDtZQUNFLFlBQVksRUFBRSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDakQsUUFBUSxFQUFFLElBQUksQ0FBQyw4QkFBOEIsRUFBRTtZQUMvQyxhQUFhLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixFQUFFO1NBQ2pELEVBQ0QsMENBQTBDLENBQzNDLENBQUM7SUFDSixDQUFDO0lBRU8sY0FBYyxDQUNwQixVQUFrQixFQUNsQixTQUEwQixFQUMxQixLQUFhLEVBQ2IsS0FBYztRQUVkLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLEdBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyxVQUFVLEVBQ1YsU0FBUyxFQUNULEtBQUssRUFDTDtZQUNFLGFBQWEsRUFBRSxZQUFZO1lBQzNCLE9BQU8sRUFBRSxlQUFlO1NBQ3pCLEVBQ0QsS0FBSyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDOztBQWhKSCxrRkFpSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuXG5pbXBvcnQge1xuICBCYXNlTWV0cmljRmFjdG9yeSxcbiAgQmFzZU1ldHJpY0ZhY3RvcnlQcm9wcyxcbiAgTWV0cmljRmFjdG9yeSxcbiAgTWV0cmljU3RhdGlzdGljLFxufSBmcm9tIFwiLi4vLi4vY29tbW9uXCI7XG5cbmNvbnN0IExhbWJkYUluc2lnaHRzTmFtZXNwYWNlID0gXCJMYW1iZGFJbnNpZ2h0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUZ1bmN0aW9uRW5oYW5jZWRNZXRyaWNGYWN0b3J5UHJvcHNcbiAgZXh0ZW5kcyBCYXNlTWV0cmljRmFjdG9yeVByb3BzIHtcbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb246IElGdW5jdGlvbjtcbn1cblxuZXhwb3J0IGNsYXNzIExhbWJkYUZ1bmN0aW9uRW5oYW5jZWRNZXRyaWNGYWN0b3J5IGV4dGVuZHMgQmFzZU1ldHJpY0ZhY3Rvcnk8TGFtYmRhRnVuY3Rpb25FbmhhbmNlZE1ldHJpY0ZhY3RvcnlQcm9wcz4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb246IElGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBtZXRyaWNGYWN0b3J5OiBNZXRyaWNGYWN0b3J5LFxuICAgIHByb3BzOiBMYW1iZGFGdW5jdGlvbkVuaGFuY2VkTWV0cmljRmFjdG9yeVByb3BzLFxuICApIHtcbiAgICBzdXBlcihtZXRyaWNGYWN0b3J5LCBwcm9wcyk7XG5cbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gcHJvcHMubGFtYmRhRnVuY3Rpb247XG4gIH1cblxuICBlbmhhbmNlZE1ldHJpY01heENwdVRvdGFsVGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbmhhbmNlZE1ldHJpYyhcbiAgICAgIFwiY3B1X3RvdGFsX3RpbWVcIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5NQVgsXG4gICAgICBcIkNQVVRvdGFsVGltZS5NYXhcIixcbiAgICApO1xuICB9XG5cbiAgZW5oYW5jZWRNZXRyaWNQOTBDcHVUb3RhbFRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5oYW5jZWRNZXRyaWMoXG4gICAgICBcImNwdV90b3RhbF90aW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDkwLFxuICAgICAgXCJDUFVUb3RhbFRpbWUuUDkwXCIsXG4gICAgKTtcbiAgfVxuXG4gIGVuaGFuY2VkTWV0cmljQXZnQ3B1VG90YWxUaW1lKCkge1xuICAgIHJldHVybiB0aGlzLmVuaGFuY2VkTWV0cmljKFxuICAgICAgXCJjcHVfdG90YWxfdGltZVwiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLkFWRVJBR0UsXG4gICAgICBcIkNQVVRvdGFsVGltZS5BdmdcIixcbiAgICApO1xuICB9XG5cbiAgZW5oYW5jZWRNZXRyaWNNYXhNZW1vcnlVdGlsaXphdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbmhhbmNlZE1ldHJpYyhcbiAgICAgIFwibWVtb3J5X3V0aWxpemF0aW9uXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuTUFYLFxuICAgICAgXCJNZW1vcnlVdGlsaXphdGlvbi5NYXhcIixcbiAgICApO1xuICB9XG5cbiAgZW5oYW5jZWRNZXRyaWNQOTBNZW1vcnlVdGlsaXphdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbmhhbmNlZE1ldHJpYyhcbiAgICAgIFwibWVtb3J5X3V0aWxpemF0aW9uXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDkwLFxuICAgICAgXCJNZW1vcnlVdGlsaXphdGlvbi5QOTBcIixcbiAgICApO1xuICB9XG5cbiAgZW5oYW5jZWRNZXRyaWNBdmdNZW1vcnlVdGlsaXphdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbmhhbmNlZE1ldHJpYyhcbiAgICAgIFwibWVtb3J5X3V0aWxpemF0aW9uXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuQVZFUkFHRSxcbiAgICAgIFwiTWVtb3J5VXRpbGl6YXRpb24uQXZnXCIsXG4gICAgKTtcbiAgfVxuXG4gIGVuaGFuY2VkTWV0cmljTWF4SW5pdER1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVuaGFuY2VkTWV0cmljKFxuICAgICAgXCJpbml0X2R1cmF0aW9uXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuTUFYLFxuICAgICAgXCJJbml0RHVyYXRpb24uTWF4XCIsXG4gICAgKTtcbiAgfVxuXG4gIGVuaGFuY2VkTWV0cmljUDkwSW5pdER1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVuaGFuY2VkTWV0cmljKFxuICAgICAgXCJpbml0X2R1cmF0aW9uXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDkwLFxuICAgICAgXCJJbml0RHVyYXRpb24uUDkwXCIsXG4gICAgKTtcbiAgfVxuXG4gIGVuaGFuY2VkTWV0cmljQXZnSW5pdER1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVuaGFuY2VkTWV0cmljKFxuICAgICAgXCJpbml0X2R1cmF0aW9uXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuQVZFUkFHRSxcbiAgICAgIFwiSW5pdER1cmF0aW9uLkF2Z1wiLFxuICAgICk7XG4gIH1cblxuICBlbmhhbmNlZE1ldHJpY0luaXREdXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbmhhbmNlZE1ldHJpYyhcbiAgICAgIFwiaW5pdF9kdXJhdGlvblwiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLlNVTSxcbiAgICAgIFwiSW5pdER1cmF0aW9uLlN1bVwiLFxuICAgICk7XG4gIH1cblxuICBlbmhhbmNlZE1ldHJpY01heFRvdGFsTWVtb3J5KCkge1xuICAgIHJldHVybiB0aGlzLmVuaGFuY2VkTWV0cmljKFxuICAgICAgXCJ0b3RhbF9tZW1vcnlcIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5NQVgsXG4gICAgICBcIlRvdGFsTWVtb3J5XCIsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5oYW5jZWRNZXRyaWNGdW5jdGlvbkR1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuYWRhcHRNZXRyaWMoXG4gICAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uLm1ldHJpY0R1cmF0aW9uKHtcbiAgICAgICAgc3RhdGlzdGljOiBNZXRyaWNTdGF0aXN0aWMuU1VNLFxuICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgICBhY2NvdW50OiB0aGlzLmFjY291bnQsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgZW5oYW5jZWRNZXRyaWNGdW5jdGlvbkNvc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWNNYXRoKFxuICAgICAgXCIodG90YWxfbWVtb3J5ICogZHVyYXRpb24pICsgKHRvdGFsX21lbW9yeSAqIGluaXRfZHVyYXRpb24pXCIsXG4gICAgICB7XG4gICAgICAgIHRvdGFsX21lbW9yeTogdGhpcy5lbmhhbmNlZE1ldHJpY01heFRvdGFsTWVtb3J5KCksXG4gICAgICAgIGR1cmF0aW9uOiB0aGlzLmVuaGFuY2VkTWV0cmljRnVuY3Rpb25EdXJhdGlvbigpLFxuICAgICAgICBpbml0X2R1cmF0aW9uOiB0aGlzLmVuaGFuY2VkTWV0cmljSW5pdER1cmF0aW9uKCksXG4gICAgICB9LFxuICAgICAgXCJGdW5jdGlvbiBDb3N0IChhdmc6ICR7QVZHfSwgbWF4OiAke01BWH0pXCIsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5oYW5jZWRNZXRyaWMoXG4gICAgbWV0cmljTmFtZTogc3RyaW5nLFxuICAgIHN0YXRpc3RpYzogTWV0cmljU3RhdGlzdGljLFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgY29sb3I/OiBzdHJpbmcsXG4gICkge1xuICAgIGNvbnN0IFtmdW5jdGlvbk5hbWUsIGZ1bmN0aW9uVmVyc2lvbl0gPVxuICAgICAgdGhpcy5sYW1iZGFGdW5jdGlvbi5mdW5jdGlvbk5hbWUuc3BsaXQoXCI6XCIpO1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljKFxuICAgICAgbWV0cmljTmFtZSxcbiAgICAgIHN0YXRpc3RpYyxcbiAgICAgIGxhYmVsLFxuICAgICAge1xuICAgICAgICBmdW5jdGlvbl9uYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgIHZlcnNpb246IGZ1bmN0aW9uVmVyc2lvbixcbiAgICAgIH0sXG4gICAgICBjb2xvcixcbiAgICAgIExhbWJkYUluc2lnaHRzTmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxufVxuIl19