UNPKG

cdk-monitoring-constructs

Version:

[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/cdklabs/cdk-monitoring-constructs) [![NPM version](https://badge.fury.io/js/cdk-monitoring-constructs.svg)](https://badge

53 lines 8.23 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 { constructor(metricFactory, lambdaFunction) { this.metricFactory = metricFactory; this.lambdaFunction = 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, })); } 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); } } exports.LambdaFunctionEnhancedMetricFactory = LambdaFunctionEnhancedMetricFactory; _a = JSII_RTTI_SYMBOL_1; LambdaFunctionEnhancedMetricFactory[_a] = { fqn: "cdk-monitoring-constructs.LambdaFunctionEnhancedMetricFactory", version: "1.21.0" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhRnVuY3Rpb25FbmhhbmNlZE1ldHJpY0ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMYW1iZGFGdW5jdGlvbkVuaGFuY2VkTWV0cmljRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLHlDQUE4RDtBQUU5RCxNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDO0FBRWpELE1BQWEsbUNBQW1DO0lBSTlDLFlBQVksYUFBNEIsRUFBRSxjQUF5QjtRQUNqRSxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FDeEIsZ0JBQWdCLEVBQ2hCLHdCQUFlLENBQUMsR0FBRyxFQUNuQixrQkFBa0IsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCw2QkFBNkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUN4QixnQkFBZ0IsRUFDaEIsd0JBQWUsQ0FBQyxHQUFHLEVBQ25CLGtCQUFrQixDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELDZCQUE2QjtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQ3hCLGdCQUFnQixFQUNoQix3QkFBZSxDQUFDLE9BQU8sRUFDdkIsa0JBQWtCLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsa0NBQWtDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FDeEIsb0JBQW9CLEVBQ3BCLHdCQUFlLENBQUMsR0FBRyxFQUNuQix1QkFBdUIsQ0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFRCxrQ0FBa0M7UUFDaEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUN4QixvQkFBb0IsRUFDcEIsd0JBQWUsQ0FBQyxHQUFHLEVBQ25CLHVCQUF1QixDQUN4QixDQUFDO0lBQ0osQ0FBQztJQUVELGtDQUFrQztRQUNoQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQ3hCLG9CQUFvQixFQUNwQix3QkFBZSxDQUFDLE9BQU8sRUFDdkIsdUJBQXVCLENBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDeEMsK0JBQStCLEVBQy9CO1lBQ0Usa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtDQUFrQyxFQUFFO1lBQzdELFFBQVEsRUFBRSxJQUFJLENBQUMsOEJBQThCLEVBQUU7U0FDaEQsRUFDRCwwQ0FBMEMsQ0FDM0MsQ0FBQztJQUNKLENBQUM7SUFFTyw4QkFBOEI7UUFDcEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUM7WUFDakMsU0FBUyxFQUFFLHdCQUFlLENBQUMsR0FBRztTQUMvQixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjLENBQ3BCLFVBQWtCLEVBQ2xCLFNBQTBCLEVBQzFCLEtBQWEsRUFDYixLQUFjO1FBRWQsTUFBTSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsR0FDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQ3BDLFVBQVUsRUFDVixTQUFTLEVBQ1QsS0FBSyxFQUNMO1lBQ0UsYUFBYSxFQUFFLFlBQVk7WUFDM0IsT0FBTyxFQUFFLGVBQWU7U0FDekIsRUFDRCxLQUFLLEVBQ0wsdUJBQXVCLENBQ3hCLENBQUM7SUFDSixDQUFDOztBQS9GSCxrRkFnR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuXG5pbXBvcnQgeyBNZXRyaWNGYWN0b3J5LCBNZXRyaWNTdGF0aXN0aWMgfSBmcm9tIFwiLi4vLi4vY29tbW9uXCI7XG5cbmNvbnN0IExhbWJkYUluc2lnaHRzTmFtZXNwYWNlID0gXCJMYW1iZGFJbnNpZ2h0c1wiO1xuXG5leHBvcnQgY2xhc3MgTGFtYmRhRnVuY3Rpb25FbmhhbmNlZE1ldHJpY0ZhY3Rvcnkge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWV0cmljRmFjdG9yeTogTWV0cmljRmFjdG9yeTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3IobWV0cmljRmFjdG9yeTogTWV0cmljRmFjdG9yeSwgbGFtYmRhRnVuY3Rpb246IElGdW5jdGlvbikge1xuICAgIHRoaXMubWV0cmljRmFjdG9yeSA9IG1ldHJpY0ZhY3Rvcnk7XG4gICAgdGhpcy5sYW1iZGFGdW5jdGlvbiA9IGxhbWJkYUZ1bmN0aW9uO1xuICB9XG5cbiAgZW5oYW5jZWRNZXRyaWNNYXhDcHVUb3RhbFRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5oYW5jZWRNZXRyaWMoXG4gICAgICBcImNwdV90b3RhbF90aW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuTUFYLFxuICAgICAgXCJDUFVUb3RhbFRpbWUuTWF4XCJcbiAgICApO1xuICB9XG5cbiAgZW5oYW5jZWRNZXRyaWNQOTBDcHVUb3RhbFRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5oYW5jZWRNZXRyaWMoXG4gICAgICBcImNwdV90b3RhbF90aW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDkwLFxuICAgICAgXCJDUFVUb3RhbFRpbWUuUDkwXCJcbiAgICApO1xuICB9XG5cbiAgZW5oYW5jZWRNZXRyaWNBdmdDcHVUb3RhbFRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5oYW5jZWRNZXRyaWMoXG4gICAgICBcImNwdV90b3RhbF90aW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuQVZFUkFHRSxcbiAgICAgIFwiQ1BVVG90YWxUaW1lLkF2Z1wiXG4gICAgKTtcbiAgfVxuXG4gIGVuaGFuY2VkTWV0cmljTWF4TWVtb3J5VXRpbGl6YXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5oYW5jZWRNZXRyaWMoXG4gICAgICBcIm1lbW9yeV91dGlsaXphdGlvblwiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLk1BWCxcbiAgICAgIFwiTWVtb3J5VXRpbGl6YXRpb24uTWF4XCJcbiAgICApO1xuICB9XG5cbiAgZW5oYW5jZWRNZXRyaWNQOTBNZW1vcnlVdGlsaXphdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbmhhbmNlZE1ldHJpYyhcbiAgICAgIFwibWVtb3J5X3V0aWxpemF0aW9uXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDkwLFxuICAgICAgXCJNZW1vcnlVdGlsaXphdGlvbi5QOTBcIlxuICAgICk7XG4gIH1cblxuICBlbmhhbmNlZE1ldHJpY0F2Z01lbW9yeVV0aWxpemF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVuaGFuY2VkTWV0cmljKFxuICAgICAgXCJtZW1vcnlfdXRpbGl6YXRpb25cIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5BVkVSQUdFLFxuICAgICAgXCJNZW1vcnlVdGlsaXphdGlvbi5BdmdcIlxuICAgICk7XG4gIH1cblxuICBlbmhhbmNlZE1ldHJpY0Z1bmN0aW9uQ29zdCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpY01hdGgoXG4gICAgICBcIm1lbW9yeV91dGlsaXphdGlvbiAqIGR1cmF0aW9uXCIsXG4gICAgICB7XG4gICAgICAgIG1lbW9yeV91dGlsaXphdGlvbjogdGhpcy5lbmhhbmNlZE1ldHJpY01heE1lbW9yeVV0aWxpemF0aW9uKCksXG4gICAgICAgIGR1cmF0aW9uOiB0aGlzLmVuaGFuY2VkTWV0cmljRnVuY3Rpb25EdXJhdGlvbigpLFxuICAgICAgfSxcbiAgICAgIFwiRnVuY3Rpb24gQ29zdCAoYXZnOiAke0FWR30sIG1heDogJHtNQVh9KVwiXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5oYW5jZWRNZXRyaWNGdW5jdGlvbkR1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuYWRhcHRNZXRyaWMoXG4gICAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uLm1ldHJpY0R1cmF0aW9uKHtcbiAgICAgICAgc3RhdGlzdGljOiBNZXRyaWNTdGF0aXN0aWMuU1VNLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmhhbmNlZE1ldHJpYyhcbiAgICBtZXRyaWNOYW1lOiBzdHJpbmcsXG4gICAgc3RhdGlzdGljOiBNZXRyaWNTdGF0aXN0aWMsXG4gICAgbGFiZWw6IHN0cmluZyxcbiAgICBjb2xvcj86IHN0cmluZ1xuICApIHtcbiAgICBjb25zdCBbZnVuY3Rpb25OYW1lLCBmdW5jdGlvblZlcnNpb25dID1cbiAgICAgIHRoaXMubGFtYmRhRnVuY3Rpb24uZnVuY3Rpb25OYW1lLnNwbGl0KFwiOlwiKTtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBzdGF0aXN0aWMsXG4gICAgICBsYWJlbCxcbiAgICAgIHtcbiAgICAgICAgZnVuY3Rpb25fbmFtZTogZnVuY3Rpb25OYW1lLFxuICAgICAgICB2ZXJzaW9uOiBmdW5jdGlvblZlcnNpb24sXG4gICAgICB9LFxuICAgICAgY29sb3IsXG4gICAgICBMYW1iZGFJbnNpZ2h0c05hbWVzcGFjZVxuICAgICk7XG4gIH1cbn1cbiJdfQ==