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

54 lines 13 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenSearchIngestionPipelineMetricFactory = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const common_1 = require("../../common"); const OpenSearchIngestionNamespace = "AWS/OSIS"; /** * @experimental This is subject to change if an L2 construct becomes available. * * @see https://docs.aws.amazon.com/opensearch-service/latest/developerguide/monitoring-pipeline-metrics.html */ class OpenSearchIngestionPipelineMetricFactory extends common_1.BaseMetricFactory { constructor(metricFactory, props) { super(metricFactory, props); this.subPipelineName = props.subPipelineName; this.source = props.source; this.sink = props.sink; this.dimensionsMap = { PipelineName: props.pipelineName, }; } metricSourceBytesReceivedSum() { return this.metricFactory.createMetric(`${this.subPipelineName}.${this.source}.bytesReceived.sum`, common_1.MetricStatistic.SUM, `${this.source}.bytesReceived.sum`, this.dimensionsMap, undefined, OpenSearchIngestionNamespace, undefined, this.region, this.account); } metricSinkBulkRequestLatencyMax() { return this.metricFactory.createMetric(`${this.subPipelineName}.${this.sink}.bulkRequestLatency.max`, common_1.MetricStatistic.MAX, `${this.sink}.bulkRequestLatency.max`, this.dimensionsMap, undefined, OpenSearchIngestionNamespace, undefined, this.region, this.account); } metricSinkBulkPipelineLatencyMax() { return this.metricFactory.createMetric(`${this.subPipelineName}.${this.sink}.PipelineLatency.max`, common_1.MetricStatistic.MAX, `${this.sink}.PipelineLatency.max`, this.dimensionsMap, undefined, OpenSearchIngestionNamespace, undefined, this.region, this.account); } metricRecordsProcessedCount() { return this.metricFactory.createMetric(`${this.subPipelineName}.recordsProcessed.count`, common_1.MetricStatistic.SUM, "recordsProcessed.count", this.dimensionsMap, undefined, OpenSearchIngestionNamespace, undefined, this.region, this.account); } metricSinkRecordsInCount() { return this.metricFactory.createMetric(`${this.subPipelineName}.${this.sink}.recordsIn.count`, common_1.MetricStatistic.SUM, `${this.sink}.recordsIn.count`, this.dimensionsMap, undefined, OpenSearchIngestionNamespace, undefined, this.region, this.account); } metricDlqS3RecordsCount() { return this.metricFactory.createMetricMath("successCount + failedCount", { successCount: this.metricDlqS3RecordsSuccessCount(), failedCount: this.metricDlqS3RecordsFailedCount(), }, "DLQ records count"); } metricDlqS3RecordsSuccessCount() { return this.metricFactory.createMetric(`${this.subPipelineName}.${this.sink}.s3.dlqS3RecordsSuccess.count`, common_1.MetricStatistic.SUM, "s3.dlqS3RecordsSuccess.count", this.dimensionsMap, undefined, OpenSearchIngestionNamespace, undefined, this.region, this.account); } metricDlqS3RecordsFailedCount() { return this.metricFactory.createMetric(`${this.subPipelineName}.${this.sink}.s3.dlqS3RecordsFailed.count`, common_1.MetricStatistic.SUM, "s3.dlqS3RecordsFailed.count", this.dimensionsMap, undefined, OpenSearchIngestionNamespace, undefined, this.region, this.account); } } exports.OpenSearchIngestionPipelineMetricFactory = OpenSearchIngestionPipelineMetricFactory; _a = JSII_RTTI_SYMBOL_1; OpenSearchIngestionPipelineMetricFactory[_a] = { fqn: "cdk-monitoring-constructs.OpenSearchIngestionPipelineMetricFactory", version: "10.2.0" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlblNlYXJjaEluZ2VzdGlvblBpcGVsaW5lTWV0cmljRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk9wZW5TZWFyY2hJbmdlc3Rpb25QaXBlbGluZU1ldHJpY0ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSx5Q0FNc0I7QUFFdEIsTUFBTSw0QkFBNEIsR0FBRyxVQUFVLENBQUM7QUFVaEQ7Ozs7R0FJRztBQUNILE1BQWEsd0NBQXlDLFNBQVEsMEJBQWlCO0lBTzdFLFlBQ0UsYUFBNEIsRUFDNUIsS0FBb0Q7UUFFcEQsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtTQUNqQyxDQUFDO0lBQ0osQ0FBQztJQUVELDRCQUE0QjtRQUMxQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLE1BQU0sb0JBQW9CLEVBQzFELHdCQUFlLENBQUMsR0FBRyxFQUNuQixHQUFHLElBQUksQ0FBQyxNQUFNLG9CQUFvQixFQUNsQyxJQUFJLENBQUMsYUFBYSxFQUNsQixTQUFTLEVBQ1QsNEJBQTRCLEVBQzVCLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCwrQkFBK0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDcEMsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxJQUFJLHlCQUF5QixFQUM3RCx3QkFBZSxDQUFDLEdBQUcsRUFDbkIsR0FBRyxJQUFJLENBQUMsSUFBSSx5QkFBeUIsRUFDckMsSUFBSSxDQUFDLGFBQWEsRUFDbEIsU0FBUyxFQUNULDRCQUE0QixFQUM1QixTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsZ0NBQWdDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQ3BDLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsSUFBSSxzQkFBc0IsRUFDMUQsd0JBQWUsQ0FBQyxHQUFHLEVBQ25CLEdBQUcsSUFBSSxDQUFDLElBQUksc0JBQXNCLEVBQ2xDLElBQUksQ0FBQyxhQUFhLEVBQ2xCLFNBQVMsRUFDVCw0QkFBNEIsRUFDNUIsU0FBUyxFQUNULElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELDJCQUEyQjtRQUN6QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyxHQUFHLElBQUksQ0FBQyxlQUFlLHlCQUF5QixFQUNoRCx3QkFBZSxDQUFDLEdBQUcsRUFDbkIsd0JBQXdCLEVBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQ2xCLFNBQVMsRUFDVCw0QkFBNEIsRUFDNUIsU0FBUyxFQUNULElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLElBQUksa0JBQWtCLEVBQ3RELHdCQUFlLENBQUMsR0FBRyxFQUNuQixHQUFHLElBQUksQ0FBQyxJQUFJLGtCQUFrQixFQUM5QixJQUFJLENBQUMsYUFBYSxFQUNsQixTQUFTLEVBQ1QsNEJBQTRCLEVBQzVCLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUN4Qyw0QkFBNEIsRUFDNUI7WUFDRSxZQUFZLEVBQUUsSUFBSSxDQUFDLDhCQUE4QixFQUFFO1lBQ25ELFdBQVcsRUFBRSxJQUFJLENBQUMsNkJBQTZCLEVBQUU7U0FDbEQsRUFDRCxtQkFBbUIsQ0FDcEIsQ0FBQztJQUNKLENBQUM7SUFFRCw4QkFBOEI7UUFDNUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDcEMsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxJQUFJLCtCQUErQixFQUNuRSx3QkFBZSxDQUFDLEdBQUcsRUFDbkIsOEJBQThCLEVBQzlCLElBQUksQ0FBQyxhQUFhLEVBQ2xCLFNBQVMsRUFDVCw0QkFBNEIsRUFDNUIsU0FBUyxFQUNULElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELDZCQUE2QjtRQUMzQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwQyxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLElBQUksOEJBQThCLEVBQ2xFLHdCQUFlLENBQUMsR0FBRyxFQUNuQiw2QkFBNkIsRUFDN0IsSUFBSSxDQUFDLGFBQWEsRUFDbEIsU0FBUyxFQUNULDRCQUE0QixFQUM1QixTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDOztBQWpJSCw0RkFrSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpbWVuc2lvbnNNYXAgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7XG4gIEJhc2VNZXRyaWNGYWN0b3J5UHJvcHMsXG4gIEJhc2VNZXRyaWNGYWN0b3J5LFxuICBNZXRyaWNGYWN0b3J5LFxuICBNZXRyaWNXaXRoQWxhcm1TdXBwb3J0LFxuICBNZXRyaWNTdGF0aXN0aWMsXG59IGZyb20gXCIuLi8uLi9jb21tb25cIjtcblxuY29uc3QgT3BlblNlYXJjaEluZ2VzdGlvbk5hbWVzcGFjZSA9IFwiQVdTL09TSVNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuU2VhcmNoSW5nZXN0aW9uUGlwZWxpbmVNZXRyaWNGYWN0b3J5UHJvcHNcbiAgZXh0ZW5kcyBCYXNlTWV0cmljRmFjdG9yeVByb3BzIHtcbiAgcmVhZG9ubHkgc3ViUGlwZWxpbmVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICByZWFkb25seSBzaW5rOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBpcGVsaW5lTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWwgVGhpcyBpcyBzdWJqZWN0IHRvIGNoYW5nZSBpZiBhbiBMMiBjb25zdHJ1Y3QgYmVjb21lcyBhdmFpbGFibGUuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vb3BlbnNlYXJjaC1zZXJ2aWNlL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9tb25pdG9yaW5nLXBpcGVsaW5lLW1ldHJpY3MuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgT3BlblNlYXJjaEluZ2VzdGlvblBpcGVsaW5lTWV0cmljRmFjdG9yeSBleHRlbmRzIEJhc2VNZXRyaWNGYWN0b3J5IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1YlBpcGVsaW5lTmFtZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaW5rOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpbWVuc2lvbnNNYXA6IERpbWVuc2lvbnNNYXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbWV0cmljRmFjdG9yeTogTWV0cmljRmFjdG9yeSxcbiAgICBwcm9wczogT3BlblNlYXJjaEluZ2VzdGlvblBpcGVsaW5lTWV0cmljRmFjdG9yeVByb3BzLFxuICApIHtcbiAgICBzdXBlcihtZXRyaWNGYWN0b3J5LCBwcm9wcyk7XG5cbiAgICB0aGlzLnN1YlBpcGVsaW5lTmFtZSA9IHByb3BzLnN1YlBpcGVsaW5lTmFtZTtcbiAgICB0aGlzLnNvdXJjZSA9IHByb3BzLnNvdXJjZTtcbiAgICB0aGlzLnNpbmsgPSBwcm9wcy5zaW5rO1xuXG4gICAgdGhpcy5kaW1lbnNpb25zTWFwID0ge1xuICAgICAgUGlwZWxpbmVOYW1lOiBwcm9wcy5waXBlbGluZU5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIG1ldHJpY1NvdXJjZUJ5dGVzUmVjZWl2ZWRTdW0oKTogTWV0cmljV2l0aEFsYXJtU3VwcG9ydCB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBgJHt0aGlzLnN1YlBpcGVsaW5lTmFtZX0uJHt0aGlzLnNvdXJjZX0uYnl0ZXNSZWNlaXZlZC5zdW1gLFxuICAgICAgTWV0cmljU3RhdGlzdGljLlNVTSxcbiAgICAgIGAke3RoaXMuc291cmNlfS5ieXRlc1JlY2VpdmVkLnN1bWAsXG4gICAgICB0aGlzLmRpbWVuc2lvbnNNYXAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBPcGVuU2VhcmNoSW5nZXN0aW9uTmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY1NpbmtCdWxrUmVxdWVzdExhdGVuY3lNYXgoKTogTWV0cmljV2l0aEFsYXJtU3VwcG9ydCB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBgJHt0aGlzLnN1YlBpcGVsaW5lTmFtZX0uJHt0aGlzLnNpbmt9LmJ1bGtSZXF1ZXN0TGF0ZW5jeS5tYXhgLFxuICAgICAgTWV0cmljU3RhdGlzdGljLk1BWCxcbiAgICAgIGAke3RoaXMuc2lua30uYnVsa1JlcXVlc3RMYXRlbmN5Lm1heGAsXG4gICAgICB0aGlzLmRpbWVuc2lvbnNNYXAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBPcGVuU2VhcmNoSW5nZXN0aW9uTmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY1NpbmtCdWxrUGlwZWxpbmVMYXRlbmN5TWF4KCk6IE1ldHJpY1dpdGhBbGFybVN1cHBvcnQge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljKFxuICAgICAgYCR7dGhpcy5zdWJQaXBlbGluZU5hbWV9LiR7dGhpcy5zaW5rfS5QaXBlbGluZUxhdGVuY3kubWF4YCxcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5NQVgsXG4gICAgICBgJHt0aGlzLnNpbmt9LlBpcGVsaW5lTGF0ZW5jeS5tYXhgLFxuICAgICAgdGhpcy5kaW1lbnNpb25zTWFwLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgT3BlblNlYXJjaEluZ2VzdGlvbk5hbWVzcGFjZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgdGhpcy5hY2NvdW50LFxuICAgICk7XG4gIH1cblxuICBtZXRyaWNSZWNvcmRzUHJvY2Vzc2VkQ291bnQoKTogTWV0cmljV2l0aEFsYXJtU3VwcG9ydCB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBgJHt0aGlzLnN1YlBpcGVsaW5lTmFtZX0ucmVjb3Jkc1Byb2Nlc3NlZC5jb3VudGAsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuU1VNLFxuICAgICAgXCJyZWNvcmRzUHJvY2Vzc2VkLmNvdW50XCIsXG4gICAgICB0aGlzLmRpbWVuc2lvbnNNYXAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBPcGVuU2VhcmNoSW5nZXN0aW9uTmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY1NpbmtSZWNvcmRzSW5Db3VudCgpOiBNZXRyaWNXaXRoQWxhcm1TdXBwb3J0IHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGYWN0b3J5LmNyZWF0ZU1ldHJpYyhcbiAgICAgIGAke3RoaXMuc3ViUGlwZWxpbmVOYW1lfS4ke3RoaXMuc2lua30ucmVjb3Jkc0luLmNvdW50YCxcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5TVU0sXG4gICAgICBgJHt0aGlzLnNpbmt9LnJlY29yZHNJbi5jb3VudGAsXG4gICAgICB0aGlzLmRpbWVuc2lvbnNNYXAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBPcGVuU2VhcmNoSW5nZXN0aW9uTmFtZXNwYWNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5yZWdpb24sXG4gICAgICB0aGlzLmFjY291bnQsXG4gICAgKTtcbiAgfVxuXG4gIG1ldHJpY0RscVMzUmVjb3Jkc0NvdW50KCk6IE1ldHJpY1dpdGhBbGFybVN1cHBvcnQge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljTWF0aChcbiAgICAgIFwic3VjY2Vzc0NvdW50ICsgZmFpbGVkQ291bnRcIixcbiAgICAgIHtcbiAgICAgICAgc3VjY2Vzc0NvdW50OiB0aGlzLm1ldHJpY0RscVMzUmVjb3Jkc1N1Y2Nlc3NDb3VudCgpLFxuICAgICAgICBmYWlsZWRDb3VudDogdGhpcy5tZXRyaWNEbHFTM1JlY29yZHNGYWlsZWRDb3VudCgpLFxuICAgICAgfSxcbiAgICAgIFwiRExRIHJlY29yZHMgY291bnRcIixcbiAgICApO1xuICB9XG5cbiAgbWV0cmljRGxxUzNSZWNvcmRzU3VjY2Vzc0NvdW50KCk6IE1ldHJpY1dpdGhBbGFybVN1cHBvcnQge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZhY3RvcnkuY3JlYXRlTWV0cmljKFxuICAgICAgYCR7dGhpcy5zdWJQaXBlbGluZU5hbWV9LiR7dGhpcy5zaW5rfS5zMy5kbHFTM1JlY29yZHNTdWNjZXNzLmNvdW50YCxcbiAgICAgIE1ldHJpY1N0YXRpc3RpYy5TVU0sXG4gICAgICBcInMzLmRscVMzUmVjb3Jkc1N1Y2Nlc3MuY291bnRcIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIE9wZW5TZWFyY2hJbmdlc3Rpb25OYW1lc3BhY2UsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG5cbiAgbWV0cmljRGxxUzNSZWNvcmRzRmFpbGVkQ291bnQoKTogTWV0cmljV2l0aEFsYXJtU3VwcG9ydCB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRmFjdG9yeS5jcmVhdGVNZXRyaWMoXG4gICAgICBgJHt0aGlzLnN1YlBpcGVsaW5lTmFtZX0uJHt0aGlzLnNpbmt9LnMzLmRscVMzUmVjb3Jkc0ZhaWxlZC5jb3VudGAsXG4gICAgICBNZXRyaWNTdGF0aXN0aWMuU1VNLFxuICAgICAgXCJzMy5kbHFTM1JlY29yZHNGYWlsZWQuY291bnRcIixcbiAgICAgIHRoaXMuZGltZW5zaW9uc01hcCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIE9wZW5TZWFyY2hJbmdlc3Rpb25OYW1lc3BhY2UsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWNjb3VudCxcbiAgICApO1xuICB9XG59XG4iXX0=