@cdklabs/multi-az-observability 0.0.1-alpha.6 → 0.0.1-alpha.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +2826 -1008
- package/.jsii.tabl.json +1 -0
- package/API.md +5406 -1585
- package/README.md +176 -152
- package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.d.ts +18 -14
- package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.js +98 -60
- package/lib/alarmsandrules/BaseOperationRegionalAlarmsAndRules.d.ts +3 -3
- package/lib/alarmsandrules/BaseOperationRegionalAlarmsAndRules.js +2 -2
- package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.d.ts +6 -15
- package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.js +2 -10
- package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.d.ts +11 -3
- package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.js +29 -13
- package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.d.ts +0 -8
- package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.js +1 -1
- package/lib/alarmsandrules/IOperationAlarmsAndRules.d.ts +26 -23
- package/lib/alarmsandrules/IOperationAlarmsAndRules.js +1 -1
- package/lib/alarmsandrules/IServerSideOperationRegionalAlarmsAndRules.js +1 -1
- package/lib/alarmsandrules/IServiceAlarmsAndRules.d.ts +19 -15
- package/lib/alarmsandrules/IServiceAlarmsAndRules.js +1 -1
- package/lib/alarmsandrules/OperationAlarmsAndRules.d.ts +21 -18
- package/lib/alarmsandrules/OperationAlarmsAndRules.js +60 -72
- package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.d.ts +5 -5
- package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.js +2 -3
- package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.d.ts +21 -13
- package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.js +48 -29
- package/lib/alarmsandrules/ServiceAlarmsAndRules.d.ts +19 -15
- package/lib/alarmsandrules/ServiceAlarmsAndRules.js +34 -136
- package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.d.ts +4 -3
- package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.js +1 -1
- package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.d.ts +6 -44
- package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.js +1 -1
- package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.d.ts +39 -7
- package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.js +1 -1
- package/lib/azmapper/AvailabilityZoneMapper.js +8 -9
- package/lib/basic_observability/BasicServiceDashboard.d.ts +0 -3
- package/lib/basic_observability/BasicServiceDashboard.js +24 -112
- package/lib/basic_observability/BasicServiceMultiAZObservability.d.ts +8 -9
- package/lib/basic_observability/BasicServiceMultiAZObservability.js +97 -349
- package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.d.ts +66 -0
- package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.js +3 -0
- package/lib/basic_observability/props/BasicServiceDashboardProps.d.ts +27 -13
- package/lib/basic_observability/props/BasicServiceDashboardProps.js +1 -1
- package/lib/basic_observability/props/BasicServiceMultiAZObservabilityProps.d.ts +10 -44
- package/lib/basic_observability/props/BasicServiceMultiAZObservabilityProps.js +1 -1
- package/lib/basic_observability/props/NatGatewayDetectionProps.d.ts +31 -0
- package/lib/basic_observability/props/NatGatewayDetectionProps.js +3 -0
- package/lib/canaries/CanaryFunction.js +14 -13
- package/lib/canaries/CanaryTest.js +4 -4
- package/lib/canaries/src/canary.zip +0 -0
- package/lib/dashboards/ContributorInsightsWidget.d.ts +1 -1
- package/lib/dashboards/ContributorInsightsWidget.js +13 -17
- package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.d.ts +2 -6
- package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +436 -510
- package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.d.ts +2 -10
- package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +420 -416
- package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.d.ts +3 -66
- package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.js +1 -1
- package/lib/dashboards/props/OperationAvailabilityWidgetProps.d.ts +7 -2
- package/lib/dashboards/props/OperationAvailabilityWidgetProps.js +1 -1
- package/lib/dashboards/props/OperationLatencyWidgetProps.d.ts +7 -2
- package/lib/dashboards/props/OperationLatencyWidgetProps.js +1 -1
- package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.d.ts +8 -8
- package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.js +1 -1
- package/lib/index.d.ts +56 -25
- package/lib/index.js +37 -19
- package/lib/metrics/ApplicationLoadBalancerMetrics.d.ts +79 -2
- package/lib/metrics/ApplicationLoadBalancerMetrics.js +883 -26
- package/lib/metrics/AvailabilityAndLatencyMetrics.d.ts +23 -0
- package/lib/metrics/AvailabilityAndLatencyMetrics.js +125 -31
- package/lib/metrics/NatGatewayMetrics.d.ts +113 -0
- package/lib/metrics/NatGatewayMetrics.js +357 -0
- package/lib/metrics/RegionalAvailabilityMetrics.js +9 -10
- package/lib/metrics/RegionalLatencyMetrics.d.ts +1 -1
- package/lib/metrics/RegionalLatencyMetrics.js +27 -20
- package/lib/metrics/ZonalAvailabilityMetrics.d.ts +2 -8
- package/lib/metrics/ZonalAvailabilityMetrics.js +13 -28
- package/lib/metrics/ZonalLatencyMetrics.d.ts +2 -1
- package/lib/metrics/ZonalLatencyMetrics.js +33 -23
- package/lib/metrics/props/AvailabilityAndLatencyMetricProps.d.ts +4 -0
- package/lib/metrics/props/AvailabilityAndLatencyMetricProps.js +1 -1
- package/lib/metrics/props/LatencyMetricProps.d.ts +6 -0
- package/lib/metrics/props/LatencyMetricProps.js +1 -1
- package/lib/metrics/props/ZonalAvailabilityMetricProps.d.ts +4 -0
- package/lib/metrics/props/ZonalAvailabilityMetricProps.js +1 -1
- package/lib/metrics/props/ZonalLatencyMetricProps.d.ts +4 -0
- package/lib/metrics/props/ZonalLatencyMetricProps.js +1 -1
- package/lib/monitoring/src/monitoring-layer.zip +0 -0
- package/lib/outlier-detection/ApplicationLoadBalancerAvailabilityOutlierAlgorithm.d.ts +10 -0
- package/lib/outlier-detection/ApplicationLoadBalancerAvailabilityOutlierAlgorithm.js +15 -0
- package/lib/{basic_observability/props/ApplicationLoadBalancerLatencyOutlierCalculation.d.ts → outlier-detection/ApplicationLoadBalancerLatencyOutlierAlgorithm.d.ts} +1 -1
- package/lib/outlier-detection/ApplicationLoadBalancerLatencyOutlierAlgorithm.js +23 -0
- package/lib/outlier-detection/LatencyOutlierMetricAggregation.d.ts +22 -0
- package/lib/outlier-detection/LatencyOutlierMetricAggregation.js +27 -0
- package/lib/outlier-detection/OutlierDetectionFunction.js +7 -6
- package/lib/outlier-detection/PacketLossOutlierAlgorithm.d.ts +10 -0
- package/lib/outlier-detection/PacketLossOutlierAlgorithm.js +15 -0
- package/lib/outlier-detection/src/outlier-detection.zip +0 -0
- package/lib/outlier-detection/src/scipy-layer.zip +0 -0
- package/lib/services/CanaryMetrics.d.ts +4 -3
- package/lib/services/CanaryMetrics.js +3 -4
- package/lib/services/CanaryTestAvailabilityMetricsOverride.d.ts +21 -0
- package/lib/services/CanaryTestAvailabilityMetricsOverride.js +23 -0
- package/lib/services/CanaryTestLatencyMetricsOverride.d.ts +15 -0
- package/lib/services/CanaryTestLatencyMetricsOverride.js +20 -0
- package/lib/services/CanaryTestMetricsOverride.d.ts +1 -13
- package/lib/services/CanaryTestMetricsOverride.js +2 -4
- package/lib/services/ContributorInsightRuleDetails.js +1 -1
- package/lib/services/ICanaryMetrics.d.ts +4 -3
- package/lib/services/ICanaryMetrics.js +1 -1
- package/lib/services/ICanaryTestAvailabilityMetricsOverride.d.ts +23 -0
- package/lib/services/ICanaryTestAvailabilityMetricsOverride.js +3 -0
- package/lib/services/ICanaryTestLatencyMetricsOverride.d.ts +13 -0
- package/lib/services/ICanaryTestLatencyMetricsOverride.js +3 -0
- package/lib/services/ICanaryTestMetricsOverride.d.ts +0 -12
- package/lib/services/ICanaryTestMetricsOverride.js +1 -1
- package/lib/services/IInstrumentedServiceMultiAZObservability.d.ts +13 -3
- package/lib/services/IInstrumentedServiceMultiAZObservability.js +1 -1
- package/lib/services/IOperation.d.ts +8 -6
- package/lib/services/IOperation.js +1 -1
- package/lib/services/IOperationAvailabilityMetricDetails.d.ts +18 -0
- package/lib/services/IOperationAvailabilityMetricDetails.js +3 -0
- package/lib/services/IOperationLatencyMetricDetails.d.ts +12 -0
- package/lib/services/IOperationLatencyMetricDetails.js +3 -0
- package/lib/services/IOperationMetricDetails.d.ts +0 -12
- package/lib/services/IOperationMetricDetails.js +1 -1
- package/lib/services/IService.d.ts +18 -4
- package/lib/services/IService.js +1 -1
- package/lib/services/IServiceAvailabilityMetricDetails.d.ts +18 -0
- package/lib/services/IServiceAvailabilityMetricDetails.js +3 -0
- package/lib/services/IServiceLatencyMetricDetails.d.ts +12 -0
- package/lib/services/IServiceLatencyMetricDetails.js +3 -0
- package/lib/services/IServiceMetricDetails.d.ts +0 -12
- package/lib/services/IServiceMetricDetails.js +1 -1
- package/lib/services/InstrumentedServiceMultiAZObservability.d.ts +15 -3
- package/lib/services/InstrumentedServiceMultiAZObservability.js +252 -228
- package/lib/services/Operation.d.ts +8 -6
- package/lib/services/Operation.js +4 -3
- package/lib/services/OperationAvailabilityMetricDetails.d.ts +22 -0
- package/lib/services/OperationAvailabilityMetricDetails.js +24 -0
- package/lib/services/OperationLatencyMetricDetails.d.ts +16 -0
- package/lib/services/OperationLatencyMetricDetails.js +21 -0
- package/lib/services/OperationMetricDetails.d.ts +1 -13
- package/lib/services/OperationMetricDetails.js +2 -8
- package/lib/services/Service.d.ts +18 -4
- package/lib/services/Service.js +4 -2
- package/lib/services/ServiceAvailabilityMetricDetails.d.ts +21 -0
- package/lib/services/ServiceAvailabilityMetricDetails.js +20 -0
- package/lib/services/ServiceLatencyMetricDetails.d.ts +15 -0
- package/lib/services/ServiceLatencyMetricDetails.js +19 -0
- package/lib/services/ServiceMetricDetails.d.ts +1 -13
- package/lib/services/ServiceMetricDetails.js +2 -4
- package/lib/services/props/CanaryMetricProps.d.ts +4 -3
- package/lib/services/props/CanaryMetricProps.js +1 -1
- package/lib/services/props/CanaryTestAvailabilityMetricsOverrideProps.d.ts +22 -0
- package/lib/services/props/CanaryTestAvailabilityMetricsOverrideProps.js +3 -0
- package/lib/services/props/CanaryTestLatencyMetricsOverrideProps.d.ts +14 -0
- package/lib/services/props/CanaryTestLatencyMetricsOverrideProps.js +3 -0
- package/lib/services/props/CanaryTestMetricsOverrideProps.d.ts +0 -16
- package/lib/services/props/CanaryTestMetricsOverrideProps.js +1 -1
- package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.d.ts +50 -5
- package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.js +1 -1
- package/lib/services/props/MetricDimensions.js +1 -1
- package/lib/services/props/OperationAvailabilityMetricDetailsProps.d.ts +22 -0
- package/lib/services/props/OperationAvailabilityMetricDetailsProps.js +3 -0
- package/lib/services/props/OperationLatencyMetricDetailsProps.d.ts +14 -0
- package/lib/services/props/OperationLatencyMetricDetailsProps.js +3 -0
- package/lib/services/props/OperationMetricDetailsProps.d.ts +0 -16
- package/lib/services/props/OperationMetricDetailsProps.js +1 -1
- package/lib/services/props/OperationProps.d.ts +4 -3
- package/lib/services/props/OperationProps.js +1 -1
- package/lib/services/props/ServiceAvailabilityMetricDetailsProps.d.ts +18 -0
- package/lib/services/props/ServiceAvailabilityMetricDetailsProps.js +3 -0
- package/lib/services/props/ServiceLatencyMetricDetailsProps.d.ts +12 -0
- package/lib/services/props/ServiceLatencyMetricDetailsProps.js +3 -0
- package/lib/services/props/ServiceMetricDetailsProps.d.ts +0 -12
- package/lib/services/props/ServiceMetricDetailsProps.js +1 -1
- package/lib/services/props/ServiceProps.d.ts +18 -4
- package/lib/services/props/ServiceProps.js +1 -1
- package/lib/utilities/MetricsHelper.d.ts +17 -9
- package/lib/utilities/MetricsHelper.js +34 -10
- package/lib/utilities/MinimumUnhealthyTargets.d.ts +25 -0
- package/lib/utilities/MinimumUnhealthyTargets.js +3 -0
- package/package.json +14 -14
- package/rosetta/default.ts-fixture +72 -0
- package/rosetta/service.ts-fixture +144 -0
- package/lib/basic_observability/props/ApplicationLoadBalancerLatencyOutlierCalculation.js +0 -23
- package/lib/services/IBasicServiceMultiAZObservability.d.ts +0 -45
- package/lib/services/IBasicServiceMultiAZObservability.js +0 -3
|
@@ -15,57 +15,42 @@ class ZonalAvailabilityMetrics {
|
|
|
15
15
|
* @returns The metric at index 0 is the metric math expression for the whole service. The following metrics
|
|
16
16
|
* are the metrics for each operation included in the request availability metric props.
|
|
17
17
|
*/
|
|
18
|
-
static createZonalServiceAvailabilityMetrics(
|
|
18
|
+
static createZonalServiceAvailabilityMetrics(metrics, period, label) {
|
|
19
19
|
let usingMetrics = {};
|
|
20
20
|
let operationMetrics = [];
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
let keyPrefix = (prop.keyPrefix === undefined || prop.keyPrefix == ''
|
|
24
|
-
? ''
|
|
25
|
-
: prop.keyPrefix.toLowerCase() + '_') +
|
|
26
|
-
prop.metricDetails.operationName.toLowerCase() +
|
|
27
|
-
'_' +
|
|
28
|
-
prop.metricType.toString().toLowerCase();
|
|
29
|
-
let zonalOperationAvailabilityMetric = this.createZonalAvailabilityMetric(prop);
|
|
21
|
+
metrics.forEach((prop, index) => {
|
|
22
|
+
let zonalOperationAvailabilityMetric = AvailabilityAndLatencyMetrics_1.AvailabilityAndLatencyMetrics.createZonalAvailabilityMetric(prop, prop.metricDetails.metricDimensions.zonalDimensions(prop.availabilityZoneId, aws_cdk_lib_1.Aws.REGION));
|
|
30
23
|
operationMetrics.push(zonalOperationAvailabilityMetric);
|
|
31
|
-
usingMetrics[`${
|
|
24
|
+
usingMetrics[`${prop.availabilityZone.substring(prop.availabilityZone.length - 1)}_${prop.metricDetails.operationName}_${prop.metricType.toString().toLowerCase()}_${index}`] =
|
|
32
25
|
zonalOperationAvailabilityMetric;
|
|
33
26
|
});
|
|
34
27
|
let expression = '';
|
|
35
|
-
switch (
|
|
28
|
+
switch (metrics[0].metricType) {
|
|
36
29
|
case AvailabilityMetricType_1.AvailabilityMetricType.SUCCESS_RATE:
|
|
37
|
-
expression = `(${Object.keys(usingMetrics).join('+')}) / ${
|
|
30
|
+
expression = `(${Object.keys(usingMetrics).join('+')}) / ${metrics.length} + TIME_SERIES(0)`;
|
|
38
31
|
break;
|
|
39
32
|
case AvailabilityMetricType_1.AvailabilityMetricType.REQUEST_COUNT:
|
|
40
|
-
expression = `${Object.keys(usingMetrics).join('+')}`;
|
|
33
|
+
expression = `${Object.keys(usingMetrics).join('+')} + TIME_SERIES(0)`;
|
|
41
34
|
break;
|
|
42
35
|
case AvailabilityMetricType_1.AvailabilityMetricType.FAULT_COUNT:
|
|
43
|
-
expression = `${Object.keys(usingMetrics).join('+')}`;
|
|
36
|
+
expression = `${Object.keys(usingMetrics).join('+')} + TIME_SERIES(0)`;
|
|
44
37
|
break;
|
|
45
38
|
case AvailabilityMetricType_1.AvailabilityMetricType.FAULT_RATE:
|
|
46
|
-
expression = `(${Object.keys(usingMetrics).join('+')}) / ${
|
|
39
|
+
expression = `(${Object.keys(usingMetrics).join('+')}) / ${metrics.length} + TIME_SERIES(0)`;
|
|
47
40
|
break;
|
|
48
41
|
case AvailabilityMetricType_1.AvailabilityMetricType.SUCCESS_COUNT:
|
|
49
|
-
expression = `${Object.keys(usingMetrics).join('+')}`;
|
|
42
|
+
expression = `${Object.keys(usingMetrics).join('+')} + TIME_SERIES(0)`;
|
|
50
43
|
break;
|
|
51
44
|
}
|
|
52
45
|
let math = new aws_cloudwatch_1.MathExpression({
|
|
53
46
|
usingMetrics: usingMetrics,
|
|
54
|
-
period:
|
|
55
|
-
label:
|
|
47
|
+
period: period,
|
|
48
|
+
label: label,
|
|
56
49
|
expression: expression,
|
|
57
50
|
});
|
|
58
51
|
operationMetrics.splice(0, 0, math);
|
|
59
52
|
return operationMetrics;
|
|
60
53
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Creates a zonal availability metric
|
|
63
|
-
* @param props
|
|
64
|
-
* @returns
|
|
65
|
-
*/
|
|
66
|
-
static createZonalAvailabilityMetric(props) {
|
|
67
|
-
return AvailabilityAndLatencyMetrics_1.AvailabilityAndLatencyMetrics.createAvailabilityMetric(props, props.metricDetails.metricDimensions.zonalDimensions(props.availabilityZoneId, aws_cdk_lib_1.Aws.REGION));
|
|
68
|
-
}
|
|
69
54
|
}
|
|
70
55
|
exports.ZonalAvailabilityMetrics = ZonalAvailabilityMetrics;
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWm9uYWxBdmFpbGFiaWxpdHlNZXRyaWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21ldHJpY3MvWm9uYWxBdmFpbGFiaWxpdHlNZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQTRDO0FBQzVDLCtEQUFxRTtBQUNyRSxtRkFBZ0Y7QUFFaEYsZ0ZBQTZFO0FBRTdFLE1BQWEsd0JBQXdCO0lBQ25DOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxxQ0FBcUMsQ0FDMUMsT0FBdUMsRUFDdkMsTUFBZ0IsRUFDaEIsS0FBYTtRQUViLElBQUksWUFBWSxHQUErQixFQUFFLENBQUM7UUFDbEQsSUFBSSxnQkFBZ0IsR0FBYyxFQUFFLENBQUM7UUFFckMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWtDLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFFcEUsSUFBSSxnQ0FBZ0MsR0FDbEMsNkRBQTZCLENBQUMsNkJBQTZCLENBQ3pELElBQUksRUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FDakQsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixpQkFBRyxDQUFDLE1BQU0sQ0FDWCxDQUNGLENBQUM7WUFFSixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztZQUN4RCxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLElBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDN0ssZ0NBQWdDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsR0FBVyxFQUFFLENBQUM7UUFFNUIsUUFBUSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDOUIsS0FBSywrQ0FBc0IsQ0FBQyxZQUFZO2dCQUN0QyxVQUFVLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxPQUFPLENBQUMsTUFBTSxtQkFBbUIsQ0FBQztnQkFDN0YsTUFBTTtZQUNSLEtBQUssK0NBQXNCLENBQUMsYUFBYTtnQkFDdkMsVUFBVSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO2dCQUN2RSxNQUFNO1lBQ1IsS0FBSywrQ0FBc0IsQ0FBQyxXQUFXO2dCQUNyQyxVQUFVLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3ZFLE1BQU07WUFDUixLQUFLLCtDQUFzQixDQUFDLFVBQVU7Z0JBQ3BDLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLG1CQUFtQixDQUFDO2dCQUM3RixNQUFNO1lBQ1IsS0FBSywrQ0FBc0IsQ0FBQyxhQUFhO2dCQUN2QyxVQUFVLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3ZFLE1BQU07UUFDVixDQUFDO1FBQ0QsSUFBSSxJQUFJLEdBQVksSUFBSSwrQkFBYyxDQUFDO1lBQ3JDLFlBQVksRUFBRSxZQUFZO1lBQzFCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsVUFBVTtTQUN2QixDQUFDLENBQUM7UUFFSCxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVwQyxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQTlERCw0REE4REMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBBd3MsIER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSU1ldHJpYywgTWF0aEV4cHJlc3Npb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBBdmFpbGFiaWxpdHlBbmRMYXRlbmN5TWV0cmljcyB9IGZyb20gJy4vQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeU1ldHJpY3MnO1xuaW1wb3J0IHsgWm9uYWxBdmFpbGFiaWxpdHlNZXRyaWNQcm9wcyB9IGZyb20gJy4vcHJvcHMvWm9uYWxBdmFpbGFiaWxpdHlNZXRyaWNQcm9wcyc7XG5pbXBvcnQgeyBBdmFpbGFiaWxpdHlNZXRyaWNUeXBlIH0gZnJvbSAnLi4vdXRpbGl0aWVzL0F2YWlsYWJpbGl0eU1ldHJpY1R5cGUnO1xuXG5leHBvcnQgY2xhc3MgWm9uYWxBdmFpbGFiaWxpdHlNZXRyaWNzIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB6b25hbCBzZXJ2aWNlIGxldmVsIGF2YWlsYWJpbGl0eSBtZXRyaWNzLCBvbmUgbWV0cmljIGZvclxuICAgKiBlYWNoIG9wZXJhdGlvbiBhdCB0aGUgem9uYWwgbGV2ZWwgYW5kIHRoZSBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gcHJvcHNcbiAgICogQHJldHVybnMgVGhlIG1ldHJpYyBhdCBpbmRleCAwIGlzIHRoZSBtZXRyaWMgbWF0aCBleHByZXNzaW9uIGZvciB0aGUgd2hvbGUgc2VydmljZS4gVGhlIGZvbGxvd2luZyBtZXRyaWNzXG4gICAqIGFyZSB0aGUgbWV0cmljcyBmb3IgZWFjaCBvcGVyYXRpb24gaW5jbHVkZWQgaW4gdGhlIHJlcXVlc3QgYXZhaWxhYmlsaXR5IG1ldHJpYyBwcm9wcy5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVab25hbFNlcnZpY2VBdmFpbGFiaWxpdHlNZXRyaWNzKFxuICAgIG1ldHJpY3M6IFpvbmFsQXZhaWxhYmlsaXR5TWV0cmljUHJvcHNbXSxcbiAgICBwZXJpb2Q6IER1cmF0aW9uLFxuICAgIGxhYmVsOiBzdHJpbmdcbiAgKTogSU1ldHJpY1tdIHtcbiAgICBsZXQgdXNpbmdNZXRyaWNzOiB7IFtrZXk6IHN0cmluZ106IElNZXRyaWMgfSA9IHt9O1xuICAgIGxldCBvcGVyYXRpb25NZXRyaWNzOiBJTWV0cmljW10gPSBbXTtcblxuICAgIG1ldHJpY3MuZm9yRWFjaCgocHJvcDogWm9uYWxBdmFpbGFiaWxpdHlNZXRyaWNQcm9wcywgaW5kZXg6IG51bWJlcikgPT4ge1xuXG4gICAgICBsZXQgem9uYWxPcGVyYXRpb25BdmFpbGFiaWxpdHlNZXRyaWM6IElNZXRyaWMgPVxuICAgICAgICBBdmFpbGFiaWxpdHlBbmRMYXRlbmN5TWV0cmljcy5jcmVhdGVab25hbEF2YWlsYWJpbGl0eU1ldHJpYyhcbiAgICAgICAgICBwcm9wLFxuICAgICAgICAgIHByb3AubWV0cmljRGV0YWlscy5tZXRyaWNEaW1lbnNpb25zLnpvbmFsRGltZW5zaW9ucyhcbiAgICAgICAgICAgIHByb3AuYXZhaWxhYmlsaXR5Wm9uZUlkLFxuICAgICAgICAgICAgQXdzLlJFR0lPTlxuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgb3BlcmF0aW9uTWV0cmljcy5wdXNoKHpvbmFsT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljKTtcbiAgICAgIHVzaW5nTWV0cmljc1tgJHtwcm9wLmF2YWlsYWJpbGl0eVpvbmUuc3Vic3RyaW5nKHByb3AuYXZhaWxhYmlsaXR5Wm9uZS5sZW5ndGggLSAxKX1fJHtwcm9wLm1ldHJpY0RldGFpbHMub3BlcmF0aW9uTmFtZX1fJHsgcHJvcC5tZXRyaWNUeXBlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSB9XyR7aW5kZXh9YF0gPVxuICAgICAgICB6b25hbE9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpYztcbiAgICB9KTtcblxuICAgIGxldCBleHByZXNzaW9uOiBzdHJpbmcgPSAnJztcblxuICAgIHN3aXRjaCAobWV0cmljc1swXS5tZXRyaWNUeXBlKSB7XG4gICAgICBjYXNlIEF2YWlsYWJpbGl0eU1ldHJpY1R5cGUuU1VDQ0VTU19SQVRFOlxuICAgICAgICBleHByZXNzaW9uID0gYCgke09iamVjdC5rZXlzKHVzaW5nTWV0cmljcykuam9pbignKycpfSkgLyAke21ldHJpY3MubGVuZ3RofSArIFRJTUVfU0VSSUVTKDApYDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEF2YWlsYWJpbGl0eU1ldHJpY1R5cGUuUkVRVUVTVF9DT1VOVDpcbiAgICAgICAgZXhwcmVzc2lvbiA9IGAke09iamVjdC5rZXlzKHVzaW5nTWV0cmljcykuam9pbignKycpfSArIFRJTUVfU0VSSUVTKDApYDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEF2YWlsYWJpbGl0eU1ldHJpY1R5cGUuRkFVTFRfQ09VTlQ6XG4gICAgICAgIGV4cHJlc3Npb24gPSBgJHtPYmplY3Qua2V5cyh1c2luZ01ldHJpY3MpLmpvaW4oJysnKX0gKyBUSU1FX1NFUklFUygwKWA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBBdmFpbGFiaWxpdHlNZXRyaWNUeXBlLkZBVUxUX1JBVEU6XG4gICAgICAgIGV4cHJlc3Npb24gPSBgKCR7T2JqZWN0LmtleXModXNpbmdNZXRyaWNzKS5qb2luKCcrJyl9KSAvICR7bWV0cmljcy5sZW5ndGh9ICsgVElNRV9TRVJJRVMoMClgO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQXZhaWxhYmlsaXR5TWV0cmljVHlwZS5TVUNDRVNTX0NPVU5UOlxuICAgICAgICBleHByZXNzaW9uID0gYCR7T2JqZWN0LmtleXModXNpbmdNZXRyaWNzKS5qb2luKCcrJyl9ICsgVElNRV9TRVJJRVMoMClgO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgbGV0IG1hdGg6IElNZXRyaWMgPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgdXNpbmdNZXRyaWNzOiB1c2luZ01ldHJpY3MsXG4gICAgICBwZXJpb2Q6IHBlcmlvZCxcbiAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgIGV4cHJlc3Npb246IGV4cHJlc3Npb24sXG4gICAgfSk7XG5cbiAgICBvcGVyYXRpb25NZXRyaWNzLnNwbGljZSgwLCAwLCBtYXRoKTtcblxuICAgIHJldHVybiBvcGVyYXRpb25NZXRyaWNzO1xuICB9XG59XG4iXX0=
|
|
@@ -8,6 +8,7 @@ export declare class ZonalLatencyMetrics {
|
|
|
8
8
|
* @returns
|
|
9
9
|
*/
|
|
10
10
|
static createZonalLatencyMetrics(props: ZonalLatencyMetricProps): IMetric[];
|
|
11
|
+
static createZonalLatencyMetric(props: ZonalLatencyMetricProps): IMetric;
|
|
11
12
|
/**
|
|
12
13
|
* Creates an average zonal latency metric
|
|
13
14
|
* @param props
|
|
@@ -25,5 +26,5 @@ export declare class ZonalLatencyMetrics {
|
|
|
25
26
|
* @param props
|
|
26
27
|
* @returns
|
|
27
28
|
*/
|
|
28
|
-
static createZonalServiceLatencyMetrics(props: ServiceLatencyMetricProps): IMetric[];
|
|
29
|
+
static createZonalServiceLatencyMetrics(props: ServiceLatencyMetricProps, includeAZCountAggregate?: boolean): IMetric[];
|
|
29
30
|
}
|
|
@@ -14,7 +14,10 @@ class ZonalLatencyMetrics {
|
|
|
14
14
|
* @returns
|
|
15
15
|
*/
|
|
16
16
|
static createZonalLatencyMetrics(props) {
|
|
17
|
-
return AvailabilityAndLatencyMetrics_1.AvailabilityAndLatencyMetrics.createLatencyMetrics(props, props.metricDetails.metricDimensions.zonalDimensions(props.availabilityZoneId, aws_cdk_lib_1.
|
|
17
|
+
return AvailabilityAndLatencyMetrics_1.AvailabilityAndLatencyMetrics.createLatencyMetrics(props, props.metricDetails.metricDimensions.zonalDimensions(props.availabilityZoneId, aws_cdk_lib_1.Aws.REGION));
|
|
18
|
+
}
|
|
19
|
+
static createZonalLatencyMetric(props) {
|
|
20
|
+
return AvailabilityAndLatencyMetrics_1.AvailabilityAndLatencyMetrics.createLatencyMetric(props, props.metricDetails.metricDimensions.zonalDimensions(props.availabilityZoneId, aws_cdk_lib_1.Aws.REGION));
|
|
18
21
|
}
|
|
19
22
|
/**
|
|
20
23
|
* Creates an average zonal latency metric
|
|
@@ -22,7 +25,7 @@ class ZonalLatencyMetrics {
|
|
|
22
25
|
* @returns
|
|
23
26
|
*/
|
|
24
27
|
static createZonalAverageLatencyMetric(props) {
|
|
25
|
-
return AvailabilityAndLatencyMetrics_1.AvailabilityAndLatencyMetrics.createAverageLatencyMetric(props, props.metricDetails.metricDimensions.zonalDimensions(props.availabilityZoneId, aws_cdk_lib_1.
|
|
28
|
+
return AvailabilityAndLatencyMetrics_1.AvailabilityAndLatencyMetrics.createAverageLatencyMetric(props, props.metricDetails.metricDimensions.zonalDimensions(props.availabilityZoneId, aws_cdk_lib_1.Aws.REGION));
|
|
26
29
|
}
|
|
27
30
|
/**
|
|
28
31
|
* Creates a count of high latency metric
|
|
@@ -30,37 +33,44 @@ class ZonalLatencyMetrics {
|
|
|
30
33
|
* @returns
|
|
31
34
|
*/
|
|
32
35
|
static createZonalCountLatencyMetric(props) {
|
|
33
|
-
return AvailabilityAndLatencyMetrics_1.AvailabilityAndLatencyMetrics.createLatencyCountMetric(props, props.metricDetails.metricDimensions.zonalDimensions(props.availabilityZoneId, aws_cdk_lib_1.
|
|
36
|
+
return AvailabilityAndLatencyMetrics_1.AvailabilityAndLatencyMetrics.createLatencyCountMetric(props, props.metricDetails.metricDimensions.zonalDimensions(props.availabilityZoneId, aws_cdk_lib_1.Aws.REGION));
|
|
34
37
|
}
|
|
35
38
|
/**
|
|
36
39
|
* Creates a count of high latency responses for all critical operations
|
|
37
40
|
* @param props
|
|
38
41
|
* @returns
|
|
39
42
|
*/
|
|
40
|
-
static createZonalServiceLatencyMetrics(props) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
43
|
+
static createZonalServiceLatencyMetrics(props, includeAZCountAggregate) {
|
|
44
|
+
if (includeAZCountAggregate) {
|
|
45
|
+
let usingMetrics = {};
|
|
46
|
+
let operationMetrics = [];
|
|
47
|
+
let keyPrefix = MetricsHelper_1.MetricsHelper.nextChar();
|
|
48
|
+
props.latencyMetricProps.forEach((prop, index) => {
|
|
49
|
+
let operationZonalMetric = this.createZonalCountLatencyMetric(prop);
|
|
50
|
+
operationMetrics.push(operationZonalMetric);
|
|
51
|
+
usingMetrics[`${keyPrefix}${index}`] = operationZonalMetric;
|
|
52
|
+
keyPrefix = MetricsHelper_1.MetricsHelper.nextChar(keyPrefix);
|
|
53
|
+
});
|
|
54
|
+
if (Object.keys(usingMetrics).length == 1) {
|
|
55
|
+
operationMetrics.push(Object.values(usingMetrics)[0]);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
let math = new aws_cloudwatch_1.MathExpression({
|
|
59
|
+
usingMetrics: usingMetrics,
|
|
60
|
+
period: props.period,
|
|
61
|
+
label: props.label,
|
|
62
|
+
expression: Object.keys(usingMetrics).join('+'),
|
|
63
|
+
});
|
|
64
|
+
operationMetrics.splice(0, 0, math);
|
|
65
|
+
}
|
|
66
|
+
return operationMetrics;
|
|
52
67
|
}
|
|
53
68
|
else {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
period: props.period,
|
|
57
|
-
label: props.label,
|
|
58
|
-
expression: Object.keys(usingMetrics).join('+'),
|
|
69
|
+
return props.latencyMetricProps.map((prop) => {
|
|
70
|
+
return this.createZonalCountLatencyMetric(prop);
|
|
59
71
|
});
|
|
60
|
-
operationMetrics.splice(0, 0, math);
|
|
61
72
|
}
|
|
62
|
-
return operationMetrics;
|
|
63
73
|
}
|
|
64
74
|
}
|
|
65
75
|
exports.ZonalLatencyMetrics = ZonalLatencyMetrics;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWm9uYWxMYXRlbmN5TWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXRyaWNzL1pvbmFsTGF0ZW5jeU1ldHJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0Qyw2Q0FBa0M7QUFDbEMsK0RBQXFFO0FBQ3JFLG1GQUFnRjtBQUloRiw4REFBMkQ7QUFFM0QsTUFBYSxtQkFBbUI7SUFDOUI7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxLQUE4QjtRQUM3RCxPQUFPLDZEQUE2QixDQUFDLG9CQUFvQixDQUN2RCxLQUFLLEVBQ0wsS0FBSyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQ2xELEtBQUssQ0FBQyxrQkFBa0IsRUFDeEIsaUJBQUcsQ0FBQyxNQUFNLENBQ1gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxLQUE4QjtRQUM1RCxPQUFPLDZEQUE2QixDQUFDLG1CQUFtQixDQUN0RCxLQUFLLEVBQ0wsS0FBSyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQ2xELEtBQUssQ0FBQyxrQkFBa0IsRUFDeEIsaUJBQUcsQ0FBQyxNQUFNLENBQ1gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsK0JBQStCLENBQ3BDLEtBQThCO1FBRTlCLE9BQU8sNkRBQTZCLENBQUMsMEJBQTBCLENBQzdELEtBQUssRUFDTCxLQUFLLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FDbEQsS0FBSyxDQUFDLGtCQUFrQixFQUN4QixpQkFBRyxDQUFDLE1BQU0sQ0FDWCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyw2QkFBNkIsQ0FDbEMsS0FBOEI7UUFFOUIsT0FBTyw2REFBNkIsQ0FBQyx3QkFBd0IsQ0FDM0QsS0FBSyxFQUNMLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUNsRCxLQUFLLENBQUMsa0JBQWtCLEVBQ3hCLGlCQUFHLENBQUMsTUFBTSxDQUNYLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGdDQUFnQyxDQUNyQyxLQUFnQyxFQUNoQyx1QkFBaUM7UUFFakMsSUFBSSx1QkFBdUIsRUFDM0IsQ0FBQztZQUNDLElBQUksWUFBWSxHQUErQixFQUFFLENBQUM7WUFDbEQsSUFBSSxnQkFBZ0IsR0FBYyxFQUFFLENBQUM7WUFDckMsSUFBSSxTQUFTLEdBQVcsNkJBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUVqRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUM5QixDQUFDLElBQXdCLEVBQUUsS0FBYSxFQUFFLEVBQUU7Z0JBQzFDLElBQUksb0JBQW9CLEdBQVksSUFBSSxDQUFDLDZCQUE2QixDQUNwRSxJQUErQixDQUNoQyxDQUFDO2dCQUVGLGdCQUFnQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUM1QyxZQUFZLENBQUMsR0FBRyxTQUFTLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxvQkFBb0IsQ0FBQztnQkFDNUQsU0FBUyxHQUFHLDZCQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FDRixDQUFDO1lBRUYsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxJQUFJLEdBQVksSUFBSSwrQkFBYyxDQUFDO29CQUNyQyxZQUFZLEVBQUUsWUFBWTtvQkFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO29CQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7b0JBQ2xCLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQ2hELENBQUMsQ0FBQztnQkFFSCxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBRUQsT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixDQUFDO2FBQ0ksQ0FBQztZQUNKLE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQXdCLEVBQUUsRUFBRTtnQkFDL0QsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBK0IsQ0FBQyxDQUFDO1lBQzdFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTVHRCxrREE0R0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBBd3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJTWV0cmljLCBNYXRoRXhwcmVzc2lvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IEF2YWlsYWJpbGl0eUFuZExhdGVuY3lNZXRyaWNzIH0gZnJvbSAnLi9BdmFpbGFiaWxpdHlBbmRMYXRlbmN5TWV0cmljcyc7XG5pbXBvcnQgeyBMYXRlbmN5TWV0cmljUHJvcHMgfSBmcm9tICcuL3Byb3BzL0xhdGVuY3lNZXRyaWNQcm9wcyc7XG5pbXBvcnQgeyBTZXJ2aWNlTGF0ZW5jeU1ldHJpY1Byb3BzIH0gZnJvbSAnLi9wcm9wcy9TZXJ2aWNlTGF0ZW5jeU1lcmljUHJvcHMnO1xuaW1wb3J0IHsgWm9uYWxMYXRlbmN5TWV0cmljUHJvcHMgfSBmcm9tICcuL3Byb3BzL1pvbmFsTGF0ZW5jeU1ldHJpY1Byb3BzJztcbmltcG9ydCB7IE1ldHJpY3NIZWxwZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvTWV0cmljc0hlbHBlcic7XG5cbmV4cG9ydCBjbGFzcyBab25hbExhdGVuY3lNZXRyaWNzIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB6b25hbCBsYXRlbmN5IG1ldHJpY1xuICAgKiBAcGFyYW0gcHJvcHNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVab25hbExhdGVuY3lNZXRyaWNzKHByb3BzOiBab25hbExhdGVuY3lNZXRyaWNQcm9wcyk6IElNZXRyaWNbXSB7XG4gICAgcmV0dXJuIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lNZXRyaWNzLmNyZWF0ZUxhdGVuY3lNZXRyaWNzKFxuICAgICAgcHJvcHMsXG4gICAgICBwcm9wcy5tZXRyaWNEZXRhaWxzLm1ldHJpY0RpbWVuc2lvbnMuem9uYWxEaW1lbnNpb25zKFxuICAgICAgICBwcm9wcy5hdmFpbGFiaWxpdHlab25lSWQsXG4gICAgICAgIEF3cy5SRUdJT05cbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVab25hbExhdGVuY3lNZXRyaWMocHJvcHM6IFpvbmFsTGF0ZW5jeU1ldHJpY1Byb3BzKTogSU1ldHJpYyB7XG4gICAgcmV0dXJuIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lNZXRyaWNzLmNyZWF0ZUxhdGVuY3lNZXRyaWMoXG4gICAgICBwcm9wcyxcbiAgICAgIHByb3BzLm1ldHJpY0RldGFpbHMubWV0cmljRGltZW5zaW9ucy56b25hbERpbWVuc2lvbnMoXG4gICAgICAgIHByb3BzLmF2YWlsYWJpbGl0eVpvbmVJZCxcbiAgICAgICAgQXdzLlJFR0lPTlxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhdmVyYWdlIHpvbmFsIGxhdGVuY3kgbWV0cmljXG4gICAqIEBwYXJhbSBwcm9wc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVpvbmFsQXZlcmFnZUxhdGVuY3lNZXRyaWMoXG4gICAgcHJvcHM6IFpvbmFsTGF0ZW5jeU1ldHJpY1Byb3BzLFxuICApOiBJTWV0cmljIHtcbiAgICByZXR1cm4gQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeU1ldHJpY3MuY3JlYXRlQXZlcmFnZUxhdGVuY3lNZXRyaWMoXG4gICAgICBwcm9wcyxcbiAgICAgIHByb3BzLm1ldHJpY0RldGFpbHMubWV0cmljRGltZW5zaW9ucy56b25hbERpbWVuc2lvbnMoXG4gICAgICAgIHByb3BzLmF2YWlsYWJpbGl0eVpvbmVJZCxcbiAgICAgICAgQXdzLlJFR0lPTlxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBjb3VudCBvZiBoaWdoIGxhdGVuY3kgbWV0cmljXG4gICAqIEBwYXJhbSBwcm9wc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVpvbmFsQ291bnRMYXRlbmN5TWV0cmljKFxuICAgIHByb3BzOiBab25hbExhdGVuY3lNZXRyaWNQcm9wcyxcbiAgKTogSU1ldHJpYyB7XG4gICAgcmV0dXJuIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lNZXRyaWNzLmNyZWF0ZUxhdGVuY3lDb3VudE1ldHJpYyhcbiAgICAgIHByb3BzLFxuICAgICAgcHJvcHMubWV0cmljRGV0YWlscy5tZXRyaWNEaW1lbnNpb25zLnpvbmFsRGltZW5zaW9ucyhcbiAgICAgICAgcHJvcHMuYXZhaWxhYmlsaXR5Wm9uZUlkLFxuICAgICAgICBBd3MuUkVHSU9OXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGNvdW50IG9mIGhpZ2ggbGF0ZW5jeSByZXNwb25zZXMgZm9yIGFsbCBjcml0aWNhbCBvcGVyYXRpb25zXG4gICAqIEBwYXJhbSBwcm9wc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVpvbmFsU2VydmljZUxhdGVuY3lNZXRyaWNzKFxuICAgIHByb3BzOiBTZXJ2aWNlTGF0ZW5jeU1ldHJpY1Byb3BzLFxuICAgIGluY2x1ZGVBWkNvdW50QWdncmVnYXRlPzogYm9vbGVhblxuICApOiBJTWV0cmljW10ge1xuICAgIGlmIChpbmNsdWRlQVpDb3VudEFnZ3JlZ2F0ZSlcbiAgICB7XG4gICAgICBsZXQgdXNpbmdNZXRyaWNzOiB7IFtrZXk6IHN0cmluZ106IElNZXRyaWMgfSA9IHt9O1xuICAgICAgbGV0IG9wZXJhdGlvbk1ldHJpY3M6IElNZXRyaWNbXSA9IFtdO1xuICAgICAgbGV0IGtleVByZWZpeDogc3RyaW5nID0gTWV0cmljc0hlbHBlci5uZXh0Q2hhcigpO1xuXG4gICAgICBwcm9wcy5sYXRlbmN5TWV0cmljUHJvcHMuZm9yRWFjaChcbiAgICAgICAgKHByb3A6IExhdGVuY3lNZXRyaWNQcm9wcywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgIGxldCBvcGVyYXRpb25ab25hbE1ldHJpYzogSU1ldHJpYyA9IHRoaXMuY3JlYXRlWm9uYWxDb3VudExhdGVuY3lNZXRyaWMoXG4gICAgICAgICAgICBwcm9wIGFzIFpvbmFsTGF0ZW5jeU1ldHJpY1Byb3BzLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBvcGVyYXRpb25NZXRyaWNzLnB1c2gob3BlcmF0aW9uWm9uYWxNZXRyaWMpO1xuICAgICAgICAgIHVzaW5nTWV0cmljc1tgJHtrZXlQcmVmaXh9JHtpbmRleH1gXSA9IG9wZXJhdGlvblpvbmFsTWV0cmljO1xuICAgICAgICAgIGtleVByZWZpeCA9IE1ldHJpY3NIZWxwZXIubmV4dENoYXIoa2V5UHJlZml4KTtcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGlmIChPYmplY3Qua2V5cyh1c2luZ01ldHJpY3MpLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgIG9wZXJhdGlvbk1ldHJpY3MucHVzaChPYmplY3QudmFsdWVzKHVzaW5nTWV0cmljcylbMF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IG1hdGg6IElNZXRyaWMgPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgICAgIHVzaW5nTWV0cmljczogdXNpbmdNZXRyaWNzLFxuICAgICAgICAgIHBlcmlvZDogcHJvcHMucGVyaW9kLFxuICAgICAgICAgIGxhYmVsOiBwcm9wcy5sYWJlbCxcbiAgICAgICAgICBleHByZXNzaW9uOiBPYmplY3Qua2V5cyh1c2luZ01ldHJpY3MpLmpvaW4oJysnKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgb3BlcmF0aW9uTWV0cmljcy5zcGxpY2UoMCwgMCwgbWF0aCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvcGVyYXRpb25NZXRyaWNzO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJldHVybiBwcm9wcy5sYXRlbmN5TWV0cmljUHJvcHMubWFwKChwcm9wOiBMYXRlbmN5TWV0cmljUHJvcHMpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlWm9uYWxDb3VudExhdGVuY3lNZXRyaWMocHJvcCBhcyBab25hbExhdGVuY3lNZXRyaWNQcm9wcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeU1ldHJpY1Byb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21ldHJpY3MvcHJvcHMvQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeU1ldHJpY1Byb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBJT3BlcmF0aW9uTWV0cmljRGV0YWlscyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL0lPcGVyYXRpb25NZXRyaWNEZXRhaWxzJztcblxuLyoqXG4gKiBDb21tb24gYXZhaWxhYmlsaXR5IGFuZCBsYXRlbmN5IG1ldHJpYyBwcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lNZXRyaWNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbWV0cmljIGRldGFpbHMgdG8gY3JlYXRlIG1ldHJpY3MgZnJvbVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljRGV0YWlsczogSU9wZXJhdGlvbk1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRyaWMgbGFiZWxcbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEEga2V5IHByZWZpeCBmb3IgdGhlIG1ldHJpYyBuYW1lIHRvIG1ha2UgaXQgdW5pcXVlXG4gICAqIGluIGFsYXJtcyBhbmQgZ3JhcGhzXG4gICAqL1xuICByZWFkb25seSBrZXlQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBSZWdpb24gZm9yIHRoZSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG59XG4iXX0=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeU1ldHJpY1Byb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21ldHJpY3MvcHJvcHMvQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeU1ldHJpY1Byb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBJT3BlcmF0aW9uTWV0cmljRGV0YWlscyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL0lPcGVyYXRpb25NZXRyaWNEZXRhaWxzJztcblxuLyoqXG4gKiBDb21tb24gYXZhaWxhYmlsaXR5IGFuZCBsYXRlbmN5IG1ldHJpYyBwcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lNZXRyaWNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbWV0cmljIGRldGFpbHMgdG8gY3JlYXRlIG1ldHJpY3MgZnJvbVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljRGV0YWlsczogSU9wZXJhdGlvbk1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRyaWMgbGFiZWxcbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEEga2V5IHByZWZpeCBmb3IgdGhlIG1ldHJpYyBuYW1lIHRvIG1ha2UgaXQgdW5pcXVlXG4gICAqIGluIGFsYXJtcyBhbmQgZ3JhcGhzXG4gICAqL1xuICByZWFkb25seSBrZXlQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBSZWdpb24gZm9yIHRoZSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2xvciBmb3IgdGhlIG1ldHJpYyB0byBiZSBkaXNwbGF5ZWQgb24gYSBncmFwaFxuICAgKi9cbiAgcmVhZG9ubHkgY29sb3I/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -12,4 +12,10 @@ export interface LatencyMetricProps extends AvailabilityAndLatencyMetricProps {
|
|
|
12
12
|
* The latency statistic like p99, tm99, or TC(100:)
|
|
13
13
|
*/
|
|
14
14
|
readonly statistic: string;
|
|
15
|
+
/**
|
|
16
|
+
* Provide this to target only a specific metric
|
|
17
|
+
*
|
|
18
|
+
* @default All metrics of the specified type will be returned
|
|
19
|
+
*/
|
|
20
|
+
readonly metricName?: string;
|
|
15
21
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF0ZW5jeU1ldHJpY1Byb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21ldHJpY3MvcHJvcHMvTGF0ZW5jeU1ldHJpY1Byb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBBdmFpbGFiaWxpdHlBbmRMYXRlbmN5TWV0cmljUHJvcHMgfSBmcm9tICcuL0F2YWlsYWJpbGl0eUFuZExhdGVuY3lNZXRyaWNQcm9wcyc7XG5pbXBvcnQgeyBMYXRlbmN5TWV0cmljVHlwZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9MYXRlbmN5TWV0cmljVHlwZSc7XG5cbi8qKlxuICogTWV0cmljIHByb3BlcnRpZXMgZm9yIGxhdGVuY3kgbWV0cmljc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExhdGVuY3lNZXRyaWNQcm9wcyBleHRlbmRzIEF2YWlsYWJpbGl0eUFuZExhdGVuY3lNZXRyaWNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBsYXRlbmN5IG1ldHJpY1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljVHlwZTogTGF0ZW5jeU1ldHJpY1R5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsYXRlbmN5IHN0YXRpc3RpYyBsaWtlIHA5OSwgdG05OSwgb3IgVEMoMTAwOilcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRpc3RpYzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlIHRoaXMgdG8gdGFyZ2V0IG9ubHkgYSBzcGVjaWZpYyBtZXRyaWNcbiAgICogXG4gICAqIEBkZWZhdWx0IEFsbCBtZXRyaWNzIG9mIHRoZSBzcGVjaWZpZWQgdHlwZSB3aWxsIGJlIHJldHVybmVkXG4gICAqL1xuICByZWFkb25seSBtZXRyaWNOYW1lPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -7,4 +7,8 @@ export interface ZonalAvailabilityMetricProps extends AvailabilityMetricProps {
|
|
|
7
7
|
* The Availability Zone Id for the metrics
|
|
8
8
|
*/
|
|
9
9
|
readonly availabilityZoneId: string;
|
|
10
|
+
/**
|
|
11
|
+
* The Availability Zone name for the metrics
|
|
12
|
+
*/
|
|
13
|
+
readonly availabilityZone: string;
|
|
10
14
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWm9uYWxBdmFpbGFiaWxpdHlNZXRyaWNQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZXRyaWNzL3Byb3BzL1pvbmFsQXZhaWxhYmlsaXR5TWV0cmljUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IEF2YWlsYWJpbGl0eU1ldHJpY1Byb3BzIH0gZnJvbSAnLi9BdmFpbGFiaWxpdHlNZXRyaWNQcm9wcyc7XG5cbi8qKlxuICogVGhlIEF2YWlsYWJpbGl0eSBab25lIGF2YWlsYWJpbGl0eSBtZXRyaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFpvbmFsQXZhaWxhYmlsaXR5TWV0cmljUHJvcHMgZXh0ZW5kcyBBdmFpbGFiaWxpdHlNZXRyaWNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgQXZhaWxhYmlsaXR5IFpvbmUgSWQgZm9yIHRoZSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEF2YWlsYWJpbGl0eSBab25lIG5hbWUgZm9yIHRoZSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWm9uYWxMYXRlbmN5TWV0cmljUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWV0cmljcy9wcm9wcy9ab25hbExhdGVuY3lNZXRyaWNQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgTGF0ZW5jeU1ldHJpY1Byb3BzIH0gZnJvbSAnLi9MYXRlbmN5TWV0cmljUHJvcHMnO1xuXG4vKipcbiAqIFRoZSBsYXRlbmN5IG1ldHJpYyBwcm9wZXJ0aWVzIGZvciBhbiBBdmFpbGFiaWxpdHkgWm9uZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFpvbmFsTGF0ZW5jeU1ldHJpY1Byb3BzIGV4dGVuZHMgTGF0ZW5jeU1ldHJpY1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBdmFpbGFiaWxpdHkgWm9uZSBJZCBmb3IgdGhlIG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQXZhaWxhYmlsaXR5IFpvbmUgbmFtZSBmb3IgdGhlIG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcbn1cbiJdfQ==
|
|
Binary file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The options for calculating if an ALB is an outlier for availability
|
|
3
|
+
*/
|
|
4
|
+
export declare enum ApplicationLoadBalancerAvailabilityOutlierAlgorithm {
|
|
5
|
+
/**
|
|
6
|
+
* This will take the availability threshold and calculate if one AZ is responsible
|
|
7
|
+
* for that percentage of errors.
|
|
8
|
+
*/
|
|
9
|
+
STATIC = "STATIC"
|
|
10
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationLoadBalancerAvailabilityOutlierAlgorithm = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The options for calculating if an ALB is an outlier for availability
|
|
6
|
+
*/
|
|
7
|
+
var ApplicationLoadBalancerAvailabilityOutlierAlgorithm;
|
|
8
|
+
(function (ApplicationLoadBalancerAvailabilityOutlierAlgorithm) {
|
|
9
|
+
/**
|
|
10
|
+
* This will take the availability threshold and calculate if one AZ is responsible
|
|
11
|
+
* for that percentage of errors.
|
|
12
|
+
*/
|
|
13
|
+
ApplicationLoadBalancerAvailabilityOutlierAlgorithm["STATIC"] = "STATIC";
|
|
14
|
+
})(ApplicationLoadBalancerAvailabilityOutlierAlgorithm || (exports.ApplicationLoadBalancerAvailabilityOutlierAlgorithm = ApplicationLoadBalancerAvailabilityOutlierAlgorithm = {}));
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL291dGxpZXItZGV0ZWN0aW9uL0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQXZhaWxhYmlsaXR5T3V0bGllckFsZ29yaXRobS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksbURBTVg7QUFORCxXQUFZLG1EQUFtRDtJQUMzRDs7O09BR0c7SUFDSCx3RUFBaUIsQ0FBQTtBQUNyQixDQUFDLEVBTlcsbURBQW1ELG1FQUFuRCxtREFBbUQsUUFNOUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBvcHRpb25zIGZvciBjYWxjdWxhdGluZyBpZiBhbiBBTEIgaXMgYW4gb3V0bGllciBmb3IgYXZhaWxhYmlsaXR5XG4gKi9cbmV4cG9ydCBlbnVtIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQXZhaWxhYmlsaXR5T3V0bGllckFsZ29yaXRobSB7XG4gICAgLyoqXG4gICAgICogVGhpcyB3aWxsIHRha2UgdGhlIGF2YWlsYWJpbGl0eSB0aHJlc2hvbGQgYW5kIGNhbGN1bGF0ZSBpZiBvbmUgQVogaXMgcmVzcG9uc2libGVcbiAgICAgKiBmb3IgdGhhdCBwZXJjZW50YWdlIG9mIGVycm9ycy5cbiAgICAgKi9cbiAgICBTVEFUSUMgPSBcIlNUQVRJQ1wiXG59Il19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The options for calculating if an AZ is an outlier for latency for ALBs
|
|
3
3
|
*/
|
|
4
|
-
export declare enum
|
|
4
|
+
export declare enum ApplicationLoadBalancerLatencyOutlierAlgorithm {
|
|
5
5
|
/**
|
|
6
6
|
* This will take the latency threshold and count the number of requests per AZ
|
|
7
7
|
* that exceed this threshold and then calculate the percentage of requests
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationLoadBalancerLatencyOutlierAlgorithm = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The options for calculating if an AZ is an outlier for latency for ALBs
|
|
6
|
+
*/
|
|
7
|
+
var ApplicationLoadBalancerLatencyOutlierAlgorithm;
|
|
8
|
+
(function (ApplicationLoadBalancerLatencyOutlierAlgorithm) {
|
|
9
|
+
/**
|
|
10
|
+
* This will take the latency threshold and count the number of requests per AZ
|
|
11
|
+
* that exceed this threshold and then calculate the percentage of requests
|
|
12
|
+
* exceeding this threshold belong to each AZ. This provides a static comparison
|
|
13
|
+
* of the number of high latency requests in one AZ versus the others
|
|
14
|
+
*/
|
|
15
|
+
ApplicationLoadBalancerLatencyOutlierAlgorithm["STATIC"] = "STATIC";
|
|
16
|
+
/**
|
|
17
|
+
* This calculates the z score of latency in one AZ against the other AZs. It uses
|
|
18
|
+
* the target response time of all requests to calculate the standard deviation and
|
|
19
|
+
* average for all AZs. This is the default.
|
|
20
|
+
*/
|
|
21
|
+
ApplicationLoadBalancerLatencyOutlierAlgorithm["Z_SCORE"] = "Z_SCORE";
|
|
22
|
+
})(ApplicationLoadBalancerLatencyOutlierAlgorithm || (exports.ApplicationLoadBalancerLatencyOutlierAlgorithm = ApplicationLoadBalancerLatencyOutlierAlgorithm = {}));
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vdXRsaWVyLWRldGVjdGlvbi9BcHBsaWNhdGlvbkxvYWRCYWxhbmNlckxhdGVuY3lPdXRsaWVyQWxnb3JpdGhtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsSUFBWSw4Q0FnQlg7QUFoQkQsV0FBWSw4Q0FBOEM7SUFFdEQ7Ozs7O09BS0c7SUFDSCxtRUFBaUIsQ0FBQTtJQUVqQjs7OztPQUlHO0lBQ0gscUVBQWtCLENBQUE7QUFDdEIsQ0FBQyxFQWhCVyw4Q0FBOEMsOERBQTlDLDhDQUE4QyxRQWdCekQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBvcHRpb25zIGZvciBjYWxjdWxhdGluZyBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBsYXRlbmN5IGZvciBBTEJzXG4gKi9cbmV4cG9ydCBlbnVtIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTGF0ZW5jeU91dGxpZXJBbGdvcml0aG1cbntcbiAgICAvKipcbiAgICAgKiBUaGlzIHdpbGwgdGFrZSB0aGUgbGF0ZW5jeSB0aHJlc2hvbGQgYW5kIGNvdW50IHRoZSBudW1iZXIgb2YgcmVxdWVzdHMgcGVyIEFaIFxuICAgICAqIHRoYXQgZXhjZWVkIHRoaXMgdGhyZXNob2xkIGFuZCB0aGVuIGNhbGN1bGF0ZSB0aGUgcGVyY2VudGFnZSBvZiByZXF1ZXN0c1xuICAgICAqIGV4Y2VlZGluZyB0aGlzIHRocmVzaG9sZCBiZWxvbmcgdG8gZWFjaCBBWi4gVGhpcyBwcm92aWRlcyBhIHN0YXRpYyBjb21wYXJpc29uXG4gICAgICogb2YgdGhlIG51bWJlciBvZiBoaWdoIGxhdGVuY3kgcmVxdWVzdHMgaW4gb25lIEFaIHZlcnN1cyB0aGUgb3RoZXJzXG4gICAgICovXG4gICAgU1RBVElDID0gXCJTVEFUSUNcIixcblxuICAgIC8qKlxuICAgICAqIFRoaXMgY2FsY3VsYXRlcyB0aGUgeiBzY29yZSBvZiBsYXRlbmN5IGluIG9uZSBBWiBhZ2FpbnN0IHRoZSBvdGhlciBBWnMuIEl0IHVzZXNcbiAgICAgKiB0aGUgdGFyZ2V0IHJlc3BvbnNlIHRpbWUgb2YgYWxsIHJlcXVlc3RzIHRvIGNhbGN1bGF0ZSB0aGUgc3RhbmRhcmQgZGV2aWF0aW9uIGFuZFxuICAgICAqIGF2ZXJhZ2UgZm9yIGFsbCBBWnMuIFRoaXMgaXMgdGhlIGRlZmF1bHQuXG4gICAgICovXG4gICAgWl9TQ09SRT0gXCJaX1NDT1JFXCJcbn0iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The latency metric aggregation to use for latency outlier detection
|
|
3
|
+
*/
|
|
4
|
+
export declare enum LatencyOutlierMetricAggregation {
|
|
5
|
+
/**
|
|
6
|
+
* This option will use the count of the number of requests exceeding
|
|
7
|
+
* a latency threshold to make an outlier comparison. This option works
|
|
8
|
+
* with all outlier detection algorithms
|
|
9
|
+
*/
|
|
10
|
+
COUNT = "COUNT",
|
|
11
|
+
/**
|
|
12
|
+
* This option will use the value of your provided latency statistic, like
|
|
13
|
+
* p99, and the value of the latency in each AZ will be compared. For example,
|
|
14
|
+
* AZ1: p99 = 125ms
|
|
15
|
+
* AZ2: p99 = 130ms
|
|
16
|
+
* AZ3: p99 = 250ms
|
|
17
|
+
*
|
|
18
|
+
* These values will be compared using the provided outlier detection algorithm. This
|
|
19
|
+
* option is not compatible with the STATIC outlier detection algorithm.
|
|
20
|
+
*/
|
|
21
|
+
VALUE = "VALUE"
|
|
22
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LatencyOutlierMetricAggregation = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The latency metric aggregation to use for latency outlier detection
|
|
6
|
+
*/
|
|
7
|
+
var LatencyOutlierMetricAggregation;
|
|
8
|
+
(function (LatencyOutlierMetricAggregation) {
|
|
9
|
+
/**
|
|
10
|
+
* This option will use the count of the number of requests exceeding
|
|
11
|
+
* a latency threshold to make an outlier comparison. This option works
|
|
12
|
+
* with all outlier detection algorithms
|
|
13
|
+
*/
|
|
14
|
+
LatencyOutlierMetricAggregation["COUNT"] = "COUNT";
|
|
15
|
+
/**
|
|
16
|
+
* This option will use the value of your provided latency statistic, like
|
|
17
|
+
* p99, and the value of the latency in each AZ will be compared. For example,
|
|
18
|
+
* AZ1: p99 = 125ms
|
|
19
|
+
* AZ2: p99 = 130ms
|
|
20
|
+
* AZ3: p99 = 250ms
|
|
21
|
+
*
|
|
22
|
+
* These values will be compared using the provided outlier detection algorithm. This
|
|
23
|
+
* option is not compatible with the STATIC outlier detection algorithm.
|
|
24
|
+
*/
|
|
25
|
+
LatencyOutlierMetricAggregation["VALUE"] = "VALUE";
|
|
26
|
+
})(LatencyOutlierMetricAggregation || (exports.LatencyOutlierMetricAggregation = LatencyOutlierMetricAggregation = {}));
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF0ZW5jeU91dGxpZXJNZXRyaWNBZ2dyZWdhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vdXRsaWVyLWRldGVjdGlvbi9MYXRlbmN5T3V0bGllck1ldHJpY0FnZ3JlZ2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsSUFBWSwrQkFtQlg7QUFuQkQsV0FBWSwrQkFBK0I7SUFDdkM7Ozs7T0FJRztJQUNILGtEQUFlLENBQUE7SUFFZjs7Ozs7Ozs7O09BU0c7SUFDSCxrREFBZSxDQUFBO0FBQ25CLENBQUMsRUFuQlcsK0JBQStCLCtDQUEvQiwrQkFBK0IsUUFtQjFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgbGF0ZW5jeSBtZXRyaWMgYWdncmVnYXRpb24gdG8gdXNlIGZvciBsYXRlbmN5IG91dGxpZXIgZGV0ZWN0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIExhdGVuY3lPdXRsaWVyTWV0cmljQWdncmVnYXRpb24ge1xuICAgIC8qKlxuICAgICAqIFRoaXMgb3B0aW9uIHdpbGwgdXNlIHRoZSBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIGV4Y2VlZGluZ1xuICAgICAqIGEgbGF0ZW5jeSB0aHJlc2hvbGQgdG8gbWFrZSBhbiBvdXRsaWVyIGNvbXBhcmlzb24uIFRoaXMgb3B0aW9uIHdvcmtzXG4gICAgICogd2l0aCBhbGwgb3V0bGllciBkZXRlY3Rpb24gYWxnb3JpdGhtc1xuICAgICAqL1xuICAgIENPVU5UID0gXCJDT1VOVFwiLFxuXG4gICAgLyoqXG4gICAgICogVGhpcyBvcHRpb24gd2lsbCB1c2UgdGhlIHZhbHVlIG9mIHlvdXIgcHJvdmlkZWQgbGF0ZW5jeSBzdGF0aXN0aWMsIGxpa2VcbiAgICAgKiBwOTksIGFuZCB0aGUgdmFsdWUgb2YgdGhlIGxhdGVuY3kgaW4gZWFjaCBBWiB3aWxsIGJlIGNvbXBhcmVkLiBGb3IgZXhhbXBsZSxcbiAgICAgKiBBWjE6IHA5OSA9IDEyNW1zXG4gICAgICogQVoyOiBwOTkgPSAxMzBtc1xuICAgICAqIEFaMzogcDk5ID0gMjUwbXNcbiAgICAgKiBcbiAgICAgKiBUaGVzZSB2YWx1ZXMgd2lsbCBiZSBjb21wYXJlZCB1c2luZyB0aGUgcHJvdmlkZWQgb3V0bGllciBkZXRlY3Rpb24gYWxnb3JpdGhtLiBUaGlzXG4gICAgICogb3B0aW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIFNUQVRJQyBvdXRsaWVyIGRldGVjdGlvbiBhbGdvcml0aG0uXG4gICAgICovXG4gICAgVkFMVUUgPSBcIlZBTFVFXCJcbn0iXX0=
|
|
@@ -10,6 +10,7 @@ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
|
10
10
|
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
11
11
|
const aws_logs_1 = require("aws-cdk-lib/aws-logs");
|
|
12
12
|
const constructs_1 = require("constructs");
|
|
13
|
+
const MetricsHelper_1 = require("../utilities/MetricsHelper");
|
|
13
14
|
class OutlierDetectionFunction extends constructs_1.Construct {
|
|
14
15
|
constructor(scope, id, props) {
|
|
15
16
|
super(scope, id);
|
|
@@ -47,12 +48,12 @@ class OutlierDetectionFunction extends constructs_1.Construct {
|
|
|
47
48
|
let sciPyLayer = new aws_lambda_1.LayerVersion(this, 'SciPyLayer', {
|
|
48
49
|
code: aws_lambda_1.Code.fromAsset(path.join(__dirname, 'src/scipy-layer.zip')),
|
|
49
50
|
compatibleArchitectures: [aws_lambda_1.Architecture.ARM_64],
|
|
50
|
-
compatibleRuntimes: [
|
|
51
|
+
compatibleRuntimes: [MetricsHelper_1.MetricsHelper.PythonRuntime],
|
|
51
52
|
});
|
|
52
53
|
let monitoringLayer = new aws_lambda_1.LayerVersion(this, 'MonitoringLayer', {
|
|
53
54
|
code: aws_lambda_1.Code.fromAsset(path.join(__dirname, '../monitoring/src/monitoring-layer.zip')),
|
|
54
55
|
compatibleArchitectures: [aws_lambda_1.Architecture.ARM_64],
|
|
55
|
-
compatibleRuntimes: [
|
|
56
|
+
compatibleRuntimes: [MetricsHelper_1.MetricsHelper.PythonRuntime],
|
|
56
57
|
});
|
|
57
58
|
if (props.vpc !== undefined && props.vpc != null) {
|
|
58
59
|
let sg = new aws_ec2_1.SecurityGroup(this, 'OutlierDetectionSecurityGroup', {
|
|
@@ -61,7 +62,7 @@ class OutlierDetectionFunction extends constructs_1.Construct {
|
|
|
61
62
|
allowAllOutbound: true,
|
|
62
63
|
});
|
|
63
64
|
this.function = new aws_lambda_1.Function(this, 'OutlierDetection', {
|
|
64
|
-
runtime:
|
|
65
|
+
runtime: MetricsHelper_1.MetricsHelper.PythonRuntime,
|
|
65
66
|
code: aws_lambda_1.Code.fromAsset(path.join(__dirname, 'src/outlier-detection.zip')),
|
|
66
67
|
handler: 'index.handler',
|
|
67
68
|
role: executionRole,
|
|
@@ -81,7 +82,7 @@ class OutlierDetectionFunction extends constructs_1.Construct {
|
|
|
81
82
|
}
|
|
82
83
|
else {
|
|
83
84
|
this.function = new aws_lambda_1.Function(this, 'OutlierDetection', {
|
|
84
|
-
runtime:
|
|
85
|
+
runtime: MetricsHelper_1.MetricsHelper.PythonRuntime,
|
|
85
86
|
code: aws_lambda_1.Code.fromAsset(path.join(__dirname, 'src/outlier-detection.zip')),
|
|
86
87
|
handler: 'index.handler',
|
|
87
88
|
role: executionRole,
|
|
@@ -102,7 +103,7 @@ class OutlierDetectionFunction extends constructs_1.Construct {
|
|
|
102
103
|
this.function.addPermission('invokePermission', {
|
|
103
104
|
action: 'lambda:InvokeFunction',
|
|
104
105
|
principal: new aws_iam_1.ServicePrincipal('lambda.datasource.cloudwatch.amazonaws.com'),
|
|
105
|
-
sourceAccount: aws_cdk_lib_1.
|
|
106
|
+
sourceAccount: aws_cdk_lib_1.Aws.ACCOUNT_ID
|
|
106
107
|
});
|
|
107
108
|
this.logGroup = new aws_logs_1.LogGroup(this, 'logGroup', {
|
|
108
109
|
logGroupName: `/aws/lambda/${this.function.functionName}`,
|
|
@@ -123,4 +124,4 @@ class OutlierDetectionFunction extends constructs_1.Construct {
|
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
exports.OutlierDetectionFunction = OutlierDetectionFunction;
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL291dGxpZXItZGV0ZWN0aW9uL091dGxpZXJEZXRlY3Rpb25GdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBQ3RDLDZCQUE2QjtBQUM3Qiw2Q0FBcUU7QUFDckUsaURBQW9FO0FBQ3BFLGlEQVE2QjtBQUM3Qix1REFTZ0M7QUFDaEMsbURBQTBFO0FBQzFFLDJDQUF1QztBQUl2QyxNQUFhLHdCQUNYLFNBQVEsc0JBQVM7SUFZakIsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBb0M7UUFFcEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLGlCQUFpQixHQUFtQixJQUFJLHVCQUFhLENBQ3ZELElBQUksRUFDSixtQkFBbUIsRUFDbkI7WUFDRSxJQUFJLEVBQUUscUJBQXFCO1lBQzNCLFVBQVUsRUFBRTtnQkFDVixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLG9DQUFvQztxQkFDckM7b0JBQ0QsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztvQkFDcEIsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO2lCQUNqQixDQUFDO2FBQ0g7U0FDRixDQUNGLENBQUM7UUFDRixJQUFJLGVBQWUsR0FBRyxJQUFJLHVCQUFhLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQy9ELElBQUksRUFBRSxxQkFBcUI7WUFDM0IsVUFBVSxFQUFFO2dCQUNWLElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsMEJBQTBCLENBQUM7b0JBQ2pFLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JB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SUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxtQkFBbUIsQ0FBQztvQkFDdEQsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztvQkFDcEIsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7aUJBQ3ZDLENBQUM7YUFDSDtZQUNELEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF6SkQsNERBeUpDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEF3cywgRHVyYXRpb24sIEZuLCBSZW1vdmFsUG9saWN5LCBUYWdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSVNlY3VyaXR5R3JvdXAsIFNlY3VyaXR5R3JvdXAgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7XG4gIEVmZmVjdCxcbiAgSU1hbmFnZWRQb2xpY3ksXG4gIElSb2xlLFxuICBNYW5hZ2VkUG9saWN5LFxuICBQb2xpY3lTdGF0ZW1lbnQsXG4gIFJvbGUsXG4gIFNlcnZpY2VQcmluY2lwYWwsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHtcbiAgQXJjaGl0ZWN0dXJlLFxuICBDb2RlLFxuICBGdW5jdGlvbixcbiAgSUZ1bmN0aW9uLFxuICBJTGF5ZXJWZXJzaW9uLFxuICBMYXllclZlcnNpb24sXG4gIFJ1bnRpbWUsXG4gIFRyYWNpbmcsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgSUxvZ0dyb3VwLCBMb2dHcm91cCwgUmV0ZW50aW9uRGF5cyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSU91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbiB9IGZyb20gJy4vSU91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbic7XG5pbXBvcnQgeyBPdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb25Qcm9wcyB9IGZyb20gJy4vcHJvcHMvT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uUHJvcHMnO1xuXG5leHBvcnQgY2xhc3MgT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uXG4gIGV4dGVuZHMgQ29uc3RydWN0XG4gIGltcGxlbWVudHMgSU91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgei1zY29yZSBmdW5jdGlvblxuICAgKi9cbiAgZnVuY3Rpb246IElGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIGxvZyBncm91cCB3aGVyZSB0aGUgY2FuYXJ0eSBsb2dzIHdpbGwgYmUgc2VudFxuICAgKi9cbiAgbG9nR3JvdXA6IElMb2dHcm91cDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IE91dGxpZXJEZXRlY3Rpb25GdW5jdGlvblByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbGV0IHhyYXlNYW5hZ2VkUG9saWN5OiBJTWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgICd4cmF5TWFuYWdlZFBvbGljeScsXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICcvb3V0bGllci1kZXRlY3Rpb24vJyxcbiAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAneHJheTpQdXRUcmFjZVNlZ21lbnRzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6UHV0VGVsZW1ldHJ5UmVjb3JkcycsXG4gICAgICAgICAgICAgICd4cmF5OkdldFNhbXBsaW5nUnVsZXMnLFxuICAgICAgICAgICAgICAneHJheTpHZXRTYW1wbGluZ1RhcmdldHMnLFxuICAgICAgICAgICAgICAneHJheTpHZXRTYW1wbGluZ1N0YXRpc3RpY1N1bW1hcmllcycsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICApO1xuICAgIGxldCBjd01hbmFnZWRQb2xpY3kgPSBuZXcgTWFuYWdlZFBvbGljeSh0aGlzLCAnQ1dNYW5hZ2VkUG9saWN5Jywge1xuICAgICAgcGF0aDogJy9vdXRsaWVyLWRldGVjdGlvbi8nLFxuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbJ2Nsb3Vkd2F0Y2g6R2V0TWV0cmljRGF0YScsICdjbG9kdXdhdGNoOlB1dE1ldHJpY0RhdGEnXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBsZXQgZXhlY3V0aW9uUm9sZTogSVJvbGUgPSBuZXcgUm9sZSh0aGlzLCAnZXhlY3V0aW9uUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBwYXRoOiAnL291dGxpZXItZGV0ZWN0aW9uLycsXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFt4cmF5TWFuYWdlZFBvbGljeSwgY3dNYW5hZ2VkUG9saWN5XSxcbiAgICB9KTtcblxuICAgIGxldCBzY2lQeUxheWVyOiBJTGF5ZXJWZXJzaW9uID0gbmV3IExheWVyVmVyc2lvbih0aGlzLCAnU2NpUHlMYXllcicsIHtcbiAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICdzcmMvc2NpcHktbGF5ZXIuemlwJykpLFxuICAgICAgY29tcGF0aWJsZUFyY2hpdGVjdHVyZXM6IFtBcmNoaXRlY3R1cmUuQVJNXzY0XSxcbiAgICAgIGNvbXBhdGlibGVSdW50aW1lczogW1J1bnRpbWUuUFlUSE9OXzNfMTJdLFxuICAgIH0pO1xuXG4gICAgbGV0IG1vbml0b3JpbmdMYXllcjogSUxheWVyVmVyc2lvbiA9IG5ldyBMYXllclZlcnNpb24oXG4gICAgICB0aGlzLFxuICAgICAgJ01vbml0b3JpbmdMYXllcicsXG4gICAgICB7XG4gICAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KFxuICAgICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9tb25pdG9yaW5nL3NyYy9tb25pdG9yaW5nLWxheWVyLnppcCcpLFxuICAgICAgICApLFxuICAgICAgICBjb21wYXRpYmxlQXJjaGl0ZWN0dXJlczogW0FyY2hpdGVjdHVyZS5BUk1fNjRdLFxuICAgICAgICBjb21wYXRpYmxlUnVudGltZXM6IFtSdW50aW1lLlBZVEhPTl8zXzEyXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy52cGMgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52cGMgIT0gbnVsbCkge1xuICAgICAgbGV0IHNnOiBJU2VjdXJpdHlHcm91cCA9IG5ldyBTZWN1cml0eUdyb3VwKFxuICAgICAgICB0aGlzLFxuICAgICAgICAnT3V0bGllckRldGVjdGlvblNlY3VyaXR5R3JvdXAnLFxuICAgICAgICB7XG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnQWxsb3cgb3V0bGllciBkZXRlY3Rpb24gZnVuY3Rpb24gdG8gY29tbXVuaWNhdGUgd2l0aCBDVycsXG4gICAgICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuZnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgJ091dGxpZXJEZXRlY3Rpb24nLCB7XG4gICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuUFlUSE9OXzNfMTIsXG4gICAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICdzcmMvb3V0bGllci1kZXRlY3Rpb24uemlwJykpLFxuICAgICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICAgIHJvbGU6IGV4ZWN1dGlvblJvbGUsXG4gICAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgICAgIG1lbW9yeVNpemU6IDUxMixcbiAgICAgICAgbGF5ZXJzOiBbc2NpUHlMYXllciwgbW9uaXRvcmluZ0xheWVyXSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBSRUdJT046IEF3cy5SRUdJT04sXG4gICAgICAgICAgUEFSVElUSU9OOiBBd3MuUEFSVElUSU9OLFxuICAgICAgICB9LFxuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgICAgc2VjdXJpdHlHcm91cHM6IFtzZ10sXG4gICAgICAgIHZwY1N1Ym5ldHM6IHByb3BzLnN1Ym5ldFNlbGVjdGlvbixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZ1bmN0aW9uID0gbmV3IEZ1bmN0aW9uKHRoaXMsICdPdXRsaWVyRGV0ZWN0aW9uJywge1xuICAgICAgICBydW50aW1lOiBSdW50aW1lLlBZVEhPTl8zXzEyLFxuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnc3JjL291dGxpZXItZGV0ZWN0aW9uLnppcCcpKSxcbiAgICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgICByb2xlOiBleGVjdXRpb25Sb2xlLFxuICAgICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICAgIHRyYWNpbmc6IFRyYWNpbmcuQUNUSVZFLFxuICAgICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDUpLFxuICAgICAgICBtZW1vcnlTaXplOiA1MTIsXG4gICAgICAgIGxheWVyczogW3NjaVB5TGF5ZXIsIG1vbml0b3JpbmdMYXllcl0sXG4gICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgUkVHSU9OOiBBd3MuUkVHSU9OLFxuICAgICAgICAgIFBBUlRJVElPTjogQXdzLlBBUlRJVElPTixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIFRhZ3Mub2YodGhpcy5mdW5jdGlvbikuYWRkKCdjbG91ZHdhdGNoOmRhdGFzb3VyY2UnLCAnY3VzdG9tJywge1xuICAgICAgaW5jbHVkZVJlc291cmNlVHlwZXM6IFsnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJ10sXG4gICAgfSk7XG5cbiAgICB0aGlzLmZ1bmN0aW9uLmFkZFBlcm1pc3Npb24oJ2ludm9rZVBlcm1pc3Npb24nLCB7XG4gICAgICBhY3Rpb246ICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nLFxuICAgICAgcHJpbmNpcGFsOiBuZXcgU2VydmljZVByaW5jaXBhbChcbiAgICAgICAgJ2xhbWJkYS5kYXRhc291cmNlLmNsb3Vkd2F0Y2guYW1hem9uYXdzLmNvbScsXG4gICAgICApLFxuICAgICAgc291cmNlQWNjb3VudDogRm4ucmVmKCdBV1M6OkFjY291bnRJZCcpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5sb2dHcm91cCA9IG5ldyBMb2dHcm91cCh0aGlzLCAnbG9nR3JvdXAnLCB7XG4gICAgICBsb2dHcm91cE5hbWU6IGAvYXdzL2xhbWJkYS8ke3RoaXMuZnVuY3Rpb24uZnVuY3Rpb25OYW1lfWAsXG4gICAgICByZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICBuZXcgTWFuYWdlZFBvbGljeSh0aGlzLCAnY3dMb2dzTWFuYWdlZFBvbGljeScsIHtcbiAgICAgIHBhdGg6ICcvb3V0bGllci1kZXRlY3Rpb24vJyxcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogWydsb2dzOkNyZWF0ZUxvZ1N0cmVhbScsICdsb2dzOlB1dExvZ0V2ZW50cyddLFxuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIHJlc291cmNlczogW3RoaXMubG9nR3JvdXAubG9nR3JvdXBBcm5dLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICByb2xlczogW2V4ZWN1dGlvblJvbGVdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL291dGxpZXItZGV0ZWN0aW9uL091dGxpZXJEZXRlY3Rpb25GdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBQ3RDLDZCQUE2QjtBQUM3Qiw2Q0FBaUU7QUFDakUsaURBQW9FO0FBQ3BFLGlEQVE2QjtBQUM3Qix1REFRZ0M7QUFDaEMsbURBQTBFO0FBQzFFLDJDQUF1QztBQUd2Qyw4REFBMkQ7QUFFM0QsTUFBYSx3QkFDWCxTQUFRLHNCQUFTO0lBWWpCLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQW9DO1FBRXBDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxpQkFBaUIsR0FBbUIsSUFBSSx1QkFBYSxDQUN2RCxJQUFJLEVBQ0osbUJBQW1CLEVBQ25CO1lBQ0UsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixvQ0FBb0M7cUJBQ3JDO29CQUNELE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQzthQUNIO1NBQ0YsQ0FDRixDQUFDO1FBQ0YsSUFBSSxlQUFlLEdBQUcsSUFBSSx1QkFBYSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUMvRCxJQUFJLEVBQUUscUJBQXFCO1lBQzNCLFVBQVUsRUFBRTtnQkFDVixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixFQUFFLDBCQUEwQixDQUFDO29CQUNqRSxNQUFNLEVBQUUsZ0JBQU0s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LHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLG1CQUFtQixDQUFDO29CQUN0RCxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNwQixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztpQkFDdkMsQ0FBQzthQUNIO1lBQ0QsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXpKRCw0REF5SkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQXdzLCBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSwgVGFncyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElTZWN1cml0eUdyb3VwLCBTZWN1cml0eUdyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQge1xuICBFZmZlY3QsXG4gIElNYW5hZ2VkUG9saWN5LFxuICBJUm9sZSxcbiAgTWFuYWdlZFBvbGljeSxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBSb2xlLFxuICBTZXJ2aWNlUHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7XG4gIEFyY2hpdGVjdHVyZSxcbiAgQ29kZSxcbiAgRnVuY3Rpb24sXG4gIElGdW5jdGlvbixcbiAgSUxheWVyVmVyc2lvbixcbiAgTGF5ZXJWZXJzaW9uLFxuICBUcmFjaW5nLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IElMb2dHcm91cCwgTG9nR3JvdXAsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElPdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb24gfSBmcm9tICcuL0lPdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb24nO1xuaW1wb3J0IHsgT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uUHJvcHMgfSBmcm9tICcuL3Byb3BzL091dGxpZXJEZXRlY3Rpb25GdW5jdGlvblByb3BzJztcbmltcG9ydCB7IE1ldHJpY3NIZWxwZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvTWV0cmljc0hlbHBlcic7XG5cbmV4cG9ydCBjbGFzcyBPdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb25cbiAgZXh0ZW5kcyBDb25zdHJ1Y3RcbiAgaW1wbGVtZW50cyBJT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSB6LXNjb3JlIGZ1bmN0aW9uXG4gICAqL1xuICBmdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9nIGdyb3VwIHdoZXJlIHRoZSBjYW5hcnR5IGxvZ3Mgd2lsbCBiZSBzZW50XG4gICAqL1xuICBsb2dHcm91cDogSUxvZ0dyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBsZXQgeHJheU1hbmFnZWRQb2xpY3k6IElNYW5hZ2VkUG9saWN5ID0gbmV3IE1hbmFnZWRQb2xpY3koXG4gICAgICB0aGlzLFxuICAgICAgJ3hyYXlNYW5hZ2VkUG9saWN5JyxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJy9vdXRsaWVyLWRldGVjdGlvbi8nLFxuICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICd4cmF5OlB1dFRyYWNlU2VnbWVudHMnLFxuICAgICAgICAgICAgICAneHJheTpQdXRUZWxlbWV0cnlSZWNvcmRzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdSdWxlcycsXG4gICAgICAgICAgICAgICd4cmF5OkdldFNhbXBsaW5nVGFyZ2V0cycsXG4gICAgICAgICAgICAgICd4cmF5OkdldFNhbXBsaW5nU3RhdGlzdGljU3VtbWFyaWVzJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICk7XG4gICAgbGV0IGN3TWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KHRoaXMsICdDV01hbmFnZWRQb2xpY3knLCB7XG4gICAgICBwYXRoOiAnL291dGxpZXItZGV0ZWN0aW9uLycsXG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFsnY2xvdWR3YXRjaDpHZXRNZXRyaWNEYXRhJywgJ2Nsb2R1d2F0Y2g6UHV0TWV0cmljRGF0YSddLFxuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGxldCBleGVjdXRpb25Sb2xlOiBJUm9sZSA9IG5ldyBSb2xlKHRoaXMsICdleGVjdXRpb25Sb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIHBhdGg6ICcvb3V0bGllci1kZXRlY3Rpb24vJyxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW3hyYXlNYW5hZ2VkUG9saWN5LCBjd01hbmFnZWRQb2xpY3ldLFxuICAgIH0pO1xuXG4gICAgbGV0IHNjaVB5TGF5ZXI6IElMYXllclZlcnNpb24gPSBuZXcgTGF5ZXJWZXJzaW9uKHRoaXMsICdTY2lQeUxheWVyJywge1xuICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ3NyYy9zY2lweS1sYXllci56aXAnKSksXG4gICAgICBjb21wYXRpYmxlQXJjaGl0ZWN0dXJlczogW0FyY2hpdGVjdHVyZS5BUk1fNjRdLFxuICAgICAgY29tcGF0aWJsZVJ1bnRpbWVzOiBbTWV0cmljc0hlbHBlci5QeXRob25SdW50aW1lXSxcbiAgICB9KTtcblxuICAgIGxldCBtb25pdG9yaW5nTGF5ZXI6IElMYXllclZlcnNpb24gPSBuZXcgTGF5ZXJWZXJzaW9uKFxuICAgICAgdGhpcyxcbiAgICAgICdNb25pdG9yaW5nTGF5ZXInLFxuICAgICAge1xuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChcbiAgICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vbW9uaXRvcmluZy9zcmMvbW9uaXRvcmluZy1sYXllci56aXAnKSxcbiAgICAgICAgKSxcbiAgICAgICAgY29tcGF0aWJsZUFyY2hpdGVjdHVyZXM6IFtBcmNoaXRlY3R1cmUuQVJNXzY0XSxcbiAgICAgICAgY29tcGF0aWJsZVJ1bnRpbWVzOiBbTWV0cmljc0hlbHBlci5QeXRob25SdW50aW1lXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy52cGMgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52cGMgIT0gbnVsbCkge1xuICAgICAgbGV0IHNnOiBJU2VjdXJpdHlHcm91cCA9IG5ldyBTZWN1cml0eUdyb3VwKFxuICAgICAgICB0aGlzLFxuICAgICAgICAnT3V0bGllckRldGVjdGlvblNlY3VyaXR5R3JvdXAnLFxuICAgICAgICB7XG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnQWxsb3cgb3V0bGllciBkZXRlY3Rpb24gZnVuY3Rpb24gdG8gY29tbXVuaWNhdGUgd2l0aCBDVycsXG4gICAgICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuZnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgJ091dGxpZXJEZXRlY3Rpb24nLCB7XG4gICAgICAgIHJ1bnRpbWU6IE1ldHJpY3NIZWxwZXIuUHl0aG9uUnVudGltZSxcbiAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ3NyYy9vdXRsaWVyLWRldGVjdGlvbi56aXAnKSksXG4gICAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgICAgcm9sZTogZXhlY3V0aW9uUm9sZSxcbiAgICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgICB0cmFjaW5nOiBUcmFjaW5nLkFDVElWRSxcbiAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyg1KSxcbiAgICAgICAgbWVtb3J5U2l6ZTogNTEyLFxuICAgICAgICBsYXllcnM6IFtzY2lQeUxheWVyLCBtb25pdG9yaW5nTGF5ZXJdLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIFJFR0lPTjogQXdzLlJFR0lPTixcbiAgICAgICAgICBQQVJUSVRJT046IEF3cy5QQVJUSVRJT04sXG4gICAgICAgIH0sXG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogW3NnXSxcbiAgICAgICAgdnBjU3VibmV0czogcHJvcHMuc3VibmV0U2VsZWN0aW9uLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgJ091dGxpZXJEZXRlY3Rpb24nLCB7XG4gICAgICAgIHJ1bnRpbWU6IE1ldHJpY3NIZWxwZXIuUHl0aG9uUnVudGltZSxcbiAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ3NyYy9vdXRsaWVyLWRldGVjdGlvbi56aXAnKSksXG4gICAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgICAgcm9sZTogZXhlY3V0aW9uUm9sZSxcbiAgICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgICB0cmFjaW5nOiBUcmFjaW5nLkFDVElWRSxcbiAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyg1KSxcbiAgICAgICAgbWVtb3J5U2l6ZTogNTEyLFxuICAgICAgICBsYXllcnM6IFtzY2lQeUxheWVyLCBtb25pdG9yaW5nTGF5ZXJdLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIFJFR0lPTjogQXdzLlJFR0lPTixcbiAgICAgICAgICBQQVJUSVRJT046IEF3cy5QQVJUSVRJT04sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBUYWdzLm9mKHRoaXMuZnVuY3Rpb24pLmFkZCgnY2xvdWR3YXRjaDpkYXRhc291cmNlJywgJ2N1c3RvbScsIHtcbiAgICAgIGluY2x1ZGVSZXNvdXJjZVR5cGVzOiBbJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbiddLFxuICAgIH0pO1xuXG4gICAgdGhpcy5mdW5jdGlvbi5hZGRQZXJtaXNzaW9uKCdpbnZva2VQZXJtaXNzaW9uJywge1xuICAgICAgYWN0aW9uOiAnbGFtYmRhOkludm9rZUZ1bmN0aW9uJyxcbiAgICAgIHByaW5jaXBhbDogbmV3IFNlcnZpY2VQcmluY2lwYWwoXG4gICAgICAgICdsYW1iZGEuZGF0YXNvdXJjZS5jbG91ZHdhdGNoLmFtYXpvbmF3cy5jb20nLFxuICAgICAgKSxcbiAgICAgIHNvdXJjZUFjY291bnQ6IEF3cy5BQ0NPVU5UX0lEXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvZ0dyb3VwID0gbmV3IExvZ0dyb3VwKHRoaXMsICdsb2dHcm91cCcsIHtcbiAgICAgIGxvZ0dyb3VwTmFtZTogYC9hd3MvbGFtYmRhLyR7dGhpcy5mdW5jdGlvbi5mdW5jdGlvbk5hbWV9YCxcbiAgICAgIHJldGVudGlvbjogUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9KTtcblxuICAgIG5ldyBNYW5hZ2VkUG9saWN5KHRoaXMsICdjd0xvZ3NNYW5hZ2VkUG9saWN5Jywge1xuICAgICAgcGF0aDogJy9vdXRsaWVyLWRldGVjdGlvbi8nLFxuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbJ2xvZ3M6Q3JlYXRlTG9nU3RyZWFtJywgJ2xvZ3M6UHV0TG9nRXZlbnRzJ10sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5sb2dHcm91cC5sb2dHcm91cEFybl0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICAgIHJvbGVzOiBbZXhlY3V0aW9uUm9sZV0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The options for calculating if a NAT Gateway is an outlier for packet loss
|
|
3
|
+
*/
|
|
4
|
+
export declare enum PacketLossOutlierAlgorithm {
|
|
5
|
+
/**
|
|
6
|
+
* This will take the availability threshold and calculate if one AZ is responsible
|
|
7
|
+
* for that percentage of packet loss.
|
|
8
|
+
*/
|
|
9
|
+
STATIC = "STATIC"
|
|
10
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PacketLossOutlierAlgorithm = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The options for calculating if a NAT Gateway is an outlier for packet loss
|
|
6
|
+
*/
|
|
7
|
+
var PacketLossOutlierAlgorithm;
|
|
8
|
+
(function (PacketLossOutlierAlgorithm) {
|
|
9
|
+
/**
|
|
10
|
+
* This will take the availability threshold and calculate if one AZ is responsible
|
|
11
|
+
* for that percentage of packet loss.
|
|
12
|
+
*/
|
|
13
|
+
PacketLossOutlierAlgorithm["STATIC"] = "STATIC";
|
|
14
|
+
})(PacketLossOutlierAlgorithm || (exports.PacketLossOutlierAlgorithm = PacketLossOutlierAlgorithm = {}));
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2V0TG9zc091dGxpZXJBbGdvcml0aG0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3V0bGllci1kZXRlY3Rpb24vUGFja2V0TG9zc091dGxpZXJBbGdvcml0aG0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxJQUFZLDBCQU1YO0FBTkQsV0FBWSwwQkFBMEI7SUFDbEM7OztPQUdHO0lBQ0gsK0NBQWlCLENBQUE7QUFDckIsQ0FBQyxFQU5XLDBCQUEwQiwwQ0FBMUIsMEJBQTBCLFFBTXJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgb3B0aW9ucyBmb3IgY2FsY3VsYXRpbmcgaWYgYSBOQVQgR2F0ZXdheSBpcyBhbiBvdXRsaWVyIGZvciBwYWNrZXQgbG9zc1xuICovXG5leHBvcnQgZW51bSBQYWNrZXRMb3NzT3V0bGllckFsZ29yaXRobSB7XG4gICAgLyoqXG4gICAgICogVGhpcyB3aWxsIHRha2UgdGhlIGF2YWlsYWJpbGl0eSB0aHJlc2hvbGQgYW5kIGNhbGN1bGF0ZSBpZiBvbmUgQVogaXMgcmVzcG9uc2libGVcbiAgICAgKiBmb3IgdGhhdCBwZXJjZW50YWdlIG9mIHBhY2tldCBsb3NzLlxuICAgICAqL1xuICAgIFNUQVRJQyA9IFwiU1RBVElDXCJcbn0iXX0=
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ICanaryMetrics } from './ICanaryMetrics';
|
|
2
|
-
import {
|
|
2
|
+
import { IOperationAvailabilityMetricDetails } from './IOperationAvailabilityMetricDetails';
|
|
3
|
+
import { IOperationLatencyMetricDetails } from './IOperationLatencyMetricDetails';
|
|
3
4
|
import { CanaryMetricProps } from './props/CanaryMetricProps';
|
|
4
5
|
/**
|
|
5
6
|
* Represents metrics for a canary testing a service
|
|
@@ -8,10 +9,10 @@ export declare class CanaryMetrics implements ICanaryMetrics {
|
|
|
8
9
|
/**
|
|
9
10
|
* The canary availability metric details
|
|
10
11
|
*/
|
|
11
|
-
readonly canaryAvailabilityMetricDetails:
|
|
12
|
+
readonly canaryAvailabilityMetricDetails: IOperationAvailabilityMetricDetails;
|
|
12
13
|
/**
|
|
13
14
|
* The canary latency metric details
|
|
14
15
|
*/
|
|
15
|
-
readonly canaryLatencyMetricDetails:
|
|
16
|
+
readonly canaryLatencyMetricDetails: IOperationLatencyMetricDetails;
|
|
16
17
|
constructor(props: CanaryMetricProps);
|
|
17
18
|
}
|