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

55 lines 9.05 kB
"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"); } enhancedMetricFunctionCost() { return this.metricFactory.createMetricMath("memory_utilization * duration", { memory_utilization: this.enhancedMetricMaxMemoryUtilization(), duration: this.enhancedMetricFunctionDuration(), }, "Function Cost (avg: ${AVG}, max: ${MAX})"); } enhancedMetricFunctionDuration() { return this.metricFactory.adaptMetric(this.lambdaFunction.metricDuration({ statistic: common_1.MetricStatistic.SUM, region: this.region, account: this.account, })); } 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.7.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhRnVuY3Rpb25FbmhhbmNlZE1ldHJpY0ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMYW1iZGFGdW5jdGlvbkVuaGFuY2VkTWV0cmljRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLHlDQUtzQjtBQUV0QixNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDO0FBT2pELE1BQWEsbUNBQW9DLFNBQVEsMEJBQTJEO0lBR2xILFlBQ0UsYUFBNEIsRUFDNUIsS0FBK0M7UUFFL0MsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7SUFDN0MsQ0FBQztJQUVELDZCQUE2QjtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQ3hCLGdCQUFnQixFQUNoQix3QkFBZSxDQUFDLEdBQUcsRUFDbkIsa0JBQWtCLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FDeEIsZ0JBQWdCLEVBQ2hCLHdCQUFlLENBQUMsR0FBRyxFQUNuQixrQkFBa0IsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCw2QkFBNkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUN4QixnQkFBZ0IsRUFDaEIsd0JBQWUsQ0FBQyxPQUFPLEVBQ3ZCLGtCQUFrQixDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELGtDQUFrQztRQUNoQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQ3hCLG9CQUFvQixFQUNwQix3QkFBZSxDQUFDLEdBQUcsRUFDbkIsdUJBQXVCLENBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQsa0NBQWtDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FDeEIsb0JBQW9CLEVBQ3BCLHdCQUFlLENBQUMsR0FBRyxFQUNuQix1QkFBdUIsQ0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFRCxrQ0FBa0M7UUFDaEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUN4QixvQkFBb0IsRUFDcEIsd0JBQWUsQ0FBQyxPQUFPLEVBQ3ZCLHVCQUF1QixDQUN4QixDQUFDO0lBQ0osQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3hDLCtCQUErQixFQUMvQjtZQUNFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQ0FBa0MsRUFBRTtZQUM3RCxRQUFRLEVBQUUsSUFBSSxDQUFDLDhCQUE4QixFQUFFO1NBQ2hELEVBQ0QsMENBQTBDLENBQzNDLENBQUM7SUFDSixDQUFDO0lBRU8sOEJBQThCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDO1lBQ2pDLFNBQVMsRUFBRSx3QkFBZSxDQUFDLEdBQUc7WUFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjLENBQ3BCLFVBQWtCLEVBQ2xCLFNBQTBCLEVBQzFCLEtBQWEsRUFDYixLQUFjO1FBRWQsTUFBTSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsR0FDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQ3BDLFVBQVUsRUFDVixTQUFTLEVBQ1QsS0FBSyxFQUNMO1lBQ0UsYUFBYSxFQUFFLFlBQVk7WUFDM0IsT0FBTyxFQUFFLGVBQWU7U0FDekIsRUFDRCxLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7O0FBdkdILGtGQXdHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5cbmltcG9ydCB7XG4gIEJhc2VNZXRyaWNGYWN0b3J5LFxuICBCYXNlTWV0cmljRmFjdG9yeVByb3BzLFxuICBNZXRyaWNGYWN0b3J5LFxuICBNZXRyaWNTdGF0aXN0aWMsXG59IGZyb20gXCIuLi8uLi9jb21tb25cIjtcblxuY29uc3QgTGFtYmRhSW5zaWdodHNOYW1lc3BhY2UgPSBcIkxhbWJkYUluc2lnaHRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25FbmhhbmNlZE1ldHJpY0ZhY3RvcnlQcm9wc1xuICBleHRlbmRzIEJhc2VNZXRyaWNGYWN0b3J5UHJvcHMge1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogSUZ1bmN0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgTGFtYmRhRnVuY3Rpb25FbmhhbmNlZE1ldHJpY0ZhY3RvcnkgZXh0ZW5kcyBCYXNlTWV0cmljRmFjdG9yeTxMYW1iZGFGdW5jdGlvbkVuaGFuY2VkTWV0cmljRmFjdG9yeVByb3BzPiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1ldHJpY0ZhY3Rvcnk6IE1ldHJpY0ZhY3RvcnksXG4gICAgcHJvcHM6IExhbWJkYUZ1bmN0aW9uRW5oYW5jZWRNZXRyaWNGYWN0b3J5UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKG1ldHJpY0ZhY3RvcnksIHByb3BzKTtcblxuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSBwcm9wcy5sYW1iZGFGdW5jdGlvbjtcbiAgfVxuXG4gIGVuaGFuY2VkTWV0cmljTWF4Q3B1VG90YWxUaW1lKCkge1xuICAgIHJldHVybiB0aGlzLmVuaGFuY2VkTWV0cmljKFxuICAgICAgXCJjcHVfdG90YWxfdGltZVwiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLk1BWCxcbiAgICAgIFwiQ1BVVG90YWxUaW1lLk1heFwiLFxuICAgICk7XG4gIH1cblxuICBlbmhhbmNlZE1ldHJpY1A5MENwdVRvdGFsVGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbmhhbmNlZE1ldHJpYyhcbiAgICAgIFwiY3B1X3RvdGFsX3RpbWVcIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5QOTAsXG4gICAgICBcIkNQVVRvdGFsVGltZS5QOTBcIixcbiAgICApO1xuICB9XG5cbiAgZW5oYW5jZWRNZXRyaWNBdmdDcHVUb3RhbFRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5oYW5jZWRNZXRyaWMoXG4gICAgICBcImNwdV90b3RhbF90aW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuQVZFUkFHRSxcbiAgICAgIFwiQ1BVVG90YWxUaW1lLkF2Z1wiLFxuICAgICk7XG4gIH1cblxuICBlbmhhbmNlZE1ldHJpY01heE1lbW9yeVV0aWxpemF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVuaGFuY2VkTWV0cmljKFxuICAgICAgXCJtZW1vcnlfdXRpbGl6YXRpb25cIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5NQVgsXG4gICAgICBcIk1lbW9yeVV0aWxpemF0aW9uLk1heFwiLFxuICAgICk7XG4gIH1cblxuICBlbmhhbmNlZE1ldHJpY1A5ME1lbW9yeVV0aWxpemF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVuaGFuY2VkTWV0cmljKFxuICAgICAgXCJtZW1vcnlfdXRpbGl6YXRpb25cIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5QOTAsXG4gICAgICBcIk1lbW9yeVV0aWxpemF0aW9uLlA5MFwiLFxuICAgICk7XG4gIH1cblxuICBlbmhhbmNlZE1ldHJpY0F2Z01lbW9yeVV0aWxpemF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVuaGFuY2VkTWV0cmljKFxuICAgICAgXCJtZW1vcnlfdXRpbGl6YXRpb25cIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5BVkVSQUdFLFxuICAgICAgXCJNZW1vcnlVdGlsaXphdGlvbi5BdmdcIixcbiAgICApO1xuICB9XG5cbiAgZW5oYW5jZWRNZXRyaWNGdW5jdGlvbkNvc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWNNYXRoKFxuICAgICAgXCJtZW1vcnlfdXRpbGl6YXRpb24gKiBkdXJhdGlvblwiLFxuICAgICAge1xuICAgICAgICBtZW1vcnlfdXRpbGl6YXRpb246IHRoaXMuZW5oYW5jZWRNZXRyaWNNYXhNZW1vcnlVdGlsaXphdGlvbigpLFxuICAgICAgICBkdXJhdGlvbjogdGhpcy5lbmhhbmNlZE1ldHJpY0Z1bmN0aW9uRHVyYXRpb24oKSxcbiAgICAgIH0sXG4gICAgICBcIkZ1bmN0aW9uIENvc3QgKGF2ZzogJHtBVkd9LCBtYXg6ICR7TUFYfSlcIixcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmhhbmNlZE1ldHJpY0Z1bmN0aW9uRHVyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5hZGFwdE1ldHJpYyhcbiAgICAgIHRoaXMubGFtYmRhRnVuY3Rpb24ubWV0cmljRHVyYXRpb24oe1xuICAgICAgICBzdGF0aXN0aWM6IE1ldHJpY1N0YXRpc3RpYy5TVU0sXG4gICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGVuaGFuY2VkTWV0cmljKFxuICAgIG1ldHJpY05hbWU6IHN0cmluZyxcbiAgICBzdGF0aXN0aWM6IE1ldHJpY1N0YXRpc3RpYyxcbiAgICBsYWJlbDogc3RyaW5nLFxuICAgIGNvbG9yPzogc3RyaW5nLFxuICApIHtcbiAgICBjb25zdCBbZnVuY3Rpb25OYW1lLCBmdW5jdGlvblZlcnNpb25dID1cbiAgICAgIHRoaXMubGFtYmRhRnVuY3Rpb24uZnVuY3Rpb25OYW1lLnNwbGl0KFwiOlwiKTtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBzdGF0aXN0aWMsXG4gICAgICBsYWJlbCxcbiAgICAgIHtcbiAgICAgICAgZnVuY3Rpb25fbmFtZTogZnVuY3Rpb25OYW1lLFxuICAgICAgICB2ZXJzaW9uOiBmdW5jdGlvblZlcnNpb24sXG4gICAgICB9LFxuICAgICAgY29sb3IsXG4gICAgICBMYW1iZGFJbnNpZ2h0c05hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==