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

65 lines 16.4 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.StepFunctionLambdaIntegrationMetricFactory = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const common_1 = require("../../common"); const Namespace = "AWS/States"; class StepFunctionLambdaIntegrationMetricFactory extends common_1.BaseMetricFactory { constructor(metricFactory, props) { super(metricFactory, props); this.rateComputationMethod = common_1.RateComputationMethod.AVERAGE; this.dimensionsMap = { LambdaFunctionArn: props.lambdaFunction.functionArn, }; } metricFunctionRunTimeP99InMillis() { return this.metricFactory.createMetric("LambdaFunctionRunTime", common_1.MetricStatistic.P99, "P99", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionRunTimeP90InMillis() { return this.metricFactory.createMetric("LambdaFunctionRunTime", common_1.MetricStatistic.P90, "P90", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionRunTimeP50InMillis() { return this.metricFactory.createMetric("LambdaFunctionRunTime", common_1.MetricStatistic.P50, "P50", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionScheduleTimeP99InMillis() { return this.metricFactory.createMetric("LambdaFunctionScheduleTime", common_1.MetricStatistic.P99, "P99", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionScheduleTimeP90InMillis() { return this.metricFactory.createMetric("LambdaFunctionScheduleTime", common_1.MetricStatistic.P90, "P90", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionScheduleTimeP50InMillis() { return this.metricFactory.createMetric("LambdaFunctionScheduleTime", common_1.MetricStatistic.P50, "P50", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionTimeP99InMillis() { return this.metricFactory.createMetric("LambdaFunctionTime", common_1.MetricStatistic.P99, "P99", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionTimeP90InMillis() { return this.metricFactory.createMetric("LambdaFunctionTime", common_1.MetricStatistic.P90, "P90", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionTimeP50InMillis() { return this.metricFactory.createMetric("LambdaFunctionTime", common_1.MetricStatistic.P50, "P50", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionsFailed() { return this.metricFactory.createMetric("LambdaFunctionsFailed", common_1.MetricStatistic.SUM, "Failed", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionsFailedRate() { return this.metricFactory.toRate(this.metricFunctionsFailed(), this.rateComputationMethod, false, "faults"); } metricFunctionsScheduled() { return this.metricFactory.createMetric("LambdaFunctionsScheduled", common_1.MetricStatistic.SUM, "Scheduled", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionsStarted() { return this.metricFactory.createMetric("LambdaFunctionsStarted", common_1.MetricStatistic.SUM, "Started", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionsSucceeded() { return this.metricFactory.createMetric("LambdaFunctionsSucceeded", common_1.MetricStatistic.SUM, "Succeeded", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } metricFunctionsTimedOut() { return this.metricFactory.createMetric("LambdaFunctionsTimedOut", common_1.MetricStatistic.SUM, "Timeout", this.dimensionsMap, undefined, Namespace, undefined, this.region, this.account); } } exports.StepFunctionLambdaIntegrationMetricFactory = StepFunctionLambdaIntegrationMetricFactory; _a = JSII_RTTI_SYMBOL_1; StepFunctionLambdaIntegrationMetricFactory[_a] = { fqn: "cdk-monitoring-constructs.StepFunctionLambdaIntegrationMetricFactory", version: "10.0.0" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RlcEZ1bmN0aW9uTGFtYmRhSW50ZWdyYXRpb25NZXRyaWNGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiU3RlcEZ1bmN0aW9uTGFtYmRhSW50ZWdyYXRpb25NZXRyaWNGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EseUNBTXNCO0FBRXRCLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQztBQVcvQixNQUFhLDBDQUEyQyxTQUFRLDBCQUFpQjtJQUkvRSxZQUNFLGFBQTRCLEVBQzVCLEtBQXNEO1FBRXRELEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLDhCQUFxQixDQUFDLE9BQU8sQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVztTQUNwRCxDQUFDO0lBQ0osQ0FBQztJQUVELGdDQUFnQztRQUM5QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyx1QkFBdUIsRUFDdkIsd0JBQWUsQ0FBQyxHQUFHLEVBQ25CLEtBQUssRUFDTCxJQUFJLENBQUMsYUFBYSxFQUNsQixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCxnQ0FBZ0M7UUFDOUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDcEMsdUJBQXVCLEVBQ3ZCLHdCQUFlLENBQUMsR0FBRyxFQUNuQixLQUFLLEVBQ0wsSUFBSSxDQUFDLGFBQWEsRUFDbEIsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsZ0NBQWdDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGFB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QkFBMEIsRUFDMUIsd0JBQWUsQ0FBQyxHQUFHLEVBQ25CLFdBQVcsRUFDWCxJQUFJLENBQUMsYUFBYSxFQUNsQixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDcEMsd0JBQXdCLEVBQ3hCLHdCQUFlLENBQUMsR0FBRyxFQUNuQixTQUFTLEVBQ1QsSUFBSSxDQUFDLGFBQWEsRUFDbEIsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQ3BDLDBCQUEwQixFQUMxQix3QkFBZSxDQUFDLEdBQUcsRUFDbkIsV0FBVyxFQUNYLElBQUksQ0FBQyxhQUFhLEVBQ2xCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyx5QkFBeUIsRUFDekIsd0JBQWUsQ0FBQyxHQUFHLEVBQ25CLFNBQVMsRUFDVCxJQUFJLENBQUMsYUFBYSxFQUNsQixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7O0FBM05ILGdHQTROQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpbWVuc2lvbnNNYXAgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5cbmltcG9ydCB7XG4gIEJhc2VNZXRyaWNGYWN0b3J5LFxuICBCYXNlTWV0cmljRmFjdG9yeVByb3BzLFxuICBNZXRyaWNGYWN0b3J5LFxuICBNZXRyaWNTdGF0aXN0aWMsXG4gIFJhdGVDb21wdXRhdGlvbk1ldGhvZCxcbn0gZnJvbSBcIi4uLy4uL2NvbW1vblwiO1xuXG5jb25zdCBOYW1lc3BhY2UgPSBcIkFXUy9TdGF0ZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGVwRnVuY3Rpb25MYW1iZGFJbnRlZ3JhdGlvbk1ldHJpY0ZhY3RvcnlQcm9wc1xuICBleHRlbmRzIEJhc2VNZXRyaWNGYWN0b3J5UHJvcHMge1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogSUZ1bmN0aW9uO1xuICAvKipcbiAgICogQGRlZmF1bHQgLSBhdmVyYWdlXG4gICAqL1xuICByZWFkb25seSByYXRlQ29tcHV0YXRpb25NZXRob2Q/OiBSYXRlQ29tcHV0YXRpb25NZXRob2Q7XG59XG5cbmV4cG9ydCBjbGFzcyBTdGVwRnVuY3Rpb25MYW1iZGFJbnRlZ3JhdGlvbk1ldHJpY0ZhY3RvcnkgZXh0ZW5kcyBCYXNlTWV0cmljRmFjdG9yeSB7XG4gIHByb3RlY3RlZCByZWFkb25seSByYXRlQ29tcHV0YXRpb25NZXRob2Q6IFJhdGVDb21wdXRhdGlvbk1ldGhvZDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpbWVuc2lvbnNNYXA6IERpbWVuc2lvbnNNYXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbWV0cmljRmFjdG9yeTogTWV0cmljRmFjdG9yeSxcbiAgICBwcm9wczogU3RlcEZ1bmN0aW9uTGFtYmRhSW50ZWdyYXRpb25NZXRyaWNGYWN0b3J5UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKG1ldHJpY0ZhY3RvcnksIHByb3BzKTtcblxuICAgIHRoaXMucmF0ZUNvbXB1dGF0aW9uTWV0aG9kID0gUmF0ZUNvbXB1dGF0aW9uTWV0aG9kLkFWRVJBR0U7XG4gICAgdGhpcy5kaW1lbnNpb25zTWFwID0ge1xuICAgICAgTGFtYmRhRnVuY3Rpb25Bcm46IHByb3BzLmxhbWJkYUZ1bmN0aW9uLmZ1bmN0aW9uQXJuLFxuICAgIH07XG4gIH1cblxuICBtZXRyaWNGdW5jdGlvblJ1blRpbWVQOTlJbk1pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIFwiTGFtYmRhRnVuY3Rpb25SdW5UaW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDk5LFxuICAgICAgXCJQOTlcIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIE5hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNGdW5jdGlvblJ1blRpbWVQOTBJbk1pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIFwiTGFtYmRhRnVuY3Rpb25SdW5UaW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDkwLFxuICAgICAgXCJQOTBcIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIE5hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNGdW5jdGlvblJ1blRpbWVQNTBJbk1pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIFwiTGFtYmRhRnVuY3Rpb25SdW5UaW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDUwLFxuICAgICAgXCJQNTBcIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIE5hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNGdW5jdGlvblNjaGVkdWxlVGltZVA5OUluTWlsbGlzKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljKFxuICAgICAgXCJMYW1iZGFGdW5jdGlvblNjaGVkdWxlVGltZVwiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLlA5OSxcbiAgICAgIFwiUDk5XCIsXG4gICAgICB0aGlzLmRpbWVuc2lvbnNNYXAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBOYW1lc3BhY2UsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljRnVuY3Rpb25TY2hlZHVsZVRpbWVQOTBJbk1pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIFwiTGFtYmRhRnVuY3Rpb25TY2hlZHVsZVRpbWVcIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5QOTAsXG4gICAgICBcIlA5MFwiLFxuICAgICAgdGhpcy5kaW1lbnNpb25zTWFwLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgTmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0Z1bmN0aW9uU2NoZWR1bGVUaW1lUDUwSW5NaWxsaXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBcIkxhbWJkYUZ1bmN0aW9uU2NoZWR1bGVUaW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDUwLFxuICAgICAgXCJQNTBcIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIE5hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNGdW5jdGlvblRpbWVQOTlJbk1pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIFwiTGFtYmRhRnVuY3Rpb25UaW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDk5LFxuICAgICAgXCJQOTlcIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIE5hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNGdW5jdGlvblRpbWVQOTBJbk1pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIFwiTGFtYmRhRnVuY3Rpb25UaW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDkwLFxuICAgICAgXCJQOTBcIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIE5hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNGdW5jdGlvblRpbWVQNTBJbk1pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIFwiTGFtYmRhRnVuY3Rpb25UaW1lXCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuUDUwLFxuICAgICAgXCJQNTBcIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIE5hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNGdW5jdGlvbnNGYWlsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBcIkxhbWJkYUZ1bmN0aW9uc0ZhaWxlZFwiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLlNVTSxcbiAgICAgIFwiRmFpbGVkXCIsXG4gICAgICB0aGlzLmRpbWVuc2lvbnNNYXAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBOYW1lc3BhY2UsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljRnVuY3Rpb25zRmFpbGVkUmF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LnRvUmF0ZShcbiAgICAgIHRoaXMubWV0cmljRnVuY3Rpb25zRmFpbGVkKCksXG4gICAgICB0aGlzLnJhdGVDb21wdXRhdGlvbk1ldGhvZCxcbiAgICAgIGZhbHNlLFxuICAgICAgXCJmYXVsdHNcIixcbiAgICApO1xuICB9XG5cbiAgbWV0cmljRnVuY3Rpb25zU2NoZWR1bGVkKCkge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljKFxuICAgICAgXCJMYW1iZGFGdW5jdGlvbnNTY2hlZHVsZWRcIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5TVU0sXG4gICAgICBcIlNjaGVkdWxlZFwiLFxuICAgICAgdGhpcy5kaW1lbnNpb25zTWFwLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgTmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0Z1bmN0aW9uc1N0YXJ0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBcIkxhbWJkYUZ1bmN0aW9uc1N0YXJ0ZWRcIixcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5TVU0sXG4gICAgICBcIlN0YXJ0ZWRcIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIE5hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNGdW5jdGlvbnNTdWNjZWVkZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBcIkxhbWJkYUZ1bmN0aW9uc1N1Y2NlZWRlZFwiLFxuICAgICAgTWV0cmljU3RhdGlzdGljLlNVTSxcbiAgICAgIFwiU3VjY2VlZGVkXCIsXG4gICAgICB0aGlzLmRpbWVuc2lvbnNNYXAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBOYW1lc3BhY2UsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljRnVuY3Rpb25zVGltZWRPdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBcIkxhbWJkYUZ1bmN0aW9uc1RpbWVkT3V0XCIsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuU1VNLFxuICAgICAgXCJUaW1lb3V0XCIsXG4gICAgICB0aGlzLmRpbWVuc2lvbnNNYXAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBOYW1lc3BhY2UsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG59XG4iXX0=