@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
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Duration } from "aws-cdk-lib";
|
|
2
|
+
import { CanaryTestMetricsOverrideProps } from "./CanaryTestMetricsOverrideProps";
|
|
3
|
+
/**
|
|
4
|
+
* Properties for canary metrics in an operation
|
|
5
|
+
*/
|
|
6
|
+
export interface CanaryTestLatencyMetricsOverrideProps extends CanaryTestMetricsOverrideProps {
|
|
7
|
+
/**
|
|
8
|
+
* The threshold for alarms associated with latency success metrics, for example if success
|
|
9
|
+
* latency exceeds 500 milliseconds
|
|
10
|
+
*
|
|
11
|
+
* @default - This property will use the default defined for the service
|
|
12
|
+
*/
|
|
13
|
+
readonly successAlarmThreshold?: Duration;
|
|
14
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGVQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9wcy9DYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZVByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZVByb3BzIH0gZnJvbSBcIi4vQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZVByb3BzXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY2FuYXJ5IG1ldHJpY3MgaW4gYW4gb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGVQcm9wcyBleHRlbmRzIENhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGVQcm9wcyB7XG4gICAgLyoqXG4gICAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBsYXRlbmN5IHN1Y2Nlc3MgbWV0cmljcywgZm9yIGV4YW1wbGUgaWYgc3VjY2Vzc1xuICAgICAqIGxhdGVuY3kgZXhjZWVkcyA1MDAgbWlsbGlzZWNvbmRzXG4gICAgICogXG4gICAgICogQGRlZmF1bHQgLSBUaGlzIHByb3BlcnR5IHdpbGwgdXNlIHRoZSBkZWZhdWx0IGRlZmluZWQgZm9yIHRoZSBzZXJ2aWNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3VjY2Vzc0FsYXJtVGhyZXNob2xkPzogRHVyYXRpb247XG59Il19
|
|
@@ -28,20 +28,4 @@ export interface CanaryTestMetricsOverrideProps {
|
|
|
28
28
|
* @default - This property will use the default defined for the service
|
|
29
29
|
*/
|
|
30
30
|
readonly datapointsToAlarm?: number;
|
|
31
|
-
/**
|
|
32
|
-
* The threshold for alarms associated with success metrics, for example if measuring
|
|
33
|
-
* success rate, the threshold may be 99, meaning you would want an alarm that triggers
|
|
34
|
-
* if success drops below 99%.
|
|
35
|
-
*
|
|
36
|
-
* @default - This property will use the default defined for the service
|
|
37
|
-
*/
|
|
38
|
-
readonly successAlarmThreshold?: number;
|
|
39
|
-
/**
|
|
40
|
-
* The threshold for alarms associated with fault metrics, for example if measuring
|
|
41
|
-
* fault rate, the threshold may be 1, meaning you would want an alarm that triggers
|
|
42
|
-
* if the fault rate goes above 1%.
|
|
43
|
-
*
|
|
44
|
-
* @default - This property will use the default defined for the service
|
|
45
|
-
*/
|
|
46
|
-
readonly faultAlarmThreshold?: number;
|
|
47
31
|
}
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZVByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3Byb3BzL0NhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGVQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGFuIG92ZXJyaWRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWMgdXNlZCBmb3IgYWxhcm1zLCBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MgdGhpcyBzaG91bGRcbiAgICogYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCBjb3VsZCBzb21ldGhpbmcgbGlrZSBcInA5OVwiIG9yIFwicDk5LjlcIlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgcHJvcGVydHkgd2lsbCB1c2UgdGhlIGRlZmF1bHQgZGVmaW5lZCBmb3IgdGhlIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtU3RhdGlzdGljPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIGZvciB0aGUgbWV0cmljc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgcHJvcGVydHkgd2lsbCB1c2UgdGhlIGRlZmF1bHQgZGVmaW5lZCBmb3IgdGhlIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGV2YWx1YXRpb24gcGVyaW9kcyBmb3IgbGF0ZW5jeSBhbmQgYXZhaWxhYmlsdGl5IGFsYXJtc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgcHJvcGVydHkgd2lsbCB1c2UgdGhlIGRlZmF1bHQgZGVmaW5lZCBmb3IgdGhlIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgdG8gYWxhcm0gb24gZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbGl0eSBhbGFybXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGlzIHByb3BlcnR5IHdpbGwgdXNlIHRoZSBkZWZhdWx0IGRlZmluZWQgZm9yIHRoZSBzZXJ2aWNlXG4gICAqL1xuICByZWFkb25seSBkYXRhcG9pbnRzVG9BbGFybT86IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Duration } from 'aws-cdk-lib';
|
|
2
2
|
import { OutlierDetectionAlgorithm } from '../../utilities/OutlierDetectionAlgorithm';
|
|
3
3
|
import { IService } from '../IService';
|
|
4
|
+
import { LatencyOutlierMetricAggregation } from '../../outlier-detection/LatencyOutlierMetricAggregation';
|
|
4
5
|
/**
|
|
5
6
|
* The properties for adding alarms and dashboards
|
|
6
7
|
* for an instrumented service.
|
|
@@ -19,7 +20,7 @@ export interface InstrumentedServiceMultiAZObservabilityProps {
|
|
|
19
20
|
readonly createDashboards?: boolean;
|
|
20
21
|
/**
|
|
21
22
|
* The outlier threshold for determining if an AZ is an
|
|
22
|
-
* outlier for
|
|
23
|
+
* outlier for faults. This number is interpreted
|
|
23
24
|
* differently for different outlier algorithms. When used with
|
|
24
25
|
* STATIC, the number should be between 0 and 1 to represent the
|
|
25
26
|
* percentage of errors (like .7) that an AZ must be responsible
|
|
@@ -33,17 +34,61 @@ export interface InstrumentedServiceMultiAZObservabilityProps {
|
|
|
33
34
|
* Standard defaults based on the outlier detection algorithm:
|
|
34
35
|
* STATIC: 0.7
|
|
35
36
|
* CHI_SQUARED: 0.05
|
|
36
|
-
* Z_SCORE:
|
|
37
|
+
* Z_SCORE: 3
|
|
37
38
|
* IQR: 1.5
|
|
38
39
|
* MAD: 3
|
|
39
40
|
*
|
|
40
41
|
* @default - Depends on the outlier detection algorithm selected
|
|
41
42
|
*/
|
|
42
|
-
readonly
|
|
43
|
+
readonly availabilityOutlierThreshold?: number;
|
|
43
44
|
/**
|
|
44
|
-
* The algorithm to use for performing outlier detection
|
|
45
|
+
* The algorithm to use for performing outlier detection for availability metrics
|
|
46
|
+
*
|
|
47
|
+
* ** Currently only STATIC is supported **
|
|
48
|
+
*
|
|
49
|
+
* @default OutlierDetectionAlgorithm.STATIC
|
|
50
|
+
*/
|
|
51
|
+
readonly availabilityOutlierDetectionAlgorithm?: OutlierDetectionAlgorithm;
|
|
52
|
+
/**
|
|
53
|
+
* The outlier threshold for determining if an AZ is an
|
|
54
|
+
* outlier for latency. This number is interpreted
|
|
55
|
+
* differently for different outlier algorithms. When used with
|
|
56
|
+
* STATIC, the number should be between 0 and 1 to represent the
|
|
57
|
+
* percentage of errors (like .7) that an AZ must be responsible
|
|
58
|
+
* for to be considered an outlier. When used with CHI_SQUARED, it
|
|
59
|
+
* represents the p value that indicates statistical significance, like
|
|
60
|
+
* 0.05 which means the skew has less than or equal to a 5% chance of
|
|
61
|
+
* occuring. When used with Z_SCORE it indicates how many standard
|
|
62
|
+
* deviations to evaluate for an AZ being an outlier, typically 3 is
|
|
63
|
+
* standard for Z_SCORE.
|
|
64
|
+
*
|
|
65
|
+
* Standard defaults based on the outlier detection algorithm:
|
|
66
|
+
* STATIC: 0.7
|
|
67
|
+
* CHI_SQUARED: 0.05
|
|
68
|
+
* Z_SCORE: 3
|
|
69
|
+
* IQR: 1.5
|
|
70
|
+
* MAD: 3
|
|
71
|
+
*
|
|
72
|
+
* @default - Depends on the outlier detection algorithm selected
|
|
73
|
+
*/
|
|
74
|
+
readonly latencyOutlierThreshold?: number;
|
|
75
|
+
/**
|
|
76
|
+
* The algorithm to use for performing outlier detection for latency metrics
|
|
77
|
+
*
|
|
78
|
+
* ** Currently only STATIC is supported **
|
|
79
|
+
*
|
|
80
|
+
* @default OutlierDetectionAlgorithm.STATIC
|
|
81
|
+
*/
|
|
82
|
+
readonly latencyOutlierDetectionAlgorithm?: OutlierDetectionAlgorithm;
|
|
83
|
+
/**
|
|
84
|
+
* The metric for latency to use in outlier detection, which means whether
|
|
85
|
+
* the algorithm uses a count of requests exceeding your latency threshold or
|
|
86
|
+
* whether it uses the actual latency values at your latency alarm threshold
|
|
87
|
+
* statistic.
|
|
88
|
+
*
|
|
89
|
+
* @default LatencyOutlierMetric.COUNT
|
|
45
90
|
*/
|
|
46
|
-
readonly
|
|
91
|
+
readonly latencyOutlierMetricAggregation?: LatencyOutlierMetricAggregation;
|
|
47
92
|
/**
|
|
48
93
|
* The interval used in the dashboard, defaults to
|
|
49
94
|
* 60 minutes.
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcHJvcHMvSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9PdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtJztcbmltcG9ydCB7IElTZXJ2aWNlIH0gZnJvbSAnLi4vSVNlcnZpY2UnO1xuaW1wb3J0IHsgTGF0ZW5jeU91dGxpZXJNZXRyaWNBZ2dyZWdhdGlvbiB9IGZyb20gJy4uLy4uL291dGxpZXItZGV0ZWN0aW9uL0xhdGVuY3lPdXRsaWVyTWV0cmljQWdncmVnYXRpb24nO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIGZvciBhZGRpbmcgYWxhcm1zIGFuZCBkYXNoYm9hcmRzXG4gKiBmb3IgYW4gaW5zdHJ1bWVudGVkIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhhdCB0aGUgYWxhcm1zIGFuZCBkYXNoYm9hcmRzIGFyZSBiZWluZyBjcmF0ZWQgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZTogSVNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGNyZWF0ZSBwZXIgb3BlcmF0aW9uIGFuZCBvdmVyYWxsIHNlcnZpY2VcbiAgICogZGFzaGJvYXJkcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkYXNoYm9hcmRzIGFyZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVEYXNoYm9hcmRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG91dGxpZXIgdGhyZXNob2xkIGZvciBkZXRlcm1pbmluZyBpZiBhbiBBWiBpcyBhblxuICAgKiBvdXRsaWVyIGZvciBmYXVsdHMuIFRoaXMgbnVtYmVyIGlzIGludGVycHJldGVkXG4gICAqIGRpZmZlcmVudGx5IGZvciBkaWZmZXJlbnQgb3V0bGllciBhbGdvcml0aG1zLiBXaGVuIHVzZWQgd2l0aFxuICAgKiBTVEFUSUMsIHRoZSBudW1iZXIgc2hvdWxkIGJlIGJldHdlZW4gMCBhbmQgMSB0byByZXByZXNlbnQgdGhlXG4gICAqIHBlcmNlbnRhZ2Ugb2YgZXJyb3JzIChsaWtlIC43KSB0aGF0IGFuIEFaIG11c3QgYmUgcmVzcG9uc2libGVcbiAgICogZm9yIHRvIGJlIGNvbnNpZGVyZWQgYW4gb3V0bGllci4gV2hlbiB1c2VkIHdpdGggQ0hJX1NRVUFSRUQsIGl0XG4gICAqIHJlcHJlc2VudHMgdGhlIHAgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgc3RhdGlzdGljYWwgc2lnbmlmaWNhbmNlLCBsaWtlXG4gICAqIDAuMDUgd2hpY2ggbWVhbnMgdGhlIHNrZXcgaGFzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBhIDUlIGNoYW5jZSBvZlxuICAgKiBvY2N1cmluZy4gV2hlbiB1c2VkIHdpdGggWl9TQ09SRSBpdCBpbmRpY2F0ZXMgaG93IG1hbnkgc3RhbmRhcmRcbiAgICogZGV2aWF0aW9ucyB0byBldmFsdWF0ZSBmb3IgYW4gQVogYmVpbmcgYW4gb3V0bGllciwgdHlwaWNhbGx5IDMgaXNcbiAgICogc3RhbmRhcmQgZm9yIFpfU0NPUkUuXG4gICAqXG4gICAqIFN0YW5kYXJkIGRlZmF1bHRzIGJhc2VkIG9uIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBhbGdvcml0aG06XG4gICAqIFNUQVRJQzogMC43XG4gICAqIENISV9TUVVBUkVEOiAwLjA1XG4gICAqIFpfU0NPUkU6IDNcbiAgICogSVFSOiAxLjVcbiAgICogTUFEOiAzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVwZW5kcyBvbiB0aGUgb3V0bGllciBkZXRlY3Rpb24gYWxnb3JpdGhtIHNlbGVjdGVkXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxnb3JpdGhtIHRvIHVzZSBmb3IgcGVyZm9ybWluZyBvdXRsaWVyIGRldGVjdGlvbiBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3NcbiAgICogXG4gICAqICoqIEN1cnJlbnRseSBvbmx5IFNUQVRJQyBpcyBzdXBwb3J0ZWQgKipcbiAgICogXG4gICAqIEBkZWZhdWx0IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtPzogT3V0bGllckRldGVjdGlvbkFsZ29yaXRobTtcblxuICAvKipcbiAgICogVGhlIG91dGxpZXIgdGhyZXNob2xkIGZvciBkZXRlcm1pbmluZyBpZiBhbiBBWiBpcyBhblxuICAgKiBvdXRsaWVyIGZvciBsYXRlbmN5LiBUaGlzIG51bWJlciBpcyBpbnRlcnByZXRlZFxuICAgKiBkaWZmZXJlbnRseSBmb3IgZGlmZmVyZW50IG91dGxpZXIgYWxnb3JpdGhtcy4gV2hlbiB1c2VkIHdpdGhcbiAgICogU1RBVElDLCB0aGUgbnVtYmVyIHNob3VsZCBiZSBiZXR3ZWVuIDAgYW5kIDEgdG8gcmVwcmVzZW50IHRoZVxuICAgKiBwZXJjZW50YWdlIG9mIGVycm9ycyAobGlrZSAuNykgdGhhdCBhbiBBWiBtdXN0IGJlIHJlc3BvbnNpYmxlXG4gICAqIGZvciB0byBiZSBjb25zaWRlcmVkIGFuIG91dGxpZXIuIFdoZW4gdXNlZCB3aXRoIENISV9TUVVBUkVELCBpdFxuICAgKiByZXByZXNlbnRzIHRoZSBwIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHN0YXRpc3RpY2FsIHNpZ25pZmljYW5jZSwgbGlrZVxuICAgKiAwLjA1IHdoaWNoIG1lYW5zIHRoZSBza2V3IGhhcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYSA1JSBjaGFuY2Ugb2ZcbiAgICogb2NjdXJpbmcuIFdoZW4gdXNlZCB3aXRoIFpfU0NPUkUgaXQgaW5kaWNhdGVzIGhvdyBtYW55IHN0YW5kYXJkXG4gICAqIGRldmlhdGlvbnMgdG8gZXZhbHVhdGUgZm9yIGFuIEFaIGJlaW5nIGFuIG91dGxpZXIsIHR5cGljYWxseSAzIGlzXG4gICAqIHN0YW5kYXJkIGZvciBaX1NDT1JFLlxuICAgKlxuICAgKiBTdGFuZGFyZCBkZWZhdWx0cyBiYXNlZCBvbiB0aGUgb3V0bGllciBkZXRlY3Rpb24gYWxnb3JpdGhtOlxuICAgKiBTVEFUSUM6IDAuN1xuICAgKiBDSElfU1FVQVJFRDogMC4wNVxuICAgKiBaX1NDT1JFOiAzXG4gICAqIElRUjogMS41XG4gICAqIE1BRDogM1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlcGVuZHMgb24gdGhlIG91dGxpZXIgZGV0ZWN0aW9uIGFsZ29yaXRobSBzZWxlY3RlZFxuICAgKi9cbiAgcmVhZG9ubHkgbGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGdvcml0aG0gdG8gdXNlIGZvciBwZXJmb3JtaW5nIG91dGxpZXIgZGV0ZWN0aW9uIGZvciBsYXRlbmN5IG1ldHJpY3NcbiAgICogXG4gICAqICoqIEN1cnJlbnRseSBvbmx5IFNUQVRJQyBpcyBzdXBwb3J0ZWQgKipcbiAgICogXG4gICAqIEBkZWZhdWx0IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDXG4gICAqL1xuICByZWFkb25seSBsYXRlbmN5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobT86IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG07XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRyaWMgZm9yIGxhdGVuY3kgdG8gdXNlIGluIG91dGxpZXIgZGV0ZWN0aW9uLCB3aGljaCBtZWFucyB3aGV0aGVyXG4gICAqIHRoZSBhbGdvcml0aG0gdXNlcyBhIGNvdW50IG9mIHJlcXVlc3RzIGV4Y2VlZGluZyB5b3VyIGxhdGVuY3kgdGhyZXNob2xkIG9yXG4gICAqIHdoZXRoZXIgaXQgdXNlcyB0aGUgYWN0dWFsIGxhdGVuY3kgdmFsdWVzIGF0IHlvdXIgbGF0ZW5jeSBhbGFybSB0aHJlc2hvbGRcbiAgICogc3RhdGlzdGljLlxuICAgKiBcbiAgICogQGRlZmF1bHQgTGF0ZW5jeU91dGxpZXJNZXRyaWMuQ09VTlRcbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lPdXRsaWVyTWV0cmljQWdncmVnYXRpb24/OiBMYXRlbmN5T3V0bGllck1ldHJpY0FnZ3JlZ2F0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgaW50ZXJ2YWwgdXNlZCBpbiB0aGUgZGFzaGJvYXJkLCBkZWZhdWx0cyB0b1xuICAgKiA2MCBtaW51dGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDYwIG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIElmIHlvdSBhcmUgbm90IHVzaW5nIGEgc3RhdGljIGJ1Y2tldCB0byBkZXBsb3kgYXNzZXRzLCBmb3IgZXhhbXBsZVxuICAgKiB5b3UgYXJlIHN5bnRoaW5nIHRoaXMgYW5kIGl0IGdldHMgdXBsb2FkZWQgdG8gYSBidWNrZXQgd2hvc2UgbmFtZVxuICAgKiBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IGxvY2F0aW9uIENESyBwcm92aWRlcyBieVxuICAgKiBkZWZhdWx0IGZvciBidW5kbGVkIGFzc2V0cy4gVGhlIHN0YWNrIGNvbnRhaW5pbmcgdGhpcyBjb250cnVjdCBuZWVkc1xuICAgKiB0byBoYXZlIGEgcGFyYW1ldGVyIGRlZmluZWQgdGhhdCB1c2VzIHRoaXMgbmFtZS4gVGhlIHVuZGVybHlpbmdcbiAgICogc3RhY2tzIGluIHRoaXMgY29uc3RydWN0IHRoYXQgZGVwbG95IGFzc2V0cyB3aWxsIGNvcHkgdGhlIHBhcmVudCBzdGFjaydzXG4gICAqIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBhc3NldHMgd2lsbCBiZSB1cGxvYWRlZCB0byB0aGUgZGVmYXVsdCBkZWZpbmVkXG4gICAqIGFzc2V0IGxvY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRzQnVja2V0UGFyYW1ldGVyTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgeW91IGFyZSBub3QgdXNpbmcgYSBzdGF0aWMgYnVja2V0IHRvIGRlcGxveSBhc3NldHMsIGZvciBleGFtcGxlXG4gICAqIHlvdSBhcmUgc3ludGhpbmcgdGhpcyBhbmQgaXQgZ2V0cyB1cGxvYWRlZCB0byBhIGJ1Y2tldCB0aGF0IHVzZXMgYSBwcmVmaXhcbiAgICogdGhhdCBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IHByZWZpeCBDREsgcHJvdmlkZXMgYnlcbiAgICogZGVmYXVsdCBmb3IgYnVuZGxlZCBhc3NldHMuIFRoaXMgcHJvcGVydHkgb25seSB0YWtlcyBlZmZlY3QgaWYgeW91XG4gICAqIGRlZmluZWQgdGhlIGFzc2V0c0J1Y2tldFBhcmFtZXRlck5hbWUuIFRoZSBzdGFjayBjb250YWluaW5nIHRoaXMgY29udHJ1Y3QgbmVlZHNcbiAgICogdG8gaGF2ZSBhIHBhcmFtZXRlciBkZWZpbmVkIHRoYXQgdXNlcyB0aGlzIG5hbWUuIFRoZSB1bmRlcmx5aW5nXG4gICAqIHN0YWNrcyBpbiB0aGlzIGNvbnN0cnVjdCB0aGF0IGRlcGxveSBhc3NldHMgd2lsbCBjb3B5IHRoZSBwYXJlbnQgc3RhY2snc1xuICAgKiB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBvYmplY3QgcHJlZml4IHdpbGwgYmUgYWRkZWQgdG8geW91ciBjdXN0b20gYXNzZXRzIGxvY2F0aW9uLlxuICAgKiBIb3dldmVyLCBpZiB5b3UgaGF2ZSBvdmVycmlkZGVuIHNvbWV0aGluZyBsaWtlIHRoZSAnQnVja2V0UHJlZml4JyBwcm9wZXJ0eVxuICAgKiBpbiB5b3VyIHN0YWNrIHN5bnRoZXNpemVyIHdpdGggYSB2YXJpYWJsZSBsaWtlIFwiJHtBc3NldHNCdWNrZXRQcmVmaXhcIixcbiAgICogeW91IHdpbGwgbmVlZCB0byBkZWZpbmUgdGhpcyBwcm9wZXJ0eSBzbyBpdCBkb2Vzbid0IGNhdXNlIGEgcmVmZXJlbmNlIGVycm9yXG4gICAqIGV2ZW4gaWYgdGhlIHByZWZpeCB2YWx1ZSBpcyBibGFuay5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWU/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -59,5 +59,5 @@ class MetricDimensions {
|
|
|
59
59
|
}
|
|
60
60
|
exports.MetricDimensions = MetricDimensions;
|
|
61
61
|
_a = JSII_RTTI_SYMBOL_1;
|
|
62
|
-
MetricDimensions[_a] = { fqn: "@cdklabs/multi-az-observability.MetricDimensions", version: "0.0.1-alpha.
|
|
62
|
+
MetricDimensions[_a] = { fqn: "@cdklabs/multi-az-observability.MetricDimensions", version: "0.0.1-alpha.60" };
|
|
63
63
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljRGltZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9wcy9NZXRyaWNEaW1lbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUV0Qzs7O0dBR0c7QUFDSCxNQUFhLGdCQUFnQjtJQXdCM0IsWUFDRSxnQkFBMkMsRUFDM0MscUJBQTZCLEVBQzdCLFNBQWtCO1FBRWxCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILGVBQWUsQ0FDYixrQkFBMEIsRUFDMUIsTUFBYztRQUVkLElBQUksR0FBRyxHQUE4QixFQUFFLENBQUM7UUFDeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDMUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO1FBRXJELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUMvQixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILGtCQUFrQixDQUFDLE1BQWM7UUFDL0IsSUFBSSxHQUFHLEdBQThCLEVBQUUsQ0FBQztRQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUUxQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDL0IsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7QUFsRkgsNENBbUZDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGdldCBvcGVyYXRpb24gc3BlY2lmaWMgbWV0cmljIGRpbWVuc2lvbnNcbiAqIGZvciBtZXRyaWNzIGF0IHRoZSByZWdpb25hbCBsZXZlbCBhcyB3ZWxsIGFzIEF2YWlsYWJpbGl0eSBab25lIGxldmVsXG4gKi9cbmV4cG9ydCBjbGFzcyBNZXRyaWNEaW1lbnNpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBkaW1lbnNpb25zIHRoYXQgYXJlIHRoZSBzYW1lIGZvciBhbGwgQXZhaWxhYmlsaXR5IFpvbmVzIGZvciBleGFtcGxlOlxuICAgKiB7XG4gICAqICAgXCJPcGVyYXRpb25cIjogXCJyaWRlXCIsXG4gICAqICAgXCJTZXJ2aWNlXCI6IFwiV2lsZFJ5ZGVzXCJcbiAgICogfVxuICAgKi9cbiAgc3RhdGljRGltZW5zaW9uczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIGtleSB1c2VkIHRvIHNwZWNpZnkgYW4gQXZhaWxhYmlsaXR5IFpvbmUgc3BlY2lmaWMgbWV0cmljIGRpbWVuc2lvbiwgZm9yXG4gICAqIGV4YW1wbGU6IFwiQVotSURcIlxuICAgKi9cbiAgYXZhaWxhYmlsaXR5Wm9uZUlkS2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBrZXkgdXNlZCBmb3IgdGhlIFJlZ2lvbiBpbiB5b3VyIGRpbWVuc2lvbnMsIGlmIHlvdSBwcm92aWRlIG9uZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIHJlZ2lvbiBzcGVjaWZpYyBrZXkgYW5kIHZhbHVlIGlzIG5vdCBhZGRlZCB0byB5b3VyXG4gICAqIHpvbmFsIGFuZCByZWdpb25hbCBtZXRyaWMgZGltZW5zaW9uc1xuICAgKi9cbiAgcmVnaW9uS2V5Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXRpY0RpbWVuc2lvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgYXZhaWxhYmlsaXR5Wm9uZUlkS2V5OiBzdHJpbmcsXG4gICAgcmVnaW9uS2V5Pzogc3RyaW5nLFxuICApIHtcbiAgICB0aGlzLnN0YXRpY0RpbWVuc2lvbnMgPSBzdGF0aWNEaW1lbnNpb25zO1xuICAgIHRoaXMuYXZhaWxhYmlsaXR5Wm9uZUlkS2V5ID0gYXZhaWxhYmlsaXR5Wm9uZUlkS2V5O1xuICAgIHRoaXMucmVnaW9uS2V5ID0gcmVnaW9uS2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHpvbmFsIGRpbWVuc2lvbnMgZm9yIHRoZXNlIG1ldHJpY3MgYnkgY29tYmluaW5nIHRoZSBzdGF0aWNcbiAgICogbWV0cmljIGRpbWVuc2lvbnMgd2l0aCB0aGUga2V5cyBwcm92aWRlZCBmb3IgQXZhaWxhYmlsaXR5IFpvbmUgYW5kXG4gICAqIG9wdGlvbmFsIFJlZ2lvbiwgZXhwZWN0ZWQgdG8gcmV0dXJuIHNvbWV0aGluZyBsaWtlXG4gICAqIHtcbiAgICogICBcIlJlZ2lvblwiOiBcInVzLWVhc3QtMVwiLFxuICAgKiAgIFwiQVotSURcIjogXCJ1c2UxLWF6MVwiLFxuICAgKiAgIFwiT3BlcmF0aW9uXCI6IFwicmlkZVwiLFxuICAgKiAgIFwiU2VydmljZVwiOiBcIldpbGRSeWRlc1wiXG4gICAqIH1cbiAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmVJZFxuICAgKiBAcGFyYW0gcmVnaW9uXG4gICAqL1xuICB6b25hbERpbWVuc2lvbnMoXG4gICAgYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGxldCB0bXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBPYmplY3QuYXNzaWduKHRtcCwgdGhpcy5zdGF0aWNEaW1lbnNpb25zKTtcbiAgICB0bXBbdGhpcy5hdmFpbGFiaWxpdHlab25lSWRLZXldID0gYXZhaWxhYmlsaXR5Wm9uZUlkO1xuXG4gICAgaWYgKHRoaXMucmVnaW9uS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRtcFt0aGlzLnJlZ2lvbktleV0gPSByZWdpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHRtcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSByZWdpb25hbCBkaW1lbnNpb25zIGZvciB0aGVzZSBtZXRyaWNzIGJ5IGNvbWJpbmluZyB0aGUgc3RhdGljXG4gICAqIG1ldHJpYyBkaW1lbnNpb25zIHdpdGggdGhlIGtleXMgcHJvdmlkZWQgdGhlIG9wdGlvbmFsIFJlZ2lvbiBrZXksXG4gICAqIGV4cGVjdGVkIHRvIHJldHVybiBzb21ldGhpbmcgbGlrZVxuICAgKiB7XG4gICAqICAgXCJSZWdpb25cIjogXCJ1cy1lYXN0LTFcIixcbiAgICogICBcIk9wZXJhdGlvblwiOiBcInJpZGVcIixcbiAgICogICBcIlNlcnZpY2VcIjogXCJXaWxkUnlkZXNcIlxuICAgKiB9XG4gICAqIEBwYXJhbSByZWdpb25cbiAgICovXG4gIHJlZ2lvbmFsRGltZW5zaW9ucyhyZWdpb246IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGxldCB0bXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBPYmplY3QuYXNzaWduKHRtcCwgdGhpcy5zdGF0aWNEaW1lbnNpb25zKTtcblxuICAgIGlmICh0aGlzLnJlZ2lvbktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0bXBbdGhpcy5yZWdpb25LZXldID0gcmVnaW9uO1xuICAgIH1cblxuICAgIHJldHVybiB0bXA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { OperationMetricDetailsProps } from "./OperationMetricDetailsProps";
|
|
2
|
+
/**
|
|
3
|
+
* The properties for an operation's availability metric details
|
|
4
|
+
*/
|
|
5
|
+
export interface OperationAvailabilityMetricDetailsProps extends OperationMetricDetailsProps {
|
|
6
|
+
/**
|
|
7
|
+
* The threshold for alarms associated with availability success metrics, for example if measuring
|
|
8
|
+
* success rate, the threshold may be 99, meaning you would want an alarm that triggers
|
|
9
|
+
* if success drops below 99%.
|
|
10
|
+
*
|
|
11
|
+
* @default - The service default is used
|
|
12
|
+
*/
|
|
13
|
+
readonly successAlarmThreshold?: number;
|
|
14
|
+
/**
|
|
15
|
+
* The threshold for alarms associated with availability fault metrics, for example if measuring
|
|
16
|
+
* fault rate, the threshold may be 1, meaning you would want an alarm that triggers
|
|
17
|
+
* if the fault rate goes above 1%.
|
|
18
|
+
*
|
|
19
|
+
* @default - The service default is used
|
|
20
|
+
*/
|
|
21
|
+
readonly faultAlarmThreshold?: number;
|
|
22
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1Byb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3Byb3BzL09wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgT3BlcmF0aW9uTWV0cmljRGV0YWlsc1Byb3BzIH0gZnJvbSBcIi4vT3BlcmF0aW9uTWV0cmljRGV0YWlsc1Byb3BzXCI7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIGFuIG9wZXJhdGlvbidzIGF2YWlsYWJpbGl0eSBtZXRyaWMgZGV0YWlsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNQcm9wcyBleHRlbmRzIE9wZXJhdGlvbk1ldHJpY0RldGFpbHNQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgZm9yIGFsYXJtcyBhc3NvY2lhdGVkIHdpdGggYXZhaWxhYmlsaXR5IHN1Y2Nlc3MgbWV0cmljcywgZm9yIGV4YW1wbGUgaWYgbWVhc3VyaW5nXG4gICAqIHN1Y2Nlc3MgcmF0ZSwgdGhlIHRocmVzaG9sZCBtYXkgYmUgOTksIG1lYW5pbmcgeW91IHdvdWxkIHdhbnQgYW4gYWxhcm0gdGhhdCB0cmlnZ2Vyc1xuICAgKiBpZiBzdWNjZXNzIGRyb3BzIGJlbG93IDk5JS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NBbGFybVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBhdmFpbGFiaWxpdHkgZmF1bHQgbWV0cmljcywgZm9yIGV4YW1wbGUgaWYgbWVhc3VyaW5nXG4gICAqIGZhdWx0IHJhdGUsIHRoZSB0aHJlc2hvbGQgbWF5IGJlIDEsIG1lYW5pbmcgeW91IHdvdWxkIHdhbnQgYW4gYWxhcm0gdGhhdCB0cmlnZ2Vyc1xuICAgKiBpZiB0aGUgZmF1bHQgcmF0ZSBnb2VzIGFib3ZlIDElLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzZXJ2aWNlIGRlZmF1bHQgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgZmF1bHRBbGFybVRocmVzaG9sZD86IG51bWJlcjtcbn0iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Duration } from "aws-cdk-lib";
|
|
2
|
+
import { OperationMetricDetailsProps } from "./OperationMetricDetailsProps";
|
|
3
|
+
/**
|
|
4
|
+
* The properties for an operation's latency metric details
|
|
5
|
+
*/
|
|
6
|
+
export interface OperationLatencyMetricDetailsProps extends OperationMetricDetailsProps {
|
|
7
|
+
/**
|
|
8
|
+
* The threshold for alarms associated with latency success metrics, for example if success
|
|
9
|
+
* latency exceeds 500 milliseconds
|
|
10
|
+
*
|
|
11
|
+
* @default "The service default is used"
|
|
12
|
+
*/
|
|
13
|
+
readonly successAlarmThreshold?: Duration;
|
|
14
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHNQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9wcy9PcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlsc1Byb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgT3BlcmF0aW9uTWV0cmljRGV0YWlsc1Byb3BzIH0gZnJvbSBcIi4vT3BlcmF0aW9uTWV0cmljRGV0YWlsc1Byb3BzXCI7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIGFuIG9wZXJhdGlvbidzIGxhdGVuY3kgbWV0cmljIGRldGFpbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlsc1Byb3BzIGV4dGVuZHMgT3BlcmF0aW9uTWV0cmljRGV0YWlsc1Byb3BzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGhyZXNob2xkIGZvciBhbGFybXMgYXNzb2NpYXRlZCB3aXRoIGxhdGVuY3kgc3VjY2VzcyBtZXRyaWNzLCBmb3IgZXhhbXBsZSBpZiBzdWNjZXNzXG4gICAgICogbGF0ZW5jeSBleGNlZWRzIDUwMCBtaWxsaXNlY29uZHNcbiAgICAgKiBcbiAgICAgKiBAZGVmYXVsdCBcIlRoZSBzZXJ2aWNlIGRlZmF1bHQgaXMgdXNlZFwiXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3VjY2Vzc0FsYXJtVGhyZXNob2xkPzogRHVyYXRpb247XG59Il19
|
|
@@ -74,22 +74,6 @@ export interface OperationMetricDetailsProps {
|
|
|
74
74
|
* @default - The service default is used
|
|
75
75
|
*/
|
|
76
76
|
readonly datapointsToAlarm?: number;
|
|
77
|
-
/**
|
|
78
|
-
* The threshold for alarms associated with success metrics, for example if measuring
|
|
79
|
-
* success rate, the threshold may be 99, meaning you would want an alarm that triggers
|
|
80
|
-
* if success drops below 99%.
|
|
81
|
-
*
|
|
82
|
-
* @default - The service default is used
|
|
83
|
-
*/
|
|
84
|
-
readonly successAlarmThreshold?: number;
|
|
85
|
-
/**
|
|
86
|
-
* The threshold for alarms associated with fault metrics, for example if measuring
|
|
87
|
-
* fault rate, the threshold may be 1, meaning you would want an alarm that triggers
|
|
88
|
-
* if the fault rate goes above 1%.
|
|
89
|
-
*
|
|
90
|
-
* @default - The service default is used
|
|
91
|
-
*/
|
|
92
|
-
readonly faultAlarmThreshold?: number;
|
|
93
77
|
/**
|
|
94
78
|
* The user implemented functions for providing the metric's dimensions
|
|
95
79
|
*/
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uTWV0cmljRGV0YWlsc1Byb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3Byb3BzL09wZXJhdGlvbk1ldHJpY0RldGFpbHNQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBVbml0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgTWV0cmljRGltZW5zaW9ucyB9IGZyb20gJy4vTWV0cmljRGltZW5zaW9ucyc7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIG9wZXJhdGlvbiBtZXRyaWMgZGV0YWlsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhdGlvbk1ldHJpY0RldGFpbHNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIHRoZXNlIG1ldHJpYyBkZXRhaWxzIGFyZSBmb3JcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIENsb3VkV2F0Y2ggbWV0cmljIG5hbWVzcGFjZSBmb3IgdGhlc2UgbWV0cmljc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzZXJ2aWNlIGRlZmF1bHQgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljTmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgb2Ygc3VjY2VzcyBpbmRpY2F0aW5nIG1ldHJpY3NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NNZXRyaWNOYW1lcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgb2YgZmF1bHQgaW5kaWNhdGluZyBtZXRyaWNzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHNlcnZpY2UgZGVmYXVsdCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBmYXVsdE1ldHJpY05hbWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWMgdXNlZCBmb3IgYWxhcm1zLCBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MgdGhpcyBzaG91bGRcbiAgICogYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCBjb3VsZCBzb21ldGhpbmcgbGlrZSBcInA5OVwiIG9yIFwicDk5LjlcIlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzZXJ2aWNlIGRlZmF1bHQgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1TdGF0aXN0aWM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWNzIGZvciBzdWNjZXNzZXMgeW91IHdhbnQgdG8gYXBwZWFyIG9uIGRhc2hib2FyZHMsIGZvciBleGFtcGxlLCB3aXRoXG4gICAqIGxhdGVuY3kgbWV0cmljcywgeW91IG1pZ2h0IHdhbnQgcDUwLCBwOTksIGFuZCB0bTk5LiBGb3IgYXZhaWxhYmlsaXR5XG4gICAqIG1ldHJpY3MgdGhpcyB3aWxsIHR5cGljYWxseSBqdXN0IGJlIFwiU3VtXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHNlcnZpY2UgZGVmYXVsdCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHN0YXRpc3RpY3MgZm9yIGZhdWx0cyB5b3Ugd2FudCB0byBhcHBlYXIgb24gZGFzaGJvYXJkcywgZm9yIGV4YW1wbGUsIHdpdGhcbiAgICogbGF0ZW5jeSBtZXRyaWNzLCB5b3UgbWlnaHQgd2FudCBwNTAsIHA5OSwgYW5kIHRtOTkuIEZvciBhdmFpbGFiaWxpdHlcbiAgICogbWV0cmljcyB0aGlzIHdpbGwgdHlwaWNhbGx5IGp1c3QgYmUgXCJTdW1cIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGdyYXBoZWRGYXVsdFN0YXRpc3RpY3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHVuaXQgdXNlZCBmb3IgdGhlc2UgbWV0cmljc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzZXJ2aWNlIGRlZmF1bHQgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgdW5pdD86IFVuaXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJpb2QgZm9yIHRoZSBtZXRyaWNzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHNlcnZpY2UgZGVmYXVsdCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uTWV0cmljRGV0YWlsc1Byb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3Byb3BzL09wZXJhdGlvbk1ldHJpY0RldGFpbHNQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBVbml0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgTWV0cmljRGltZW5zaW9ucyB9IGZyb20gJy4vTWV0cmljRGltZW5zaW9ucyc7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIG9wZXJhdGlvbiBtZXRyaWMgZGV0YWlsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhdGlvbk1ldHJpY0RldGFpbHNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIHRoZXNlIG1ldHJpYyBkZXRhaWxzIGFyZSBmb3JcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIENsb3VkV2F0Y2ggbWV0cmljIG5hbWVzcGFjZSBmb3IgdGhlc2UgbWV0cmljc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzZXJ2aWNlIGRlZmF1bHQgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljTmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgb2Ygc3VjY2VzcyBpbmRpY2F0aW5nIG1ldHJpY3NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NNZXRyaWNOYW1lcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgb2YgZmF1bHQgaW5kaWNhdGluZyBtZXRyaWNzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHNlcnZpY2UgZGVmYXVsdCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBmYXVsdE1ldHJpY05hbWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWMgdXNlZCBmb3IgYWxhcm1zLCBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MgdGhpcyBzaG91bGRcbiAgICogYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCBjb3VsZCBzb21ldGhpbmcgbGlrZSBcInA5OVwiIG9yIFwicDk5LjlcIlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzZXJ2aWNlIGRlZmF1bHQgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1TdGF0aXN0aWM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWNzIGZvciBzdWNjZXNzZXMgeW91IHdhbnQgdG8gYXBwZWFyIG9uIGRhc2hib2FyZHMsIGZvciBleGFtcGxlLCB3aXRoXG4gICAqIGxhdGVuY3kgbWV0cmljcywgeW91IG1pZ2h0IHdhbnQgcDUwLCBwOTksIGFuZCB0bTk5LiBGb3IgYXZhaWxhYmlsaXR5XG4gICAqIG1ldHJpY3MgdGhpcyB3aWxsIHR5cGljYWxseSBqdXN0IGJlIFwiU3VtXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHNlcnZpY2UgZGVmYXVsdCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHN0YXRpc3RpY3MgZm9yIGZhdWx0cyB5b3Ugd2FudCB0byBhcHBlYXIgb24gZGFzaGJvYXJkcywgZm9yIGV4YW1wbGUsIHdpdGhcbiAgICogbGF0ZW5jeSBtZXRyaWNzLCB5b3UgbWlnaHQgd2FudCBwNTAsIHA5OSwgYW5kIHRtOTkuIEZvciBhdmFpbGFiaWxpdHlcbiAgICogbWV0cmljcyB0aGlzIHdpbGwgdHlwaWNhbGx5IGp1c3QgYmUgXCJTdW1cIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGdyYXBoZWRGYXVsdFN0YXRpc3RpY3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHVuaXQgdXNlZCBmb3IgdGhlc2UgbWV0cmljc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzZXJ2aWNlIGRlZmF1bHQgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgdW5pdD86IFVuaXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJpb2QgZm9yIHRoZSBtZXRyaWNzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHNlcnZpY2UgZGVmYXVsdCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBldmFsdWF0aW9uIHBlcmlvZHMgZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbHRpeSBhbGFybXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgdG8gYWxhcm0gb24gZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbGl0eSBhbGFybXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFwb2ludHNUb0FsYXJtPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdXNlciBpbXBsZW1lbnRlZCBmdW5jdGlvbnMgZm9yIHByb3ZpZGluZyB0aGUgbWV0cmljJ3MgZGltZW5zaW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljRGltZW5zaW9uczogTWV0cmljRGltZW5zaW9ucztcbn1cbiJdfQ==
|
|
@@ -2,7 +2,8 @@ import { AddCanaryTestProps } from '../../canaries/props/AddCanaryTestProps';
|
|
|
2
2
|
import { ICanaryMetrics } from '../ICanaryMetrics';
|
|
3
3
|
import { ICanaryTestMetricsOverride } from '../ICanaryTestMetricsOverride';
|
|
4
4
|
import { IContributorInsightRuleDetails } from '../IContributorInsightRuleDetails';
|
|
5
|
-
import {
|
|
5
|
+
import { IOperationAvailabilityMetricDetails } from '../IOperationAvailabilityMetricDetails';
|
|
6
|
+
import { IOperationLatencyMetricDetails } from '../IOperationLatencyMetricDetails';
|
|
6
7
|
import { IService } from '../IService';
|
|
7
8
|
/**
|
|
8
9
|
* Properties for an operation
|
|
@@ -24,11 +25,11 @@ export interface OperationProps {
|
|
|
24
25
|
/**
|
|
25
26
|
* The server side availability metric details
|
|
26
27
|
*/
|
|
27
|
-
readonly serverSideAvailabilityMetricDetails:
|
|
28
|
+
readonly serverSideAvailabilityMetricDetails: IOperationAvailabilityMetricDetails;
|
|
28
29
|
/**
|
|
29
30
|
* The server side latency metric details
|
|
30
31
|
*/
|
|
31
|
-
readonly serverSideLatencyMetricDetails:
|
|
32
|
+
readonly serverSideLatencyMetricDetails: IOperationLatencyMetricDetails;
|
|
32
33
|
/**
|
|
33
34
|
* Optional metric details if the service has a canary
|
|
34
35
|
*
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcHJvcHMvT3BlcmF0aW9uUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IEFkZENhbmFyeVRlc3RQcm9wcyB9IGZyb20gJy4uLy4uL2NhbmFyaWVzL3Byb3BzL0FkZENhbmFyeVRlc3RQcm9wcyc7XG5pbXBvcnQgeyBJQ2FuYXJ5TWV0cmljcyB9IGZyb20gJy4uL0lDYW5hcnlNZXRyaWNzJztcbmltcG9ydCB7IElDYW5hcnlUZXN0TWV0cmljc092ZXJyaWRlIH0gZnJvbSAnLi4vSUNhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGUnO1xuaW1wb3J0IHsgSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzIH0gZnJvbSAnLi4vSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzJztcbmltcG9ydCB7IElPcGVyYXRpb25BdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi4vSU9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbkxhdGVuY3lNZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi4vSU9wZXJhdGlvbkxhdGVuY3lNZXRyaWNEZXRhaWxzJztcbmltcG9ydCB7IElTZXJ2aWNlIH0gZnJvbSAnLi4vSVNlcnZpY2UnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIG9wZXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHRoZSBvcGVyYXRpb24gaXMgYXNzb2NpYXRlZCB3aXRoXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlOiBJU2VydmljZTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAgVGhlIEhUVFAgcGF0aCBmb3IgdGhlIG9wZXJhdGlvbiBmb3IgY2FuYXJpZXNcbiAgICogIHRvIHJ1biBhZ2FpbnN0LCBzb21ldGhpbmcgbGlrZSBcIi9wcm9kdWN0cy9saXN0XCJcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlcnZlciBzaWRlIGF2YWlsYWJpbGl0eSBtZXRyaWMgZGV0YWlsc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6IElPcGVyYXRpb25BdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgbGF0ZW5jeSBtZXRyaWMgZGV0YWlsc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZUxhdGVuY3lNZXRyaWNEZXRhaWxzOiBJT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG1ldHJpYyBkZXRhaWxzIGlmIHRoZSBzZXJ2aWNlIGhhcyBhIGNhbmFyeVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGFsYXJtcywgcnVsZXMsIG9yIGRhc2hib2FyZHMgd2lsbCBiZSBjcmVhdGVkXG4gICAqIGZyb20gY2FuYXJ5IG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeU1ldHJpY0RldGFpbHM/OiBJQ2FuYXJ5TWV0cmljcztcblxuICAvKipcbiAgICogVGhlIG92ZXJyaWRlIHZhbHVlcyBmb3IgYXV0b21hdGljYWxseSBjcmVhdGVkIGNhbmFyeSB0ZXN0cyBzbyB5b3UgY2FuXG4gICAqIHVzZSB2YWx1ZXMgb3RoZXIgdGhhbiB0aGUgc2VydmljZSBkZWZhdWx0cyB0byBkZWZpbmUgdGhlIHRocmVzaG9sZHMgZm9yXG4gICAqIGF2YWlsYWJpbGl0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhdmFpbGFiaWxpdHkgbWV0cmljIGRldGFpbHMgd2lsbCBiZSBvdmVycmlkZGVuIGFuZCB0aGVcbiAgICogc2VydmljZSBkZWZhdWx0cyB3aWxsIGJlIHVzZWQgZm9yIHRoZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgY2FuYXJpZXNcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGU/OiBJQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZTtcblxuICAvKipcbiAgICogVGhlIG92ZXJyaWRlIHZhbHVlcyBmb3IgYXV0b21hdGljYWxseSBjcmVhdGVkIGNhbmFyeSB0ZXN0cyBzbyB5b3UgY2FuXG4gICAqIHVzZSB2YWx1ZXMgb3RoZXIgdGhhbiB0aGUgc2VydmljZSBkZWZhdWx0cyB0byBkZWZpbmUgdGhlIHRocmVzaG9sZHMgZm9yXG4gICAqIGxhdGVuY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbGF0ZW5jeSBtZXRyaWMgZGV0YWlscyB3aWxsIGJlIG92ZXJyaWRkZW4gYW5kIHRoZVxuICAgKiBzZXJ2aWNlIGRlZmF1bHRzIHdpbGwgYmUgdXNlZCBmb3IgdGhlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBjYW5hcmllc1xuICAgKi9cbiAgcmVhZG9ubHkgY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGU/OiBJQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZTtcblxuICAvKipcbiAgICogVGhlIHNlcnZlciBzaWRlIGRldGFpbHMgZm9yIGNvbnRyaWJ1dG9yIGluc2lnaHRzIHJ1bGVzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIGRlZmF1bHQgc2VydmljZSBjb250cmlidXRvciBpbnNpZ2h0IHJ1bGVcbiAgICogZGV0YWlscyB3aWxsIGJlIHVzZWQuIElmIHRob3NlIGFyZSBub3QgZGVmaW5lZCBubyBDb250cmlidXRvciBJbnNpZ2h0XG4gICAqIHJ1bGVzIHdpbGwgYmUgY3JlYXRlZCBhbmQgdGhlIG51bWJlciBvZiBpbnN0YW5jZXMgY29udHJpYnV0aW5nIHRvIEFaXG4gICAqIGZhdWx0cyBvciBoaWdoIGxhdGVuY3kgd2lsbCBub3QgYmUgY29uc2lkZXJlZCwgc28gYSBzaW5nbGUgYmFkIGluc3RhbmNlXG4gICAqIGNvdWxkIG1ha2UgdGhlIEFaIGFwcGVhciB0byBsb29rIGltcGFpcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzPzogSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhpcyBpcyBhIGNyaXRpY2FsIG9wZXJhdGlvbiBmb3IgdGhlIHNlcnZpY2VcbiAgICogYW5kIHdpbGwgYmUgaW5jbHVkZWQgaW4gc2VydmljZSBsZXZlbCBtZXRyaWNzIGFuZFxuICAgKiBkYXNoYm9hcmRzXG4gICAqL1xuICByZWFkb25seSBjcml0aWNhbDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgeW91IGRlZmluZSB0aGlzIHByb3BlcnR5LCBhIHN5bnRoZXRpY1xuICAgKiBjYW5hcnkgd2lsbCBiZSBwcm92aXNpb25lZCB0byB0ZXN0IHRoZSBvcGVyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIGRlZmF1bHQgZm9yIHRoZSBzZXJ2aWNlIHdpbGwgYmUgdXNlZCwgaWYgdGhhdFxuICAgKiBpcyB1bmRlZmluZWQsIHRoZW4gbm8gY2FuYXJ5IHdpbGwgYmUgcHJvdmlzaW9uZWQgZm9yIHRoaXMgb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FuYXJ5VGVzdFByb3BzPzogQWRkQ2FuYXJ5VGVzdFByb3BzO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gdHJ1ZSBpZiB5b3UgaGF2ZSBkZWZpbmVkIENhbmFyeVRlc3RQcm9wcyBmb3IgeW91clxuICAgKiBzZXJ2aWNlLCB3aGljaCBhcHBsaWVzIHRvIGFsbCBvcGVyYXRpb25zLCBidXQgeW91IHdhbnQgdG9cbiAgICogb3B0IG91dCBvZiBjcmVhdGluZyB0aGUgY2FuYXJ5IHRlc3QgZm9yIHRoaXMgb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBvcGVyYXRpb24gaXMgbm90IG9wdGVkIG91dFxuICAgKi9cbiAgcmVhZG9ubHkgb3B0T3V0T2ZTZXJ2aWNlQ3JlYXRlZENhbmFyeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBodHRwIG1ldGhvZHMgc3VwcG9ydGVkIGJ5IHRoZSBvcGVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGh0dHBNZXRob2RzOiBzdHJpbmdbXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ServiceMetricDetailsProps } from "./ServiceMetricDetailsProps";
|
|
2
|
+
/**
|
|
3
|
+
* Props for service availability metrics
|
|
4
|
+
*/
|
|
5
|
+
export interface ServiceAvailabilityMetricDetailsProps extends ServiceMetricDetailsProps {
|
|
6
|
+
/**
|
|
7
|
+
* The threshold for alarms associated with availability success metrics, for example if measuring
|
|
8
|
+
* success rate, the threshold may be 99, meaning you would want an alarm that triggers
|
|
9
|
+
* if success drops below 99%.
|
|
10
|
+
*/
|
|
11
|
+
readonly successAlarmThreshold: number;
|
|
12
|
+
/**
|
|
13
|
+
* The threshold for alarms associated with availability fault metrics, for example if measuring
|
|
14
|
+
* fault rate, the threshold may be 1, meaning you would want an alarm that triggers
|
|
15
|
+
* if the fault rate goes above 1%.
|
|
16
|
+
*/
|
|
17
|
+
readonly faultAlarmThreshold: number;
|
|
18
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9wcy9TZXJ2aWNlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1Byb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBTZXJ2aWNlTWV0cmljRGV0YWlsc1Byb3BzIH0gZnJvbSBcIi4vU2VydmljZU1ldHJpY0RldGFpbHNQcm9wc1wiO1xuXG4vKipcbiAqIFByb3BzIGZvciBzZXJ2aWNlIGF2YWlsYWJpbGl0eSBtZXRyaWNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNQcm9wcyBleHRlbmRzIFNlcnZpY2VNZXRyaWNEZXRhaWxzUHJvcHMge1xuICAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgZm9yIGFsYXJtcyBhc3NvY2lhdGVkIHdpdGggYXZhaWxhYmlsaXR5IHN1Y2Nlc3MgbWV0cmljcywgZm9yIGV4YW1wbGUgaWYgbWVhc3VyaW5nXG4gICAqIHN1Y2Nlc3MgcmF0ZSwgdGhlIHRocmVzaG9sZCBtYXkgYmUgOTksIG1lYW5pbmcgeW91IHdvdWxkIHdhbnQgYW4gYWxhcm0gdGhhdCB0cmlnZ2Vyc1xuICAgKiBpZiBzdWNjZXNzIGRyb3BzIGJlbG93IDk5JS5cbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NBbGFybVRocmVzaG9sZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciBhbGFybXMgYXNzb2NpYXRlZCB3aXRoIGF2YWlsYWJpbGl0eSBmYXVsdCBtZXRyaWNzLCBmb3IgZXhhbXBsZSBpZiBtZWFzdXJpbmdcbiAgICogZmF1bHQgcmF0ZSwgdGhlIHRocmVzaG9sZCBtYXkgYmUgMSwgbWVhbmluZyB5b3Ugd291bGQgd2FudCBhbiBhbGFybSB0aGF0IHRyaWdnZXJzXG4gICAqIGlmIHRoZSBmYXVsdCByYXRlIGdvZXMgYWJvdmUgMSUuXG4gICAqL1xuICByZWFkb25seSBmYXVsdEFsYXJtVGhyZXNob2xkOiBudW1iZXI7XG59Il19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Duration } from "aws-cdk-lib";
|
|
2
|
+
import { ServiceMetricDetailsProps } from "./ServiceMetricDetailsProps";
|
|
3
|
+
/**
|
|
4
|
+
* Props for service latency metrics
|
|
5
|
+
*/
|
|
6
|
+
export interface ServiceLatencyMetricDetailsProps extends ServiceMetricDetailsProps {
|
|
7
|
+
/**
|
|
8
|
+
* The threshold for alarms associated with latency success metrics, for example if success
|
|
9
|
+
* latency exceeds 500 milliseconds
|
|
10
|
+
*/
|
|
11
|
+
readonly successAlarmThreshold: Duration;
|
|
12
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUxhdGVuY3lNZXRyaWNEZXRhaWxzUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcHJvcHMvU2VydmljZUxhdGVuY3lNZXRyaWNEZXRhaWxzUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBTZXJ2aWNlTWV0cmljRGV0YWlsc1Byb3BzIH0gZnJvbSBcIi4vU2VydmljZU1ldHJpY0RldGFpbHNQcm9wc1wiO1xuXG4vKipcbiAqIFByb3BzIGZvciBzZXJ2aWNlIGxhdGVuY3kgbWV0cmljc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VMYXRlbmN5TWV0cmljRGV0YWlsc1Byb3BzIGV4dGVuZHMgU2VydmljZU1ldHJpY0RldGFpbHNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciBhbGFybXMgYXNzb2NpYXRlZCB3aXRoIGxhdGVuY3kgc3VjY2VzcyBtZXRyaWNzLCBmb3IgZXhhbXBsZSBpZiBzdWNjZXNzXG4gICAqIGxhdGVuY3kgZXhjZWVkcyA1MDAgbWlsbGlzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBzdWNjZXNzQWxhcm1UaHJlc2hvbGQ6IER1cmF0aW9uO1xufSJdfQ==
|
|
@@ -53,16 +53,4 @@ export interface ServiceMetricDetailsProps {
|
|
|
53
53
|
* The number of datapoints to alarm on for latency and availability alarms
|
|
54
54
|
*/
|
|
55
55
|
readonly datapointsToAlarm: number;
|
|
56
|
-
/**
|
|
57
|
-
* The threshold for alarms associated with success metrics, for example if measuring
|
|
58
|
-
* success rate, the threshold may be 99, meaning you would want an alarm that triggers
|
|
59
|
-
* if success drops below 99%.
|
|
60
|
-
*/
|
|
61
|
-
readonly successAlarmThreshold: number;
|
|
62
|
-
/**
|
|
63
|
-
* The threshold for alarms associated with fault metrics, for example if measuring
|
|
64
|
-
* fault rate, the threshold may be 1, meaning you would want an alarm that triggers
|
|
65
|
-
* if the fault rate goes above 1%.
|
|
66
|
-
*/
|
|
67
|
-
readonly faultAlarmThreshold: number;
|
|
68
56
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZU1ldHJpY0RldGFpbHNQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9wcy9TZXJ2aWNlTWV0cmljRGV0YWlsc1Byb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFVuaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIGRlZmF1bHQgc2VydmljZSBtZXRyaWMgZGV0YWlsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VNZXRyaWNEZXRhaWxzUHJvcHMge1xuICAvKipcbiAgICogVGhlIENsb3VkV2F0Y2ggbWV0cmljIG5hbWVzcGFjZSBmb3IgdGhlc2UgbWV0cmljc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljTmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lcyBvZiBzdWNjZXNzIGluZGljYXRpbmcgbWV0cmljc1xuICAgKi9cbiAgcmVhZG9ubHkgc3VjY2Vzc01ldHJpY05hbWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIGZhdWx0IGluZGljYXRpbmcgbWV0cmljc1xuICAgKi9cbiAgcmVhZG9ubHkgZmF1bHRNZXRyaWNOYW1lczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWMgdXNlZCBmb3IgYWxhcm1zLCBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MgdGhpcyBzaG91bGRcbiAgICogYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCBjb3VsZCBzb21ldGhpbmcgbGlrZSBcInA5OVwiIG9yIFwicDk5LjlcIlxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1TdGF0aXN0aWM6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YXRpc3RpY3MgZm9yIHN1Y2Nlc3NlcyB5b3Ugd2FudCB0byBhcHBlYXIgb24gZGFzaGJvYXJkcywgZm9yIGV4YW1wbGUsIHdpdGhcbiAgICogbGF0ZW5jeSBtZXRyaWNzLCB5b3UgbWlnaHQgd2FudCBwNTAsIHA5OSwgYW5kIHRtOTkuIEZvciBhdmFpbGFiaWxpdHlcbiAgICogbWV0cmljcyB0aGlzIHdpbGwgdHlwaWNhbGx5IGp1c3QgYmUgXCJTdW1cIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBGb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MsIHRoaXMgd2lsbCBiZSBcIlN1bVwiLCBmb3IgbGF0ZW5jeSBtZXRyaWNzIGl0IHdpbGwgYmUganVzdCBcInA5OVwiXG4gICAqL1xuICByZWFkb25seSBncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3M/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZU1ldHJpY0RldGFpbHNQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9wcy9TZXJ2aWNlTWV0cmljRGV0YWlsc1Byb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFVuaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIGRlZmF1bHQgc2VydmljZSBtZXRyaWMgZGV0YWlsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VNZXRyaWNEZXRhaWxzUHJvcHMge1xuICAvKipcbiAgICogVGhlIENsb3VkV2F0Y2ggbWV0cmljIG5hbWVzcGFjZSBmb3IgdGhlc2UgbWV0cmljc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljTmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lcyBvZiBzdWNjZXNzIGluZGljYXRpbmcgbWV0cmljc1xuICAgKi9cbiAgcmVhZG9ubHkgc3VjY2Vzc01ldHJpY05hbWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIGZhdWx0IGluZGljYXRpbmcgbWV0cmljc1xuICAgKi9cbiAgcmVhZG9ubHkgZmF1bHRNZXRyaWNOYW1lczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWMgdXNlZCBmb3IgYWxhcm1zLCBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MgdGhpcyBzaG91bGRcbiAgICogYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCBjb3VsZCBzb21ldGhpbmcgbGlrZSBcInA5OVwiIG9yIFwicDk5LjlcIlxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1TdGF0aXN0aWM6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YXRpc3RpY3MgZm9yIHN1Y2Nlc3NlcyB5b3Ugd2FudCB0byBhcHBlYXIgb24gZGFzaGJvYXJkcywgZm9yIGV4YW1wbGUsIHdpdGhcbiAgICogbGF0ZW5jeSBtZXRyaWNzLCB5b3UgbWlnaHQgd2FudCBwNTAsIHA5OSwgYW5kIHRtOTkuIEZvciBhdmFpbGFiaWxpdHlcbiAgICogbWV0cmljcyB0aGlzIHdpbGwgdHlwaWNhbGx5IGp1c3QgYmUgXCJTdW1cIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBGb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MsIHRoaXMgd2lsbCBiZSBcIlN1bVwiLCBmb3IgbGF0ZW5jeSBtZXRyaWNzIGl0IHdpbGwgYmUganVzdCBcInA5OVwiXG4gICAqL1xuICByZWFkb25seSBncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHN0YXRpc3RpY3MgZm9yIGZhdWx0cyB5b3Ugd2FudCB0byBhcHBlYXIgb24gZGFzaGJvYXJkcywgZm9yIGV4YW1wbGUsIHdpdGhcbiAgICogbGF0ZW5jeSBtZXRyaWNzLCB5b3UgbWlnaHQgd2FudCBwNTAsIHA5OSwgYW5kIHRtOTkuIEZvciBhdmFpbGFiaWxpdHlcbiAgICogbWV0cmljcyB0aGlzIHdpbGwgdHlwaWNhbGx5IGp1c3QgYmUgXCJTdW1cIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBGb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MsIHRoaXMgd2lsbCBiZSBcIlN1bVwiLCBmb3IgbGF0ZW5jeSBtZXRyaWNzIGl0IHdpbGwgYmUganVzdCBcInA5OVwiXG4gICAqL1xuICByZWFkb25seSBncmFwaGVkRmF1bHRTdGF0aXN0aWNzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSB1bml0IHVzZWQgZm9yIHRoZXNlIG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IHVuaXQ6IFVuaXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJpb2QgZm9yIHRoZSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q6IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGV2YWx1YXRpb24gcGVyaW9kcyBmb3IgbGF0ZW5jeSBhbmQgYXZhaWxhYmlsdGl5IGFsYXJtc1xuICAgKi9cbiAgcmVhZG9ubHkgZXZhbHVhdGlvblBlcmlvZHM6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXRhcG9pbnRzIHRvIGFsYXJtIG9uIGZvciBsYXRlbmN5IGFuZCBhdmFpbGFiaWxpdHkgYWxhcm1zXG4gICAqL1xuICByZWFkb25seSBkYXRhcG9pbnRzVG9BbGFybTogbnVtYmVyO1xufVxuIl19
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Duration } from 'aws-cdk-lib';
|
|
2
|
-
import { ILoadBalancerV2 } from 'aws-cdk-lib/aws-elasticloadbalancingv2';
|
|
2
|
+
import { ILoadBalancerV2, ITargetGroup } from 'aws-cdk-lib/aws-elasticloadbalancingv2';
|
|
3
3
|
import { AddCanaryTestProps } from '../../canaries/props/AddCanaryTestProps';
|
|
4
4
|
import { IContributorInsightRuleDetails } from '../IContributorInsightRuleDetails';
|
|
5
|
-
import {
|
|
5
|
+
import { IServiceAvailabilityMetricDetails } from '../IServiceAvailabilityMetricDetails';
|
|
6
|
+
import { IServiceLatencyMetricDetails } from '../IServiceLatencyMetricDetails';
|
|
7
|
+
import { MinimumUnhealthyTargets } from '../../utilities/MinimumUnhealthyTargets';
|
|
6
8
|
/**
|
|
7
9
|
* Properties to initialize a service
|
|
8
10
|
*/
|
|
@@ -37,6 +39,12 @@ export interface ServiceProps {
|
|
|
37
39
|
* that automation can use to implement a zonal shift.
|
|
38
40
|
*/
|
|
39
41
|
readonly loadBalancer?: ILoadBalancerV2;
|
|
42
|
+
/**
|
|
43
|
+
* The target groups registered with the load balancer
|
|
44
|
+
*
|
|
45
|
+
* @default Anomalous and mitigated host metrics will not be included on dashboards
|
|
46
|
+
*/
|
|
47
|
+
readonly targetGroups?: ITargetGroup[];
|
|
40
48
|
/**
|
|
41
49
|
* Define these settings if you want to automatically add canary
|
|
42
50
|
* tests to your operations. Operations can individually opt out
|
|
@@ -51,13 +59,13 @@ export interface ServiceProps {
|
|
|
51
59
|
* for all operations unless specifically overridden in an
|
|
52
60
|
* operation definition.
|
|
53
61
|
*/
|
|
54
|
-
readonly defaultAvailabilityMetricDetails:
|
|
62
|
+
readonly defaultAvailabilityMetricDetails: IServiceAvailabilityMetricDetails;
|
|
55
63
|
/**
|
|
56
64
|
* The default settings that are used for availability metrics
|
|
57
65
|
* for all operations unless specifically overridden in an
|
|
58
66
|
* operation definition.
|
|
59
67
|
*/
|
|
60
|
-
readonly defaultLatencyMetricDetails:
|
|
68
|
+
readonly defaultLatencyMetricDetails: IServiceLatencyMetricDetails;
|
|
61
69
|
/**
|
|
62
70
|
* The default settings that are used for contributor insight
|
|
63
71
|
* rules.
|
|
@@ -66,4 +74,10 @@ export interface ServiceProps {
|
|
|
66
74
|
* if the operation has logs that can be queried by contributor insights
|
|
67
75
|
*/
|
|
68
76
|
readonly defaultContributorInsightRuleDetails?: IContributorInsightRuleDetails;
|
|
77
|
+
/**
|
|
78
|
+
* The minimum number of unhealthy targets for an AZ to be considered unhealthy
|
|
79
|
+
*
|
|
80
|
+
* @default Count of 2
|
|
81
|
+
*/
|
|
82
|
+
readonly minimumUnhealthyTargets?: MinimumUnhealthyTargets;
|
|
69
83
|
}
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZVByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3Byb3BzL1NlcnZpY2VQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJTG9hZEJhbGFuY2VyVjIsIElUYXJnZXRHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCB7IEFkZENhbmFyeVRlc3RQcm9wcyB9IGZyb20gJy4uLy4uL2NhbmFyaWVzL3Byb3BzL0FkZENhbmFyeVRlc3RQcm9wcyc7XG5pbXBvcnQgeyBJQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMgfSBmcm9tICcuLi9JQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMnO1xuaW1wb3J0IHsgSVNlcnZpY2VBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi4vSVNlcnZpY2VBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzJztcbmltcG9ydCB7IElTZXJ2aWNlTGF0ZW5jeU1ldHJpY0RldGFpbHMgfSBmcm9tICcuLi9JU2VydmljZUxhdGVuY3lNZXRyaWNEZXRhaWxzJztcbmltcG9ydCB7IE1pbmltdW1VbmhlYWx0aHlUYXJnZXRzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL01pbmltdW1VbmhlYWx0aHlUYXJnZXRzJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGluaXRpYWxpemUgYSBzZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHlvdXIgc2VydmljZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGJhc2UgZW5kcG9pbnQgZm9yIHRoaXMgc2VydmljZSwgbGlrZSBcImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tXCIuIE9wZXJhdGlvblxuICAgKiBwYXRocyB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoaXMgZW5kcG9pbnQgZm9yIGNhbmFyeSB0ZXN0aW5nIHRoZSBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZmF1bHQgY291bnQgdGhyZXNob2xkIHRoYXQgaW5kaWNhdGVzIHRoZSBzZXJ2aWNlIGlzIHVuaGVhbHRoeS4gVGhpcyBpcyBhbiBhYnNvbHV0ZSB2YWx1ZSBvZiBmYXVsdHNcbiAgICogYmVpbmcgcHJvZHVjZWQgYnkgYWxsIGNyaXRpY2FsIG9wZXJhdGlvbnMgaW4gYWdncmVnYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgZmF1bHRDb3VudFRocmVzaG9sZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgdGhlIEF2YWlsYWJpbGl0eSBab25lIG5hbWVzIHVzZWQgYnkgdGhpcyBhcHBsaWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZU5hbWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHBlcmlvZCBmb3Igd2hpY2ggbWV0cmljcyBmb3IgdGhlIHNlcnZpY2Ugc2hvdWxkIGJlIGFnZ3JlZ2F0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZDogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2FkIGJhbGFuY2VyIHRoaXMgc2VydmljZSBzaXRzIGJlaGluZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIExvYWQgYmFsYW5jZXIgbWV0cmljcyB3b24ndCBiZSBzaG93biBvbiBkYXNoYm9hcmRzXG4gICAqIGFuZCBpdHMgQVJOIHdvbid0IGJlIGluY2x1ZGVkIGluIHRvcCBsZXZlbCBhbGFybSBkZXNjcmlwdGlvbnNcbiAgICogdGhhdCBhdXRvbWF0aW9uIGNhbiB1c2UgdG8gaW1wbGVtZW50IGEgem9uYWwgc2hpZnQuXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXI/OiBJTG9hZEJhbGFuY2VyVjI7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgZ3JvdXBzIHJlZ2lzdGVyZWQgd2l0aCB0aGUgbG9hZCBiYWxhbmNlclxuICAgKiBcbiAgICogQGRlZmF1bHQgQW5vbWFsb3VzIGFuZCBtaXRpZ2F0ZWQgaG9zdCBtZXRyaWNzIHdpbGwgbm90IGJlIGluY2x1ZGVkIG9uIGRhc2hib2FyZHNcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEdyb3Vwcz86IElUYXJnZXRHcm91cFtdO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlc2Ugc2V0dGluZ3MgaWYgeW91IHdhbnQgdG8gYXV0b21hdGljYWxseSBhZGQgY2FuYXJ5XG4gICAqIHRlc3RzIHRvIHlvdXIgb3BlcmF0aW9ucy4gT3BlcmF0aW9ucyBjYW4gaW5kaXZpZHVhbGx5IG9wdCBvdXRcbiAgICogb2YgY2FuYXJ5IHRlc3QgY3JlYXRpb24gaWYgeW91IGRlZmluZSB0aGlzIHNldHRpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQXV0b21hdGljIGNhbmFyeSB0ZXN0cyB3aWxsIG5vdCBiZSBjcmVhdGVkIGZvclxuICAgKiBvcGVyYXRpb25zIGluIHRoaXMgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVRlc3RQcm9wcz86IEFkZENhbmFyeVRlc3RQcm9wcztcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhhdCBhcmUgdXNlZCBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3NcbiAgICogZm9yIGFsbCBvcGVyYXRpb25zIHVubGVzcyBzcGVjaWZpY2FsbHkgb3ZlcnJpZGRlbiBpbiBhblxuICAgKiBvcGVyYXRpb24gZGVmaW5pdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzOiBJU2VydmljZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHNldHRpbmdzIHRoYXQgYXJlIHVzZWQgZm9yIGF2YWlsYWJpbGl0eSBtZXRyaWNzXG4gICAqIGZvciBhbGwgb3BlcmF0aW9ucyB1bmxlc3Mgc3BlY2lmaWNhbGx5IG92ZXJyaWRkZW4gaW4gYW5cbiAgICogb3BlcmF0aW9uIGRlZmluaXRpb24uXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHM6IElTZXJ2aWNlTGF0ZW5jeU1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHNldHRpbmdzIHRoYXQgYXJlIHVzZWQgZm9yIGNvbnRyaWJ1dG9yIGluc2lnaHRcbiAgICogcnVsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZGVmYXVsdHMgYXJlIHByb3ZpZGVkIGFuZCBtdXN0IGJlIHNwZWNpZmllZCBwZXIgb3BlcmF0aW9uXG4gICAqIGlmIHRoZSBvcGVyYXRpb24gaGFzIGxvZ3MgdGhhdCBjYW4gYmUgcXVlcmllZCBieSBjb250cmlidXRvciBpbnNpZ2h0c1xuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzPzogSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgdW5oZWFsdGh5IHRhcmdldHMgZm9yIGFuIEFaIHRvIGJlIGNvbnNpZGVyZWQgdW5oZWFsdGh5XG4gICAqIFxuICAgKiBAZGVmYXVsdCBDb3VudCBvZiAyXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtVW5oZWFsdGh5VGFyZ2V0cz86IE1pbmltdW1VbmhlYWx0aHlUYXJnZXRzO1xufVxuIl19
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
import { Duration } from "aws-cdk-lib";
|
|
2
|
+
import { Unit } from "aws-cdk-lib/aws-cloudwatch";
|
|
3
|
+
import { Runtime } from "aws-cdk-lib/aws-lambda";
|
|
1
4
|
export declare class MetricsHelper {
|
|
5
|
+
static readonly colors: string[];
|
|
6
|
+
static readonly regionColor: string;
|
|
2
7
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
* Increments a str by one char, for example
|
|
9
|
+
* a -> b
|
|
10
|
+
* z -> aa
|
|
11
|
+
* ad -> ae
|
|
12
|
+
*
|
|
13
|
+
* This wraps at z and adds a new 'a'
|
|
14
|
+
* @param str
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
12
17
|
static nextChar(str?: string): string;
|
|
18
|
+
static isNotEmpty<T extends object>(obj: T | undefined | null): obj is T;
|
|
19
|
+
static convertDurationByUnit(duration: Duration, unit: Unit): number;
|
|
20
|
+
static PythonRuntime: Runtime;
|
|
13
21
|
}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MetricsHelper = void 0;
|
|
4
|
+
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
5
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
4
6
|
class MetricsHelper {
|
|
5
7
|
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
* Increments a str by one char, for example
|
|
9
|
+
* a -> b
|
|
10
|
+
* z -> aa
|
|
11
|
+
* ad -> ae
|
|
12
|
+
*
|
|
13
|
+
* This wraps at z and adds a new 'a'
|
|
14
|
+
* @param str
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
15
17
|
static nextChar(str) {
|
|
16
18
|
if (!str || str.length == 0) {
|
|
17
19
|
return 'a';
|
|
@@ -25,6 +27,28 @@ class MetricsHelper {
|
|
|
25
27
|
String.fromCharCode(charA[charA.length - 1].charCodeAt(0) + 1));
|
|
26
28
|
}
|
|
27
29
|
}
|
|
30
|
+
static isNotEmpty(obj) {
|
|
31
|
+
return obj !== undefined && obj !== null && Object.keys(obj).length > 0;
|
|
32
|
+
}
|
|
33
|
+
static convertDurationByUnit(duration, unit) {
|
|
34
|
+
switch (unit) {
|
|
35
|
+
case aws_cloudwatch_1.Unit.MICROSECONDS: {
|
|
36
|
+
return duration.toMilliseconds() * 1000;
|
|
37
|
+
}
|
|
38
|
+
case aws_cloudwatch_1.Unit.MILLISECONDS: {
|
|
39
|
+
return duration.toMilliseconds();
|
|
40
|
+
}
|
|
41
|
+
case aws_cloudwatch_1.Unit.SECONDS: {
|
|
42
|
+
return duration.toSeconds({ integral: false });
|
|
43
|
+
}
|
|
44
|
+
default: {
|
|
45
|
+
throw new Error("Cannot convert duration to unit: " + unit.toString());
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
28
49
|
}
|
|
29
50
|
exports.MetricsHelper = MetricsHelper;
|
|
30
|
-
|
|
51
|
+
MetricsHelper.colors = [aws_cloudwatch_1.Color.BLUE, aws_cloudwatch_1.Color.ORANGE, aws_cloudwatch_1.Color.GREEN, aws_cloudwatch_1.Color.RED, aws_cloudwatch_1.Color.BROWN, aws_cloudwatch_1.Color.PINK];
|
|
52
|
+
MetricsHelper.regionColor = aws_cloudwatch_1.Color.PURPLE;
|
|
53
|
+
MetricsHelper.PythonRuntime = aws_lambda_1.Runtime.PYTHON_3_13;
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljc0hlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvTWV0cmljc0hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrREFBeUQ7QUFDekQsdURBQWlEO0FBRWpELE1BQWEsYUFBYTtJQUt2Qjs7Ozs7Ozs7O01BU0U7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksS0FBSyxHQUFhLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNwQyxPQUFPLENBQ0wsYUFBYSxDQUFDLFFBQVEsQ0FDcEIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FDbkMsR0FBRyxHQUFHLENBQ1IsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUNMLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUNsQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDL0QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBbUIsR0FBeUI7UUFDM0QsT0FBTyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQUMsUUFBa0IsRUFBRSxJQUFVO1FBQ2hFLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLHFCQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQzFDLENBQUM7WUFDRCxLQUFLLHFCQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUsscUJBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztZQUMvQyxDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3pFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs7QUF0REgsc0NBeURDO0FBeERpQixvQkFBTSxHQUFhLENBQUUsc0JBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQUssQ0FBQyxNQUFNLEVBQUUsc0JBQUssQ0FBQyxLQUFLLEVBQUUsc0JBQUssQ0FBQyxHQUFHLEVBQUUsc0JBQUssQ0FBQyxLQUFLLEVBQUUsc0JBQUssQ0FBQyxJQUFJLENBQUUsQ0FBQztBQUVqRyx5QkFBVyxHQUFXLHNCQUFLLENBQUMsTUFBTSxDQUFDO0FBcURyQywyQkFBYSxHQUFZLG9CQUFPLENBQUMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbG9yLCBVbml0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCI7XG5pbXBvcnQgeyBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcblxuZXhwb3J0IGNsYXNzIE1ldHJpY3NIZWxwZXIge1xuICBzdGF0aWMgcmVhZG9ubHkgY29sb3JzOiBzdHJpbmdbXSA9IFsgQ29sb3IuQkxVRSwgQ29sb3IuT1JBTkdFLCBDb2xvci5HUkVFTiwgQ29sb3IuUkVELCBDb2xvci5CUk9XTiwgQ29sb3IuUElOSyBdO1xuXG4gIHN0YXRpYyByZWFkb25seSByZWdpb25Db2xvcjogc3RyaW5nID0gQ29sb3IuUFVSUExFO1xuXG4gICAvKipcbiAgICogSW5jcmVtZW50cyBhIHN0ciBieSBvbmUgY2hhciwgZm9yIGV4YW1wbGVcbiAgICogYSAtPiBiXG4gICAqIHogLT4gYWFcbiAgICogYWQgLT4gYWVcbiAgICpcbiAgICogVGhpcyB3cmFwcyBhdCB6IGFuZCBhZGRzIGEgbmV3ICdhJ1xuICAgKiBAcGFyYW0gc3RyXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzdGF0aWMgbmV4dENoYXIoc3RyPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXN0ciB8fCBzdHIubGVuZ3RoID09IDApIHtcbiAgICAgIHJldHVybiAnYSc7XG4gICAgfVxuICAgIGxldCBjaGFyQTogc3RyaW5nW10gPSBzdHIuc3BsaXQoJycpO1xuXG4gICAgaWYgKGNoYXJBW2NoYXJBLmxlbmd0aCAtIDFdID09PSAneicpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIE1ldHJpY3NIZWxwZXIubmV4dENoYXIoXG4gICAgICAgICAgc3RyLnN1YnN0cmluZygwLCBjaGFyQS5sZW5ndGggLSAxKSxcbiAgICAgICAgKSArICdhJ1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgc3RyLnN1YnN0cmluZygwLCBjaGFyQS5sZW5ndGggLSAxKSArXG4gICAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hhckFbY2hhckEubGVuZ3RoIC0gMV0uY2hhckNvZGVBdCgwKSArIDEpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBpc05vdEVtcHR5PFQgZXh0ZW5kcyBvYmplY3Q+KG9iajogVCB8IHVuZGVmaW5lZCB8IG51bGwpOiBvYmogaXMgVCB7XG4gICAgcmV0dXJuIG9iaiAhPT0gdW5kZWZpbmVkICYmIG9iaiAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnREdXJhdGlvbkJ5VW5pdChkdXJhdGlvbjogRHVyYXRpb24sIHVuaXQ6IFVuaXQpIHtcbiAgICBzd2l0Y2ggKHVuaXQpIHtcbiAgICAgIGNhc2UgVW5pdC5NSUNST1NFQ09ORFM6IHtcbiAgICAgICAgcmV0dXJuIGR1cmF0aW9uLnRvTWlsbGlzZWNvbmRzKCkgKiAxMDAwO1xuICAgICAgfVxuICAgICAgY2FzZSBVbml0Lk1JTExJU0VDT05EUzoge1xuICAgICAgICByZXR1cm4gZHVyYXRpb24udG9NaWxsaXNlY29uZHMoKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgVW5pdC5TRUNPTkRTOiB7XG4gICAgICAgIHJldHVybiBkdXJhdGlvbi50b1NlY29uZHMoe2ludGVncmFsOiBmYWxzZX0pO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY29udmVydCBkdXJhdGlvbiB0byB1bml0OiBcIiArIHVuaXQudG9TdHJpbmcoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBQeXRob25SdW50aW1lOiBSdW50aW1lID0gUnVudGltZS5QWVRIT05fM18xMztcbn0iXX0=
|