@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.
Files changed (188) hide show
  1. package/.jsii +2826 -1008
  2. package/.jsii.tabl.json +1 -0
  3. package/API.md +5406 -1585
  4. package/README.md +176 -152
  5. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.d.ts +18 -14
  6. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.js +98 -60
  7. package/lib/alarmsandrules/BaseOperationRegionalAlarmsAndRules.d.ts +3 -3
  8. package/lib/alarmsandrules/BaseOperationRegionalAlarmsAndRules.js +2 -2
  9. package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.d.ts +6 -15
  10. package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.js +2 -10
  11. package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.d.ts +11 -3
  12. package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.js +29 -13
  13. package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.d.ts +0 -8
  14. package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.js +1 -1
  15. package/lib/alarmsandrules/IOperationAlarmsAndRules.d.ts +26 -23
  16. package/lib/alarmsandrules/IOperationAlarmsAndRules.js +1 -1
  17. package/lib/alarmsandrules/IServerSideOperationRegionalAlarmsAndRules.js +1 -1
  18. package/lib/alarmsandrules/IServiceAlarmsAndRules.d.ts +19 -15
  19. package/lib/alarmsandrules/IServiceAlarmsAndRules.js +1 -1
  20. package/lib/alarmsandrules/OperationAlarmsAndRules.d.ts +21 -18
  21. package/lib/alarmsandrules/OperationAlarmsAndRules.js +60 -72
  22. package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.d.ts +5 -5
  23. package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.js +2 -3
  24. package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.d.ts +21 -13
  25. package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.js +48 -29
  26. package/lib/alarmsandrules/ServiceAlarmsAndRules.d.ts +19 -15
  27. package/lib/alarmsandrules/ServiceAlarmsAndRules.js +34 -136
  28. package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.d.ts +4 -3
  29. package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.js +1 -1
  30. package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.d.ts +6 -44
  31. package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.js +1 -1
  32. package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.d.ts +39 -7
  33. package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.js +1 -1
  34. package/lib/azmapper/AvailabilityZoneMapper.js +8 -9
  35. package/lib/basic_observability/BasicServiceDashboard.d.ts +0 -3
  36. package/lib/basic_observability/BasicServiceDashboard.js +24 -112
  37. package/lib/basic_observability/BasicServiceMultiAZObservability.d.ts +8 -9
  38. package/lib/basic_observability/BasicServiceMultiAZObservability.js +97 -349
  39. package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.d.ts +66 -0
  40. package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.js +3 -0
  41. package/lib/basic_observability/props/BasicServiceDashboardProps.d.ts +27 -13
  42. package/lib/basic_observability/props/BasicServiceDashboardProps.js +1 -1
  43. package/lib/basic_observability/props/BasicServiceMultiAZObservabilityProps.d.ts +10 -44
  44. package/lib/basic_observability/props/BasicServiceMultiAZObservabilityProps.js +1 -1
  45. package/lib/basic_observability/props/NatGatewayDetectionProps.d.ts +31 -0
  46. package/lib/basic_observability/props/NatGatewayDetectionProps.js +3 -0
  47. package/lib/canaries/CanaryFunction.js +14 -13
  48. package/lib/canaries/CanaryTest.js +4 -4
  49. package/lib/canaries/src/canary.zip +0 -0
  50. package/lib/dashboards/ContributorInsightsWidget.d.ts +1 -1
  51. package/lib/dashboards/ContributorInsightsWidget.js +13 -17
  52. package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.d.ts +2 -6
  53. package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +436 -510
  54. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.d.ts +2 -10
  55. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +420 -416
  56. package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.d.ts +3 -66
  57. package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.js +1 -1
  58. package/lib/dashboards/props/OperationAvailabilityWidgetProps.d.ts +7 -2
  59. package/lib/dashboards/props/OperationAvailabilityWidgetProps.js +1 -1
  60. package/lib/dashboards/props/OperationLatencyWidgetProps.d.ts +7 -2
  61. package/lib/dashboards/props/OperationLatencyWidgetProps.js +1 -1
  62. package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.d.ts +8 -8
  63. package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.js +1 -1
  64. package/lib/index.d.ts +56 -25
  65. package/lib/index.js +37 -19
  66. package/lib/metrics/ApplicationLoadBalancerMetrics.d.ts +79 -2
  67. package/lib/metrics/ApplicationLoadBalancerMetrics.js +883 -26
  68. package/lib/metrics/AvailabilityAndLatencyMetrics.d.ts +23 -0
  69. package/lib/metrics/AvailabilityAndLatencyMetrics.js +125 -31
  70. package/lib/metrics/NatGatewayMetrics.d.ts +113 -0
  71. package/lib/metrics/NatGatewayMetrics.js +357 -0
  72. package/lib/metrics/RegionalAvailabilityMetrics.js +9 -10
  73. package/lib/metrics/RegionalLatencyMetrics.d.ts +1 -1
  74. package/lib/metrics/RegionalLatencyMetrics.js +27 -20
  75. package/lib/metrics/ZonalAvailabilityMetrics.d.ts +2 -8
  76. package/lib/metrics/ZonalAvailabilityMetrics.js +13 -28
  77. package/lib/metrics/ZonalLatencyMetrics.d.ts +2 -1
  78. package/lib/metrics/ZonalLatencyMetrics.js +33 -23
  79. package/lib/metrics/props/AvailabilityAndLatencyMetricProps.d.ts +4 -0
  80. package/lib/metrics/props/AvailabilityAndLatencyMetricProps.js +1 -1
  81. package/lib/metrics/props/LatencyMetricProps.d.ts +6 -0
  82. package/lib/metrics/props/LatencyMetricProps.js +1 -1
  83. package/lib/metrics/props/ZonalAvailabilityMetricProps.d.ts +4 -0
  84. package/lib/metrics/props/ZonalAvailabilityMetricProps.js +1 -1
  85. package/lib/metrics/props/ZonalLatencyMetricProps.d.ts +4 -0
  86. package/lib/metrics/props/ZonalLatencyMetricProps.js +1 -1
  87. package/lib/monitoring/src/monitoring-layer.zip +0 -0
  88. package/lib/outlier-detection/ApplicationLoadBalancerAvailabilityOutlierAlgorithm.d.ts +10 -0
  89. package/lib/outlier-detection/ApplicationLoadBalancerAvailabilityOutlierAlgorithm.js +15 -0
  90. package/lib/{basic_observability/props/ApplicationLoadBalancerLatencyOutlierCalculation.d.ts → outlier-detection/ApplicationLoadBalancerLatencyOutlierAlgorithm.d.ts} +1 -1
  91. package/lib/outlier-detection/ApplicationLoadBalancerLatencyOutlierAlgorithm.js +23 -0
  92. package/lib/outlier-detection/LatencyOutlierMetricAggregation.d.ts +22 -0
  93. package/lib/outlier-detection/LatencyOutlierMetricAggregation.js +27 -0
  94. package/lib/outlier-detection/OutlierDetectionFunction.js +7 -6
  95. package/lib/outlier-detection/PacketLossOutlierAlgorithm.d.ts +10 -0
  96. package/lib/outlier-detection/PacketLossOutlierAlgorithm.js +15 -0
  97. package/lib/outlier-detection/src/outlier-detection.zip +0 -0
  98. package/lib/outlier-detection/src/scipy-layer.zip +0 -0
  99. package/lib/services/CanaryMetrics.d.ts +4 -3
  100. package/lib/services/CanaryMetrics.js +3 -4
  101. package/lib/services/CanaryTestAvailabilityMetricsOverride.d.ts +21 -0
  102. package/lib/services/CanaryTestAvailabilityMetricsOverride.js +23 -0
  103. package/lib/services/CanaryTestLatencyMetricsOverride.d.ts +15 -0
  104. package/lib/services/CanaryTestLatencyMetricsOverride.js +20 -0
  105. package/lib/services/CanaryTestMetricsOverride.d.ts +1 -13
  106. package/lib/services/CanaryTestMetricsOverride.js +2 -4
  107. package/lib/services/ContributorInsightRuleDetails.js +1 -1
  108. package/lib/services/ICanaryMetrics.d.ts +4 -3
  109. package/lib/services/ICanaryMetrics.js +1 -1
  110. package/lib/services/ICanaryTestAvailabilityMetricsOverride.d.ts +23 -0
  111. package/lib/services/ICanaryTestAvailabilityMetricsOverride.js +3 -0
  112. package/lib/services/ICanaryTestLatencyMetricsOverride.d.ts +13 -0
  113. package/lib/services/ICanaryTestLatencyMetricsOverride.js +3 -0
  114. package/lib/services/ICanaryTestMetricsOverride.d.ts +0 -12
  115. package/lib/services/ICanaryTestMetricsOverride.js +1 -1
  116. package/lib/services/IInstrumentedServiceMultiAZObservability.d.ts +13 -3
  117. package/lib/services/IInstrumentedServiceMultiAZObservability.js +1 -1
  118. package/lib/services/IOperation.d.ts +8 -6
  119. package/lib/services/IOperation.js +1 -1
  120. package/lib/services/IOperationAvailabilityMetricDetails.d.ts +18 -0
  121. package/lib/services/IOperationAvailabilityMetricDetails.js +3 -0
  122. package/lib/services/IOperationLatencyMetricDetails.d.ts +12 -0
  123. package/lib/services/IOperationLatencyMetricDetails.js +3 -0
  124. package/lib/services/IOperationMetricDetails.d.ts +0 -12
  125. package/lib/services/IOperationMetricDetails.js +1 -1
  126. package/lib/services/IService.d.ts +18 -4
  127. package/lib/services/IService.js +1 -1
  128. package/lib/services/IServiceAvailabilityMetricDetails.d.ts +18 -0
  129. package/lib/services/IServiceAvailabilityMetricDetails.js +3 -0
  130. package/lib/services/IServiceLatencyMetricDetails.d.ts +12 -0
  131. package/lib/services/IServiceLatencyMetricDetails.js +3 -0
  132. package/lib/services/IServiceMetricDetails.d.ts +0 -12
  133. package/lib/services/IServiceMetricDetails.js +1 -1
  134. package/lib/services/InstrumentedServiceMultiAZObservability.d.ts +15 -3
  135. package/lib/services/InstrumentedServiceMultiAZObservability.js +252 -228
  136. package/lib/services/Operation.d.ts +8 -6
  137. package/lib/services/Operation.js +4 -3
  138. package/lib/services/OperationAvailabilityMetricDetails.d.ts +22 -0
  139. package/lib/services/OperationAvailabilityMetricDetails.js +24 -0
  140. package/lib/services/OperationLatencyMetricDetails.d.ts +16 -0
  141. package/lib/services/OperationLatencyMetricDetails.js +21 -0
  142. package/lib/services/OperationMetricDetails.d.ts +1 -13
  143. package/lib/services/OperationMetricDetails.js +2 -8
  144. package/lib/services/Service.d.ts +18 -4
  145. package/lib/services/Service.js +4 -2
  146. package/lib/services/ServiceAvailabilityMetricDetails.d.ts +21 -0
  147. package/lib/services/ServiceAvailabilityMetricDetails.js +20 -0
  148. package/lib/services/ServiceLatencyMetricDetails.d.ts +15 -0
  149. package/lib/services/ServiceLatencyMetricDetails.js +19 -0
  150. package/lib/services/ServiceMetricDetails.d.ts +1 -13
  151. package/lib/services/ServiceMetricDetails.js +2 -4
  152. package/lib/services/props/CanaryMetricProps.d.ts +4 -3
  153. package/lib/services/props/CanaryMetricProps.js +1 -1
  154. package/lib/services/props/CanaryTestAvailabilityMetricsOverrideProps.d.ts +22 -0
  155. package/lib/services/props/CanaryTestAvailabilityMetricsOverrideProps.js +3 -0
  156. package/lib/services/props/CanaryTestLatencyMetricsOverrideProps.d.ts +14 -0
  157. package/lib/services/props/CanaryTestLatencyMetricsOverrideProps.js +3 -0
  158. package/lib/services/props/CanaryTestMetricsOverrideProps.d.ts +0 -16
  159. package/lib/services/props/CanaryTestMetricsOverrideProps.js +1 -1
  160. package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.d.ts +50 -5
  161. package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.js +1 -1
  162. package/lib/services/props/MetricDimensions.js +1 -1
  163. package/lib/services/props/OperationAvailabilityMetricDetailsProps.d.ts +22 -0
  164. package/lib/services/props/OperationAvailabilityMetricDetailsProps.js +3 -0
  165. package/lib/services/props/OperationLatencyMetricDetailsProps.d.ts +14 -0
  166. package/lib/services/props/OperationLatencyMetricDetailsProps.js +3 -0
  167. package/lib/services/props/OperationMetricDetailsProps.d.ts +0 -16
  168. package/lib/services/props/OperationMetricDetailsProps.js +1 -1
  169. package/lib/services/props/OperationProps.d.ts +4 -3
  170. package/lib/services/props/OperationProps.js +1 -1
  171. package/lib/services/props/ServiceAvailabilityMetricDetailsProps.d.ts +18 -0
  172. package/lib/services/props/ServiceAvailabilityMetricDetailsProps.js +3 -0
  173. package/lib/services/props/ServiceLatencyMetricDetailsProps.d.ts +12 -0
  174. package/lib/services/props/ServiceLatencyMetricDetailsProps.js +3 -0
  175. package/lib/services/props/ServiceMetricDetailsProps.d.ts +0 -12
  176. package/lib/services/props/ServiceMetricDetailsProps.js +1 -1
  177. package/lib/services/props/ServiceProps.d.ts +18 -4
  178. package/lib/services/props/ServiceProps.js +1 -1
  179. package/lib/utilities/MetricsHelper.d.ts +17 -9
  180. package/lib/utilities/MetricsHelper.js +34 -10
  181. package/lib/utilities/MinimumUnhealthyTargets.d.ts +25 -0
  182. package/lib/utilities/MinimumUnhealthyTargets.js +3 -0
  183. package/package.json +14 -14
  184. package/rosetta/default.ts-fixture +72 -0
  185. package/rosetta/service.ts-fixture +144 -0
  186. package/lib/basic_observability/props/ApplicationLoadBalancerLatencyOutlierCalculation.js +0 -23
  187. package/lib/services/IBasicServiceMultiAZObservability.d.ts +0 -45
  188. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZVByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3Byb3BzL0NhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGVQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGFuIG92ZXJyaWRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWMgdXNlZCBmb3IgYWxhcm1zLCBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MgdGhpcyBzaG91bGRcbiAgICogYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCBjb3VsZCBzb21ldGhpbmcgbGlrZSBcInA5OVwiIG9yIFwicDk5LjlcIlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgcHJvcGVydHkgd2lsbCB1c2UgdGhlIGRlZmF1bHQgZGVmaW5lZCBmb3IgdGhlIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtU3RhdGlzdGljPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIGZvciB0aGUgbWV0cmljc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgcHJvcGVydHkgd2lsbCB1c2UgdGhlIGRlZmF1bHQgZGVmaW5lZCBmb3IgdGhlIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGV2YWx1YXRpb24gcGVyaW9kcyBmb3IgbGF0ZW5jeSBhbmQgYXZhaWxhYmlsdGl5IGFsYXJtc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgcHJvcGVydHkgd2lsbCB1c2UgdGhlIGRlZmF1bHQgZGVmaW5lZCBmb3IgdGhlIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgdG8gYWxhcm0gb24gZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbGl0eSBhbGFybXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGlzIHByb3BlcnR5IHdpbGwgdXNlIHRoZSBkZWZhdWx0IGRlZmluZWQgZm9yIHRoZSBzZXJ2aWNlXG4gICAqL1xuICByZWFkb25seSBkYXRhcG9pbnRzVG9BbGFybT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBzdWNjZXNzIG1ldHJpY3MsIGZvciBleGFtcGxlIGlmIG1lYXN1cmluZ1xuICAgKiBzdWNjZXNzIHJhdGUsIHRoZSB0aHJlc2hvbGQgbWF5IGJlIDk5LCBtZWFuaW5nIHlvdSB3b3VsZCB3YW50IGFuIGFsYXJtIHRoYXQgdHJpZ2dlcnNcbiAgICogaWYgc3VjY2VzcyBkcm9wcyBiZWxvdyA5OSUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhpcyBwcm9wZXJ0eSB3aWxsIHVzZSB0aGUgZGVmYXVsdCBkZWZpbmVkIGZvciB0aGUgc2VydmljZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VjY2Vzc0FsYXJtVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciBhbGFybXMgYXNzb2NpYXRlZCB3aXRoIGZhdWx0IG1ldHJpY3MsIGZvciBleGFtcGxlIGlmIG1lYXN1cmluZ1xuICAgKiBmYXVsdCByYXRlLCB0aGUgdGhyZXNob2xkIG1heSBiZSAxLCBtZWFuaW5nIHlvdSB3b3VsZCB3YW50IGFuIGFsYXJtIHRoYXQgdHJpZ2dlcnNcbiAgICogaWYgdGhlIGZhdWx0IHJhdGUgZ29lcyBhYm92ZSAxJS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGlzIHByb3BlcnR5IHdpbGwgdXNlIHRoZSBkZWZhdWx0IGRlZmluZWQgZm9yIHRoZSBzZXJ2aWNlXG4gICAqL1xuICByZWFkb25seSBmYXVsdEFsYXJtVGhyZXNob2xkPzogbnVtYmVyO1xufVxuIl19
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 latency or faults. This number is interpreted
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: 2
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 outlierThreshold?: number;
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 outlierDetectionAlgorithm: OutlierDetectionAlgorithm;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcHJvcHMvSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9PdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtJztcbmltcG9ydCB7IElTZXJ2aWNlIH0gZnJvbSAnLi4vSVNlcnZpY2UnO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIGZvciBhZGRpbmcgYWxhcm1zIGFuZCBkYXNoYm9hcmRzXG4gKiBmb3IgYW4gaW5zdHJ1bWVudGVkIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhhdCB0aGUgYWxhcm1zIGFuZCBkYXNoYm9hcmRzIGFyZSBiZWluZyBjcmF0ZWQgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZTogSVNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGNyZWF0ZSBwZXIgb3BlcmF0aW9uIGFuZCBvdmVyYWxsIHNlcnZpY2VcbiAgICogZGFzaGJvYXJkcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkYXNoYm9hcmRzIGFyZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVEYXNoYm9hcmRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG91dGxpZXIgdGhyZXNob2xkIGZvciBkZXRlcm1pbmluZyBpZiBhbiBBWiBpcyBhblxuICAgKiBvdXRsaWVyIGZvciBsYXRlbmN5IG9yIGZhdWx0cy4gVGhpcyBudW1iZXIgaXMgaW50ZXJwcmV0ZWRcbiAgICogZGlmZmVyZW50bHkgZm9yIGRpZmZlcmVudCBvdXRsaWVyIGFsZ29yaXRobXMuIFdoZW4gdXNlZCB3aXRoXG4gICAqIFNUQVRJQywgdGhlIG51bWJlciBzaG91bGQgYmUgYmV0d2VlbiAwIGFuZCAxIHRvIHJlcHJlc2VudCB0aGVcbiAgICogcGVyY2VudGFnZSBvZiBlcnJvcnMgKGxpa2UgLjcpIHRoYXQgYW4gQVogbXVzdCBiZSByZXNwb25zaWJsZVxuICAgKiBmb3IgdG8gYmUgY29uc2lkZXJlZCBhbiBvdXRsaWVyLiBXaGVuIHVzZWQgd2l0aCBDSElfU1FVQVJFRCwgaXRcbiAgICogcmVwcmVzZW50cyB0aGUgcCB2YWx1ZSB0aGF0IGluZGljYXRlcyBzdGF0aXN0aWNhbCBzaWduaWZpY2FuY2UsIGxpa2VcbiAgICogMC4wNSB3aGljaCBtZWFucyB0aGUgc2tldyBoYXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGEgNSUgY2hhbmNlIG9mXG4gICAqIG9jY3VyaW5nLiBXaGVuIHVzZWQgd2l0aCBaX1NDT1JFIGl0IGluZGljYXRlcyBob3cgbWFueSBzdGFuZGFyZFxuICAgKiBkZXZpYXRpb25zIHRvIGV2YWx1YXRlIGZvciBhbiBBWiBiZWluZyBhbiBvdXRsaWVyLCB0eXBpY2FsbHkgMyBpc1xuICAgKiBzdGFuZGFyZCBmb3IgWl9TQ09SRS5cbiAgICpcbiAgICogU3RhbmRhcmQgZGVmYXVsdHMgYmFzZWQgb24gdGhlIG91dGxpZXIgZGV0ZWN0aW9uIGFsZ29yaXRobTpcbiAgICogU1RBVElDOiAwLjdcbiAgICogQ0hJX1NRVUFSRUQ6IDAuMDVcbiAgICogWl9TQ09SRTogMlxuICAgKiBJUVI6IDEuNVxuICAgKiBNQUQ6IDNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXBlbmRzIG9uIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBhbGdvcml0aG0gc2VsZWN0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG91dGxpZXJUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGdvcml0aG0gdG8gdXNlIGZvciBwZXJmb3JtaW5nIG91dGxpZXIgZGV0ZWN0aW9uXG4gICAqL1xuICByZWFkb25seSBvdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtOiBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtO1xuXG4gIC8qKlxuICAgKiBUaGUgaW50ZXJ2YWwgdXNlZCBpbiB0aGUgZGFzaGJvYXJkLCBkZWZhdWx0cyB0b1xuICAgKiA2MCBtaW51dGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDYwIG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIElmIHlvdSBhcmUgbm90IHVzaW5nIGEgc3RhdGljIGJ1Y2tldCB0byBkZXBsb3kgYXNzZXRzLCBmb3IgZXhhbXBsZVxuICAgKiB5b3UgYXJlIHN5bnRoaW5nIHRoaXMgYW5kIGl0IGdldHMgdXBsb2FkZWQgdG8gYSBidWNrZXQgd2hvc2UgbmFtZVxuICAgKiBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IGxvY2F0aW9uIENESyBwcm92aWRlcyBieVxuICAgKiBkZWZhdWx0IGZvciBidW5kbGVkIGFzc2V0cy4gVGhlIHN0YWNrIGNvbnRhaW5pbmcgdGhpcyBjb250cnVjdCBuZWVkc1xuICAgKiB0byBoYXZlIGEgcGFyYW1ldGVyIGRlZmluZWQgdGhhdCB1c2VzIHRoaXMgbmFtZS4gVGhlIHVuZGVybHlpbmdcbiAgICogc3RhY2tzIGluIHRoaXMgY29uc3RydWN0IHRoYXQgZGVwbG95IGFzc2V0cyB3aWxsIGNvcHkgdGhlIHBhcmVudCBzdGFjaydzXG4gICAqIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBhc3NldHMgd2lsbCBiZSB1cGxvYWRlZCB0byB0aGUgZGVmYXVsdCBkZWZpbmVkXG4gICAqIGFzc2V0IGxvY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRzQnVja2V0UGFyYW1ldGVyTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgeW91IGFyZSBub3QgdXNpbmcgYSBzdGF0aWMgYnVja2V0IHRvIGRlcGxveSBhc3NldHMsIGZvciBleGFtcGxlXG4gICAqIHlvdSBhcmUgc3ludGhpbmcgdGhpcyBhbmQgaXQgZ2V0cyB1cGxvYWRlZCB0byBhIGJ1Y2tldCB0aGF0IHVzZXMgYSBwcmVmaXhcbiAgICogdGhhdCBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IHByZWZpeCBDREsgcHJvdmlkZXMgYnlcbiAgICogZGVmYXVsdCBmb3IgYnVuZGxlZCBhc3NldHMuIFRoaXMgcHJvcGVydHkgb25seSB0YWtlcyBlZmZlY3QgaWYgeW91XG4gICAqIGRlZmluZWQgdGhlIGFzc2V0c0J1Y2tldFBhcmFtZXRlck5hbWUuIFRoZSBzdGFjayBjb250YWluaW5nIHRoaXMgY29udHJ1Y3QgbmVlZHNcbiAgICogdG8gaGF2ZSBhIHBhcmFtZXRlciBkZWZpbmVkIHRoYXQgdXNlcyB0aGlzIG5hbWUuIFRoZSB1bmRlcmx5aW5nXG4gICAqIHN0YWNrcyBpbiB0aGlzIGNvbnN0cnVjdCB0aGF0IGRlcGxveSBhc3NldHMgd2lsbCBjb3B5IHRoZSBwYXJlbnQgc3RhY2snc1xuICAgKiB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBvYmplY3QgcHJlZml4IHdpbGwgYmUgYWRkZWQgdG8geW91ciBjdXN0b20gYXNzZXRzIGxvY2F0aW9uLlxuICAgKiBIb3dldmVyLCBpZiB5b3UgaGF2ZSBvdmVycmlkZGVuIHNvbWV0aGluZyBsaWtlIHRoZSAnQnVja2V0UHJlZml4JyBwcm9wZXJ0eVxuICAgKiBpbiB5b3VyIHN0YWNrIHN5bnRoZXNpemVyIHdpdGggYSB2YXJpYWJsZSBsaWtlIFwiJHtBc3NldHNCdWNrZXRQcmVmaXhcIixcbiAgICogeW91IHdpbGwgbmVlZCB0byBkZWZpbmUgdGhpcyBwcm9wZXJ0eSBzbyBpdCBkb2Vzbid0IGNhdXNlIGEgcmVmZXJlbmNlIGVycm9yXG4gICAqIGV2ZW4gaWYgdGhlIHByZWZpeCB2YWx1ZSBpcyBibGFuay5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWU/OiBzdHJpbmc7XG59XG4iXX0=
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.6" };
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/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBldmFsdWF0aW9uIHBlcmlvZHMgZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbHRpeSBhbGFybXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgdG8gYWxhcm0gb24gZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbGl0eSBhbGFybXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFwb2ludHNUb0FsYXJtPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciBhbGFybXMgYXNzb2NpYXRlZCB3aXRoIHN1Y2Nlc3MgbWV0cmljcywgZm9yIGV4YW1wbGUgaWYgbWVhc3VyaW5nXG4gICAqIHN1Y2Nlc3MgcmF0ZSwgdGhlIHRocmVzaG9sZCBtYXkgYmUgOTksIG1lYW5pbmcgeW91IHdvdWxkIHdhbnQgYW4gYWxhcm0gdGhhdCB0cmlnZ2Vyc1xuICAgKiBpZiBzdWNjZXNzIGRyb3BzIGJlbG93IDk5JS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NBbGFybVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBmYXVsdCBtZXRyaWNzLCBmb3IgZXhhbXBsZSBpZiBtZWFzdXJpbmdcbiAgICogZmF1bHQgcmF0ZSwgdGhlIHRocmVzaG9sZCBtYXkgYmUgMSwgbWVhbmluZyB5b3Ugd291bGQgd2FudCBhbiBhbGFybSB0aGF0IHRyaWdnZXJzXG4gICAqIGlmIHRoZSBmYXVsdCByYXRlIGdvZXMgYWJvdmUgMSUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHNlcnZpY2UgZGVmYXVsdCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBmYXVsdEFsYXJtVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdXNlciBpbXBsZW1lbnRlZCBmdW5jdGlvbnMgZm9yIHByb3ZpZGluZyB0aGUgbWV0cmljJ3MgZGltZW5zaW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljRGltZW5zaW9uczogTWV0cmljRGltZW5zaW9ucztcbn1cbiJdfQ==
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 { IOperationMetricDetails } from '../IOperationMetricDetails';
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: IOperationMetricDetails;
28
+ readonly serverSideAvailabilityMetricDetails: IOperationAvailabilityMetricDetails;
28
29
  /**
29
30
  * The server side latency metric details
30
31
  */
31
- readonly serverSideLatencyMetricDetails: IOperationMetricDetails;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcHJvcHMvT3BlcmF0aW9uUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IEFkZENhbmFyeVRlc3RQcm9wcyB9IGZyb20gJy4uLy4uL2NhbmFyaWVzL3Byb3BzL0FkZENhbmFyeVRlc3RQcm9wcyc7XG5pbXBvcnQgeyBJQ2FuYXJ5TWV0cmljcyB9IGZyb20gJy4uL0lDYW5hcnlNZXRyaWNzJztcbmltcG9ydCB7IElDYW5hcnlUZXN0TWV0cmljc092ZXJyaWRlIH0gZnJvbSAnLi4vSUNhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGUnO1xuaW1wb3J0IHsgSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzIH0gZnJvbSAnLi4vSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzJztcbmltcG9ydCB7IElPcGVyYXRpb25NZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi4vSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgSVNlcnZpY2UgfSBmcm9tICcuLi9JU2VydmljZSc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYW4gb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhlIG9wZXJhdGlvbiBpcyBhc3NvY2lhdGVkIHdpdGhcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2U6IElTZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBUaGUgSFRUUCBwYXRoIGZvciB0aGUgb3BlcmF0aW9uIGZvciBjYW5hcmllc1xuICAgKiAgdG8gcnVuIGFnYWluc3QsIHNvbWV0aGluZyBsaWtlIFwiL3Byb2R1Y3RzL2xpc3RcIlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgYXZhaWxhYmlsaXR5IG1ldHJpYyBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczogSU9wZXJhdGlvbk1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSBsYXRlbmN5IG1ldHJpYyBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHM6IElPcGVyYXRpb25NZXRyaWNEZXRhaWxzO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBtZXRyaWMgZGV0YWlscyBpZiB0aGUgc2VydmljZSBoYXMgYSBjYW5hcnlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhbGFybXMsIHJ1bGVzLCBvciBkYXNoYm9hcmRzIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBmcm9tIGNhbmFyeSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlNZXRyaWNEZXRhaWxzPzogSUNhbmFyeU1ldHJpY3M7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZSB2YWx1ZXMgZm9yIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBjYW5hcnkgdGVzdHMgc28geW91IGNhblxuICAgKiB1c2UgdmFsdWVzIG90aGVyIHRoYW4gdGhlIHNlcnZpY2UgZGVmYXVsdHMgdG8gZGVmaW5lIHRoZSB0aHJlc2hvbGRzIGZvclxuICAgKiBhdmFpbGFiaWxpdHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYXZhaWxhYmlsaXR5IG1ldHJpYyBkZXRhaWxzIHdpbGwgYmUgb3ZlcnJpZGRlbiBhbmQgdGhlXG4gICAqIHNlcnZpY2UgZGVmYXVsdHMgd2lsbCBiZSB1c2VkIGZvciB0aGUgYXV0b21hdGljYWxseSBjcmVhdGVkIGNhbmFyaWVzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlUZXN0QXZhaWxhYmlsaXR5TWV0cmljc092ZXJyaWRlPzogSUNhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZSB2YWx1ZXMgZm9yIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBjYW5hcnkgdGVzdHMgc28geW91IGNhblxuICAgKiB1c2UgdmFsdWVzIG90aGVyIHRoYW4gdGhlIHNlcnZpY2UgZGVmYXVsdHMgdG8gZGVmaW5lIHRoZSB0aHJlc2hvbGRzIGZvclxuICAgKiBsYXRlbmN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGxhdGVuY3kgbWV0cmljIGRldGFpbHMgd2lsbCBiZSBvdmVycmlkZGVuIGFuZCB0aGVcbiAgICogc2VydmljZSBkZWZhdWx0cyB3aWxsIGJlIHVzZWQgZm9yIHRoZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgY2FuYXJpZXNcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVRlc3RMYXRlbmN5TWV0cmljc092ZXJyaWRlPzogSUNhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSBkZXRhaWxzIGZvciBjb250cmlidXRvciBpbnNpZ2h0cyBydWxlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBkZWZhdWx0IHNlcnZpY2UgY29udHJpYnV0b3IgaW5zaWdodCBydWxlXG4gICAqIGRldGFpbHMgd2lsbCBiZSB1c2VkLiBJZiB0aG9zZSBhcmUgbm90IGRlZmluZWQgbm8gQ29udHJpYnV0b3IgSW5zaWdodFxuICAgKiBydWxlcyB3aWxsIGJlIGNyZWF0ZWQgYW5kIHRoZSBudW1iZXIgb2YgaW5zdGFuY2VzIGNvbnRyaWJ1dGluZyB0byBBWlxuICAgKiBmYXVsdHMgb3IgaGlnaCBsYXRlbmN5IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQsIHNvIGEgc2luZ2xlIGJhZCBpbnN0YW5jZVxuICAgKiBjb3VsZCBtYWtlIHRoZSBBWiBhcHBlYXIgdG8gbG9vayBpbXBhaXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscz86IElDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoaXMgaXMgYSBjcml0aWNhbCBvcGVyYXRpb24gZm9yIHRoZSBzZXJ2aWNlXG4gICAqIGFuZCB3aWxsIGJlIGluY2x1ZGVkIGluIHNlcnZpY2UgbGV2ZWwgbWV0cmljcyBhbmRcbiAgICogZGFzaGJvYXJkc1xuICAgKi9cbiAgcmVhZG9ubHkgY3JpdGljYWw6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIHlvdSBkZWZpbmUgdGhpcyBwcm9wZXJ0eSwgYSBzeW50aGV0aWNcbiAgICogY2FuYXJ5IHdpbGwgYmUgcHJvdmlzaW9uZWQgdG8gdGVzdCB0aGUgb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBkZWZhdWx0IGZvciB0aGUgc2VydmljZSB3aWxsIGJlIHVzZWQsIGlmIHRoYXRcbiAgICogaXMgdW5kZWZpbmVkLCB0aGVuIG5vIGNhbmFyeSB3aWxsIGJlIHByb3Zpc2lvbmVkIGZvciB0aGlzIG9wZXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVRlc3RQcm9wcz86IEFkZENhbmFyeVRlc3RQcm9wcztcblxuICAvKipcbiAgICogU2V0IHRvIHRydWUgaWYgeW91IGhhdmUgZGVmaW5lZCBDYW5hcnlUZXN0UHJvcHMgZm9yIHlvdXJcbiAgICogc2VydmljZSwgd2hpY2ggYXBwbGllcyB0byBhbGwgb3BlcmF0aW9ucywgYnV0IHlvdSB3YW50IHRvXG4gICAqIG9wdCBvdXQgb2YgY3JlYXRpbmcgdGhlIGNhbmFyeSB0ZXN0IGZvciB0aGlzIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgb3BlcmF0aW9uIGlzIG5vdCBvcHRlZCBvdXRcbiAgICovXG4gIHJlYWRvbmx5IG9wdE91dE9mU2VydmljZUNyZWF0ZWRDYW5hcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgaHR0cCBtZXRob2RzIHN1cHBvcnRlZCBieSB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBodHRwTWV0aG9kczogc3RyaW5nW107XG59XG4iXX0=
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/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHN0YXRpc3RpY3MgZm9yIGZhdWx0cyB5b3Ugd2FudCB0byBhcHBlYXIgb24gZGFzaGJvYXJkcywgZm9yIGV4YW1wbGUsIHdpdGhcbiAgICogbGF0ZW5jeSBtZXRyaWNzLCB5b3UgbWlnaHQgd2FudCBwNTAsIHA5OSwgYW5kIHRtOTkuIEZvciBhdmFpbGFiaWxpdHlcbiAgICogbWV0cmljcyB0aGlzIHdpbGwgdHlwaWNhbGx5IGp1c3QgYmUgXCJTdW1cIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBGb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MsIHRoaXMgd2lsbCBiZSBcIlN1bVwiLCBmb3IgbGF0ZW5jeSBtZXRyaWNzIGl0IHdpbGwgYmUganVzdCBcInA5OVwiXG4gICAqL1xuICByZWFkb25seSBncmFwaGVkRmF1bHRTdGF0aXN0aWNzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSB1bml0IHVzZWQgZm9yIHRoZXNlIG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IHVuaXQ6IFVuaXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJpb2QgZm9yIHRoZSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q6IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGV2YWx1YXRpb24gcGVyaW9kcyBmb3IgbGF0ZW5jeSBhbmQgYXZhaWxhYmlsdGl5IGFsYXJtc1xuICAgKi9cbiAgcmVhZG9ubHkgZXZhbHVhdGlvblBlcmlvZHM6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXRhcG9pbnRzIHRvIGFsYXJtIG9uIGZvciBsYXRlbmN5IGFuZCBhdmFpbGFiaWxpdHkgYWxhcm1zXG4gICAqL1xuICByZWFkb25seSBkYXRhcG9pbnRzVG9BbGFybTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciBhbGFybXMgYXNzb2NpYXRlZCB3aXRoIHN1Y2Nlc3MgbWV0cmljcywgZm9yIGV4YW1wbGUgaWYgbWVhc3VyaW5nXG4gICAqIHN1Y2Nlc3MgcmF0ZSwgdGhlIHRocmVzaG9sZCBtYXkgYmUgOTksIG1lYW5pbmcgeW91IHdvdWxkIHdhbnQgYW4gYWxhcm0gdGhhdCB0cmlnZ2Vyc1xuICAgKiBpZiBzdWNjZXNzIGRyb3BzIGJlbG93IDk5JS5cbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NBbGFybVRocmVzaG9sZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciBhbGFybXMgYXNzb2NpYXRlZCB3aXRoIGZhdWx0IG1ldHJpY3MsIGZvciBleGFtcGxlIGlmIG1lYXN1cmluZ1xuICAgKiBmYXVsdCByYXRlLCB0aGUgdGhyZXNob2xkIG1heSBiZSAxLCBtZWFuaW5nIHlvdSB3b3VsZCB3YW50IGFuIGFsYXJtIHRoYXQgdHJpZ2dlcnNcbiAgICogaWYgdGhlIGZhdWx0IHJhdGUgZ29lcyBhYm92ZSAxJS5cbiAgICovXG4gIHJlYWRvbmx5IGZhdWx0QWxhcm1UaHJlc2hvbGQ6IG51bWJlcjtcbn1cbiJdfQ==
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 { IServiceMetricDetails } from '../IServiceMetricDetails';
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: IServiceMetricDetails;
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: IServiceMetricDetails;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZVByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3Byb3BzL1NlcnZpY2VQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJTG9hZEJhbGFuY2VyVjIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mic7XG5pbXBvcnQgeyBBZGRDYW5hcnlUZXN0UHJvcHMgfSBmcm9tICcuLi8uLi9jYW5hcmllcy9wcm9wcy9BZGRDYW5hcnlUZXN0UHJvcHMnO1xuaW1wb3J0IHsgSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzIH0gZnJvbSAnLi4vSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzJztcbmltcG9ydCB7IElTZXJ2aWNlTWV0cmljRGV0YWlscyB9IGZyb20gJy4uL0lTZXJ2aWNlTWV0cmljRGV0YWlscyc7XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBpbml0aWFsaXplIGEgc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB5b3VyIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGVuZHBvaW50IGZvciB0aGlzIHNlcnZpY2UsIGxpa2UgXCJodHRwczovL3d3dy5leGFtcGxlLmNvbVwiLiBPcGVyYXRpb25cbiAgICogcGF0aHMgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGlzIGVuZHBvaW50IGZvciBjYW5hcnkgdGVzdGluZyB0aGUgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZhdWx0IGNvdW50IHRocmVzaG9sZCB0aGF0IGluZGljYXRlcyB0aGUgc2VydmljZSBpcyB1bmhlYWx0aHkuIFRoaXMgaXMgYW4gYWJzb2x1dGUgdmFsdWUgb2YgZmF1bHRzXG4gICAqIGJlaW5nIHByb2R1Y2VkIGJ5IGFsbCBjcml0aWNhbCBvcGVyYXRpb25zIGluIGFnZ3JlZ2F0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGZhdWx0Q291bnRUaHJlc2hvbGQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lcyB1c2VkIGJ5IHRoaXMgYXBwbGljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmVOYW1lczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJpb2QgZm9yIHdoaWNoIG1ldHJpY3MgZm9yIHRoZSBzZXJ2aWNlIHNob3VsZCBiZSBhZ2dyZWdhdGVkXG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q6IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9hZCBiYWxhbmNlciB0aGlzIHNlcnZpY2Ugc2l0cyBiZWhpbmRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBMb2FkIGJhbGFuY2VyIG1ldHJpY3Mgd29uJ3QgYmUgc2hvd24gb24gZGFzaGJvYXJkc1xuICAgKiBhbmQgaXRzIEFSTiB3b24ndCBiZSBpbmNsdWRlZCBpbiB0b3AgbGV2ZWwgYWxhcm0gZGVzY3JpcHRpb25zXG4gICAqIHRoYXQgYXV0b21hdGlvbiBjYW4gdXNlIHRvIGltcGxlbWVudCBhIHpvbmFsIHNoaWZ0LlxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyPzogSUxvYWRCYWxhbmNlclYyO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlc2Ugc2V0dGluZ3MgaWYgeW91IHdhbnQgdG8gYXV0b21hdGljYWxseSBhZGQgY2FuYXJ5XG4gICAqIHRlc3RzIHRvIHlvdXIgb3BlcmF0aW9ucy4gT3BlcmF0aW9ucyBjYW4gaW5kaXZpZHVhbGx5IG9wdCBvdXRcbiAgICogb2YgY2FuYXJ5IHRlc3QgY3JlYXRpb24gaWYgeW91IGRlZmluZSB0aGlzIHNldHRpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQXV0b21hdGljIGNhbmFyeSB0ZXN0cyB3aWxsIG5vdCBiZSBjcmVhdGVkIGZvclxuICAgKiBvcGVyYXRpb25zIGluIHRoaXMgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVRlc3RQcm9wcz86IEFkZENhbmFyeVRlc3RQcm9wcztcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhhdCBhcmUgdXNlZCBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3NcbiAgICogZm9yIGFsbCBvcGVyYXRpb25zIHVubGVzcyBzcGVjaWZpY2FsbHkgb3ZlcnJpZGRlbiBpbiBhblxuICAgKiBvcGVyYXRpb24gZGVmaW5pdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzOiBJU2VydmljZU1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHNldHRpbmdzIHRoYXQgYXJlIHVzZWQgZm9yIGF2YWlsYWJpbGl0eSBtZXRyaWNzXG4gICAqIGZvciBhbGwgb3BlcmF0aW9ucyB1bmxlc3Mgc3BlY2lmaWNhbGx5IG92ZXJyaWRkZW4gaW4gYW5cbiAgICogb3BlcmF0aW9uIGRlZmluaXRpb24uXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHM6IElTZXJ2aWNlTWV0cmljRGV0YWlscztcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhhdCBhcmUgdXNlZCBmb3IgY29udHJpYnV0b3IgaW5zaWdodFxuICAgKiBydWxlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkZWZhdWx0cyBhcmUgcHJvdmlkZWQgYW5kIG11c3QgYmUgc3BlY2lmaWVkIHBlciBvcGVyYXRpb25cbiAgICogaWYgdGhlIG9wZXJhdGlvbiBoYXMgbG9ncyB0aGF0IGNhbiBiZSBxdWVyaWVkIGJ5IGNvbnRyaWJ1dG9yIGluc2lnaHRzXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0Q29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHM/OiBJQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHM7XG59XG4iXX0=
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
- * Increments a str by one char, for example
4
- * a -> b
5
- * z -> aa
6
- * ad -> ae
7
- *
8
- * This wraps at z and adds a new 'a'
9
- * @param str
10
- * @returns
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
- * Increments a str by one char, for example
7
- * a -> b
8
- * z -> aa
9
- * ad -> ae
10
- *
11
- * This wraps at z and adds a new 'a'
12
- * @param str
13
- * @returns
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljc0hlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvTWV0cmljc0hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFhLGFBQWE7SUFDdEI7Ozs7Ozs7OztLQVNDO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFZO1FBQzFCLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFDRCxJQUFJLEtBQUssR0FBYSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDcEMsT0FBTyxDQUNMLGFBQWEsQ0FBQyxRQUFRLENBQ3BCLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQ25DLEdBQUcsR0FBRyxDQUNSLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FDTCxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDbEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQy9ELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBOUJELHNDQThCQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNZXRyaWNzSGVscGVyIHtcbiAgICAvKipcbiAgICogSW5jcmVtZW50cyBhIHN0ciBieSBvbmUgY2hhciwgZm9yIGV4YW1wbGVcbiAgICogYSAtPiBiXG4gICAqIHogLT4gYWFcbiAgICogYWQgLT4gYWVcbiAgICpcbiAgICogVGhpcyB3cmFwcyBhdCB6IGFuZCBhZGRzIGEgbmV3ICdhJ1xuICAgKiBAcGFyYW0gc3RyXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzdGF0aWMgbmV4dENoYXIoc3RyPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXN0ciB8fCBzdHIubGVuZ3RoID09IDApIHtcbiAgICAgIHJldHVybiAnYSc7XG4gICAgfVxuICAgIGxldCBjaGFyQTogc3RyaW5nW10gPSBzdHIuc3BsaXQoJycpO1xuXG4gICAgaWYgKGNoYXJBW2NoYXJBLmxlbmd0aCAtIDFdID09PSAneicpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIE1ldHJpY3NIZWxwZXIubmV4dENoYXIoXG4gICAgICAgICAgc3RyLnN1YnN0cmluZygwLCBjaGFyQS5sZW5ndGggLSAxKSxcbiAgICAgICAgKSArICdhJ1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgc3RyLnN1YnN0cmluZygwLCBjaGFyQS5sZW5ndGggLSAxKSArXG4gICAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hhckFbY2hhckEubGVuZ3RoIC0gMV0uY2hhckNvZGVBdCgwKSArIDEpXG4gICAgICApO1xuICAgIH1cbiAgfVxufSJdfQ==
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=