@cdklabs/multi-az-observability 0.0.0-alpha.0

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 (212) hide show
  1. package/.jsii +10177 -0
  2. package/API.md +5119 -0
  3. package/LICENSE +202 -0
  4. package/README.md +175 -0
  5. package/cdk.json +68 -0
  6. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.d.ts +214 -0
  7. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.js +763 -0
  8. package/lib/alarmsandrules/BaseOperationRegionalAlarmsAndRules.d.ts +22 -0
  9. package/lib/alarmsandrules/BaseOperationRegionalAlarmsAndRules.js +21 -0
  10. package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.d.ts +34 -0
  11. package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.js +39 -0
  12. package/lib/alarmsandrules/CanaryOperationRegionalAlarmsAndRules.d.ts +7 -0
  13. package/lib/alarmsandrules/CanaryOperationRegionalAlarmsAndRules.js +11 -0
  14. package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.d.ts +16 -0
  15. package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.js +17 -0
  16. package/lib/alarmsandrules/IBaseOperationRegionalAlarmsAndRules.d.ts +18 -0
  17. package/lib/alarmsandrules/IBaseOperationRegionalAlarmsAndRules.js +3 -0
  18. package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.d.ts +30 -0
  19. package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.js +3 -0
  20. package/lib/alarmsandrules/ICanaryOperationRegionalAlarmsAndRules.d.ts +6 -0
  21. package/lib/alarmsandrules/ICanaryOperationRegionalAlarmsAndRules.js +3 -0
  22. package/lib/alarmsandrules/ICanaryOperationZonalAlarmsAndRules.d.ts +12 -0
  23. package/lib/alarmsandrules/ICanaryOperationZonalAlarmsAndRules.js +3 -0
  24. package/lib/alarmsandrules/IOperationAlarmsAndRules.d.ts +55 -0
  25. package/lib/alarmsandrules/IOperationAlarmsAndRules.js +3 -0
  26. package/lib/alarmsandrules/IServerSideOperationRegionalAlarmsAndRules.d.ts +15 -0
  27. package/lib/alarmsandrules/IServerSideOperationRegionalAlarmsAndRules.js +3 -0
  28. package/lib/alarmsandrules/IServerSideOperationZonalAlarmsAndRules.d.ts +36 -0
  29. package/lib/alarmsandrules/IServerSideOperationZonalAlarmsAndRules.js +3 -0
  30. package/lib/alarmsandrules/IServiceAlarmsAndRules.d.ts +44 -0
  31. package/lib/alarmsandrules/IServiceAlarmsAndRules.js +3 -0
  32. package/lib/alarmsandrules/InsightRuleBody.d.ts +67 -0
  33. package/lib/alarmsandrules/InsightRuleBody.js +46 -0
  34. package/lib/alarmsandrules/OperationAlarmsAndRules.d.ts +59 -0
  35. package/lib/alarmsandrules/OperationAlarmsAndRules.js +135 -0
  36. package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.d.ts +19 -0
  37. package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.js +22 -0
  38. package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.d.ts +40 -0
  39. package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.js +46 -0
  40. package/lib/alarmsandrules/ServiceAlarmsAndRules.d.ts +48 -0
  41. package/lib/alarmsandrules/ServiceAlarmsAndRules.js +166 -0
  42. package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.d.ts +24 -0
  43. package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.js +3 -0
  44. package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.d.ts +62 -0
  45. package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.js +3 -0
  46. package/lib/alarmsandrules/props/CanaryOperationRegionalAlarmsAndRulesProps.d.ts +6 -0
  47. package/lib/alarmsandrules/props/CanaryOperationRegionalAlarmsAndRulesProps.js +3 -0
  48. package/lib/alarmsandrules/props/CanaryOperationZonalAlarmsAndRulesProps.d.ts +6 -0
  49. package/lib/alarmsandrules/props/CanaryOperationZonalAlarmsAndRulesProps.js +3 -0
  50. package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.d.ts +45 -0
  51. package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.js +3 -0
  52. package/lib/alarmsandrules/props/ServerSideOperationRegionalAlarmsAndRulesProps.d.ts +6 -0
  53. package/lib/alarmsandrules/props/ServerSideOperationRegionalAlarmsAndRulesProps.js +3 -0
  54. package/lib/alarmsandrules/props/ServerSideOperationZonalAlarmsAndRulesProps.d.ts +6 -0
  55. package/lib/alarmsandrules/props/ServerSideOperationZonalAlarmsAndRulesProps.js +3 -0
  56. package/lib/alarmsandrules/props/ServiceAlarmsAndRulesProps.d.ts +13 -0
  57. package/lib/alarmsandrules/props/ServiceAlarmsAndRulesProps.js +3 -0
  58. package/lib/azmapper/AvailabilityZoneMapper.d.ts +86 -0
  59. package/lib/azmapper/AvailabilityZoneMapper.js +200 -0
  60. package/lib/azmapper/IAvailabilityZoneMapper.d.ts +86 -0
  61. package/lib/azmapper/IAvailabilityZoneMapper.js +3 -0
  62. package/lib/azmapper/props/AvailabilityZoneMapperProps.d.ts +13 -0
  63. package/lib/azmapper/props/AvailabilityZoneMapperProps.js +3 -0
  64. package/lib/azmapper/src/index.py +107 -0
  65. package/lib/canaries/CanaryFunction.d.ts +16 -0
  66. package/lib/canaries/CanaryFunction.js +152 -0
  67. package/lib/canaries/CanaryTest.d.ts +10 -0
  68. package/lib/canaries/CanaryTest.js +84 -0
  69. package/lib/canaries/ICanaryFunction.d.ts +6 -0
  70. package/lib/canaries/ICanaryFunction.js +3 -0
  71. package/lib/canaries/props/AddCanaryTestProps.d.ts +66 -0
  72. package/lib/canaries/props/AddCanaryTestProps.js +3 -0
  73. package/lib/canaries/props/CanaryFunctionProps.d.ts +29 -0
  74. package/lib/canaries/props/CanaryFunctionProps.js +3 -0
  75. package/lib/canaries/props/CanaryTestProps.d.ts +21 -0
  76. package/lib/canaries/props/CanaryTestProps.js +3 -0
  77. package/lib/canaries/props/NetworkConfigurationProps.d.ts +16 -0
  78. package/lib/canaries/props/NetworkConfigurationProps.js +3 -0
  79. package/lib/canaries/src/canary.zip +0 -0
  80. package/lib/dashboards/BasicServiceDashboard.d.ts +10 -0
  81. package/lib/dashboards/BasicServiceDashboard.js +130 -0
  82. package/lib/dashboards/ContributorInsightsWidget.d.ts +22 -0
  83. package/lib/dashboards/ContributorInsightsWidget.js +55 -0
  84. package/lib/dashboards/IOperationAvailabilityAndLatencyDashboard.d.ts +10 -0
  85. package/lib/dashboards/IOperationAvailabilityAndLatencyDashboard.js +3 -0
  86. package/lib/dashboards/IServiceAvailabilityAndLatencyDashboard.d.ts +10 -0
  87. package/lib/dashboards/IServiceAvailabilityAndLatencyDashboard.js +3 -0
  88. package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.d.ts +20 -0
  89. package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +588 -0
  90. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.d.ts +24 -0
  91. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +475 -0
  92. package/lib/dashboards/props/BasicServiceDashboardProps.d.ts +23 -0
  93. package/lib/dashboards/props/BasicServiceDashboardProps.js +3 -0
  94. package/lib/dashboards/props/ContributorInsightWidgetProps.d.ts +31 -0
  95. package/lib/dashboards/props/ContributorInsightWidgetProps.js +3 -0
  96. package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.d.ts +84 -0
  97. package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.js +3 -0
  98. package/lib/dashboards/props/OperationAvailabilityWidgetProps.d.ts +37 -0
  99. package/lib/dashboards/props/OperationAvailabilityWidgetProps.js +3 -0
  100. package/lib/dashboards/props/OperationLatencyWidgetProps.d.ts +37 -0
  101. package/lib/dashboards/props/OperationLatencyWidgetProps.js +3 -0
  102. package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.d.ts +30 -0
  103. package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.js +3 -0
  104. package/lib/index.d.ts +35 -0
  105. package/lib/index.js +30 -0
  106. package/lib/metrics/ApplicationLoadBalancerMetrics.d.ts +36 -0
  107. package/lib/metrics/ApplicationLoadBalancerMetrics.js +150 -0
  108. package/lib/metrics/AvailabilityAndLatencyMetrics.d.ts +61 -0
  109. package/lib/metrics/AvailabilityAndLatencyMetrics.js +212 -0
  110. package/lib/metrics/NetworkLoadBalancerMetrics.d.ts +19 -0
  111. package/lib/metrics/NetworkLoadBalancerMetrics.js +48 -0
  112. package/lib/metrics/RegionalAvailabilityMetrics.d.ts +19 -0
  113. package/lib/metrics/RegionalAvailabilityMetrics.js +71 -0
  114. package/lib/metrics/RegionalLatencyMetrics.d.ts +33 -0
  115. package/lib/metrics/RegionalLatencyMetrics.js +69 -0
  116. package/lib/metrics/ZonalAvailabilityMetrics.d.ts +19 -0
  117. package/lib/metrics/ZonalAvailabilityMetrics.js +71 -0
  118. package/lib/metrics/ZonalLatencyMetrics.d.ts +29 -0
  119. package/lib/metrics/ZonalLatencyMetrics.js +65 -0
  120. package/lib/metrics/props/AvailabilityAndLatencyMetricProps.d.ts +23 -0
  121. package/lib/metrics/props/AvailabilityAndLatencyMetricProps.js +3 -0
  122. package/lib/metrics/props/AvailabilityMetricProps.d.ts +11 -0
  123. package/lib/metrics/props/AvailabilityMetricProps.js +3 -0
  124. package/lib/metrics/props/LatencyMetricProps.d.ts +15 -0
  125. package/lib/metrics/props/LatencyMetricProps.js +3 -0
  126. package/lib/metrics/props/RegionalAvailabilityMetricProps.d.ts +6 -0
  127. package/lib/metrics/props/RegionalAvailabilityMetricProps.js +3 -0
  128. package/lib/metrics/props/RegionalLatencyMetricProps.d.ts +6 -0
  129. package/lib/metrics/props/RegionalLatencyMetricProps.js +3 -0
  130. package/lib/metrics/props/ServiceAvailabilityMetricProps.d.ts +23 -0
  131. package/lib/metrics/props/ServiceAvailabilityMetricProps.js +3 -0
  132. package/lib/metrics/props/ServiceLatencyMericProps.d.ts +23 -0
  133. package/lib/metrics/props/ServiceLatencyMericProps.js +3 -0
  134. package/lib/metrics/props/ZonalAvailabilityMetricProps.d.ts +10 -0
  135. package/lib/metrics/props/ZonalAvailabilityMetricProps.js +3 -0
  136. package/lib/metrics/props/ZonalLatencyMetricProps.d.ts +10 -0
  137. package/lib/metrics/props/ZonalLatencyMetricProps.js +3 -0
  138. package/lib/monitoring/src/monitoring-layer.zip +0 -0
  139. package/lib/outlier-detection/IOutlierDetectionFunction.d.ts +12 -0
  140. package/lib/outlier-detection/IOutlierDetectionFunction.js +3 -0
  141. package/lib/outlier-detection/OutlierDetectionFunction.d.ts +16 -0
  142. package/lib/outlier-detection/OutlierDetectionFunction.js +126 -0
  143. package/lib/outlier-detection/props/OutlierDetectionFunctionProps.d.ts +12 -0
  144. package/lib/outlier-detection/props/OutlierDetectionFunctionProps.js +3 -0
  145. package/lib/outlier-detection/src/outlier-detection.zip +0 -0
  146. package/lib/outlier-detection/src/scipy-layer.zip +0 -0
  147. package/lib/services/BasicServiceMultiAZObservability.d.ts +64 -0
  148. package/lib/services/BasicServiceMultiAZObservability.js +504 -0
  149. package/lib/services/CanaryMetrics.d.ts +17 -0
  150. package/lib/services/CanaryMetrics.js +19 -0
  151. package/lib/services/CanaryTestMetricsOverride.d.ts +39 -0
  152. package/lib/services/CanaryTestMetricsOverride.js +23 -0
  153. package/lib/services/ContributorInsightRuleDetails.d.ts +42 -0
  154. package/lib/services/ContributorInsightRuleDetails.js +23 -0
  155. package/lib/services/IBasicServiceMultiAZObservability.d.ts +45 -0
  156. package/lib/services/IBasicServiceMultiAZObservability.js +3 -0
  157. package/lib/services/ICanaryMetrics.d.ts +14 -0
  158. package/lib/services/ICanaryMetrics.js +3 -0
  159. package/lib/services/ICanaryTestMetricsOverride.d.ts +36 -0
  160. package/lib/services/ICanaryTestMetricsOverride.js +3 -0
  161. package/lib/services/IContributorInsightRuleDetails.d.ts +38 -0
  162. package/lib/services/IContributorInsightRuleDetails.js +3 -0
  163. package/lib/services/IInstrumentedServiceMultiAZObservability.d.ts +39 -0
  164. package/lib/services/IInstrumentedServiceMultiAZObservability.js +3 -0
  165. package/lib/services/IOperation.d.ts +75 -0
  166. package/lib/services/IOperation.js +3 -0
  167. package/lib/services/IOperationMetricDetails.d.ts +78 -0
  168. package/lib/services/IOperationMetricDetails.js +3 -0
  169. package/lib/services/IService.d.ts +76 -0
  170. package/lib/services/IService.js +3 -0
  171. package/lib/services/IServiceMetricDetails.d.ts +68 -0
  172. package/lib/services/IServiceMetricDetails.js +3 -0
  173. package/lib/services/InstrumentedServiceMultiAZObservability.d.ts +55 -0
  174. package/lib/services/InstrumentedServiceMultiAZObservability.js +310 -0
  175. package/lib/services/Operation.d.ts +78 -0
  176. package/lib/services/Operation.js +34 -0
  177. package/lib/services/OperationMetricDetails.d.ts +82 -0
  178. package/lib/services/OperationMetricDetails.js +50 -0
  179. package/lib/services/Service.d.ts +80 -0
  180. package/lib/services/Service.js +36 -0
  181. package/lib/services/ServiceMetricDetails.d.ts +71 -0
  182. package/lib/services/ServiceMetricDetails.js +28 -0
  183. package/lib/services/props/BasicServiceMultiAZObservabilityProps.d.ts +126 -0
  184. package/lib/services/props/BasicServiceMultiAZObservabilityProps.js +3 -0
  185. package/lib/services/props/CanaryMetricProps.d.ts +14 -0
  186. package/lib/services/props/CanaryMetricProps.js +3 -0
  187. package/lib/services/props/CanaryTestMetricsOverrideProps.d.ts +47 -0
  188. package/lib/services/props/CanaryTestMetricsOverrideProps.js +3 -0
  189. package/lib/services/props/ContributorInsightRuleDetailsProps.d.ts +38 -0
  190. package/lib/services/props/ContributorInsightRuleDetailsProps.js +3 -0
  191. package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.d.ts +88 -0
  192. package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.js +3 -0
  193. package/lib/services/props/MetricDimensions.d.ts +61 -0
  194. package/lib/services/props/MetricDimensions.js +63 -0
  195. package/lib/services/props/OperationMetricDetailsProps.d.ts +97 -0
  196. package/lib/services/props/OperationMetricDetailsProps.js +3 -0
  197. package/lib/services/props/OperationProps.d.ts +93 -0
  198. package/lib/services/props/OperationProps.js +3 -0
  199. package/lib/services/props/ServiceMetricDetailsProps.d.ts +68 -0
  200. package/lib/services/props/ServiceMetricDetailsProps.js +3 -0
  201. package/lib/services/props/ServiceProps.d.ts +69 -0
  202. package/lib/services/props/ServiceProps.js +3 -0
  203. package/lib/utilities/AvailabilityMetricType.d.ts +26 -0
  204. package/lib/utilities/AvailabilityMetricType.js +33 -0
  205. package/lib/utilities/LatencyMetricType.d.ts +13 -0
  206. package/lib/utilities/LatencyMetricType.js +20 -0
  207. package/lib/utilities/OutlierDetectionAlgorithm.d.ts +42 -0
  208. package/lib/utilities/OutlierDetectionAlgorithm.js +49 -0
  209. package/lib/utilities/StackWithDynamicSource.d.ts +14 -0
  210. package/lib/utilities/StackWithDynamicSource.js +82 -0
  211. package/package.json +176 -0
  212. package/rosetta/default.ts-fixture +13 -0
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9wcy9CYXNpY1NlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eVByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENmbk5hdEdhdGV3YXkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCB7IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvT3V0bGllckRldGVjdGlvbkFsZ29yaXRobSc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBiYXNpYyBzZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcyB7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEEgbWFwIG9mIEF2YWlsYWJpbGl0eSBab25lIG5hbWUgdG8gdGhlIE5BVCBHYXRld2F5c1xuICAgKiBpbiB0aGF0IEFaXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWxhcm1zIGZvciBOQVQgR2F0ZXdheXMgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBuYXRHYXRld2F5cz86IHsgW2tleTogc3RyaW5nXTogQ2ZuTmF0R2F0ZXdheVtdIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VycyBiZWluZyB1c2VkIGJ5IHRoZSBzZXJ2aWNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWxhcm1zIGZvciBBTEJzIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJzPzogSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyW107XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlJ3MgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG91dGxpZXIgdGhyZXNob2xkIGZvciBkZXRlcm1pbmluZyBpZiBhbiBBWiBpcyBhblxuICAgKiBvdXRsaWVyIGZvciBsYXRlbmN5IG9yIGZhdWx0cy4gVGhpcyBudW1iZXIgaXMgaW50ZXJwcmV0ZWRcbiAgICogZGlmZmVyZW50bHkgZm9yIGRpZmZlcmVudCBvdXRsaWVyIGFsZ29yaXRobXMuIFdoZW4gdXNlZCB3aXRoXG4gICAqIFNUQVRJQywgdGhlIG51bWJlciBzaG91bGQgYmUgYmV0d2VlbiAwIGFuZCAxIHRvIHJlcHJlc2VudCB0aGVcbiAgICogcGVyY2VudGFnZSBvZiBlcnJvcnMgKGxpa2UgLjcpIHRoYXQgYW4gQVogbXVzdCBiZSByZXNwb25zaWJsZVxuICAgKiBmb3IgdG8gYmUgY29uc2lkZXJlZCBhbiBvdXRsaWVyLiBXaGVuIHVzZWQgd2l0aCBDSElfU1FVQVJFRCwgaXRcbiAgICogcmVwcmVzZW50cyB0aGUgcCB2YWx1ZSB0aGF0IGluZGljYXRlcyBzdGF0aXN0aWNhbCBzaWduaWZpY2FuY2UsIGxpa2VcbiAgICogMC4wNSB3aGljaCBtZWFucyB0aGUgc2tldyBoYXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGEgNSUgY2hhbmNlIG9mXG4gICAqIG9jY3VyaW5nLiBXaGVuIHVzZWQgd2l0aCBaX1NDT1JFIGl0IGluZGljYXRlcyBob3cgbWFueSBzdGFuZGFyZFxuICAgKiBkZXZpYXRpb25zIHRvIGV2YWx1YXRlIGZvciBhbiBBWiBiZWluZyBhbiBvdXRsaWVyLCB0eXBpY2FsbHkgMyBpc1xuICAgKiBzdGFuZGFyZCBmb3IgWl9TQ09SRS5cbiAgICpcbiAgICogU3RhbmRhcmQgZGVmYXVsdHMgYmFzZWQgb24gdGhlIG91dGxpZXIgZGV0ZWN0aW9uIGFsZ29yaXRobTpcbiAgICogU1RBVElDOiAwLjdcbiAgICogQ0hJX1NRVUFSRUQ6IDAuMDVcbiAgICogWl9TQ09SRTogMlxuICAgKiBJUVI6IDEuNVxuICAgKiBNQUQ6IDNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXBlbmRzIG9uIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBhbGdvcml0aG0gc2VsZWN0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG91dGxpZXJUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgcGFja2V0IGxvc3MgaW4gYSBOQVQgR1cgdG8gZGV0ZXJtaW5lIGlmIGFuIEFaXG4gICAqIGlzIGFjdHVhbGx5IGltcGFjdGVkLCByZWNvbW1lbmRhdGlvbiBpcyAwLjAxJVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDAuMDEgKGFzIGluIDAuMDElKVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2V0TG9zc0ltcGFjdFBlcmNlbnRhZ2VUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJjZW50YWdlIG9mIGZhdWx0cyBmb3IgYSBzaW5nbGUgQUxCIHRvIGNvbnNpZGVyIGFuIEFaXG4gICAqIHRvIGJlIHVuaGVhbHRoeSwgdGhpcyBzaG91bGQgYWxpZ24gd2l0aCB5b3VyIGF2YWlsYWJpbGl0eSBnb2FsLiBGb3IgZXhhbXBsZVxuICAgKiAxJSBvciA1JS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSA1IChhcyBpbiA1JSlcbiAgICovXG4gIHJlYWRvbmx5IGZhdWx0Q291bnRQZXJjZW50YWdlVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxnb3JpdGhtIHRvIHVzZSBmb3IgcGVyZm9ybWluZyBvdXRsaWVyIGRldGVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgb3V0bGllckRldGVjdGlvbkFsZ29yaXRobTogT3V0bGllckRldGVjdGlvbkFsZ29yaXRobTtcblxuICAvKipcbiAgICogVGhlIHBlcmlvZCB0byBldmFsdWF0ZSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q6IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNyZWF0ZSBhIGRhc2hib2FyZCBkaXNwbGF5aW5nIHRoZSBtZXRyaWNzIGFuZCBhbGFybXNcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZURhc2hib2FyZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGFzaGJvYXJkIGludGVydmFsXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMSBob3VyXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiB5b3UgYXJlIG5vdCB1c2luZyBhIHN0YXRpYyBidWNrZXQgdG8gZGVwbG95IGFzc2V0cywgZm9yIGV4YW1wbGVcbiAgICogeW91IGFyZSBzeW50aGluZyB0aGlzIGFuZCBpdCBnZXRzIHVwbG9hZGVkIHRvIGEgYnVja2V0IHdob3NlIG5hbWVcbiAgICogaXMgdW5rbm93biB0byB5b3UgKG1heWJlIHVzZWQgYXMgcGFydCBvZiBhIGNlbnRyYWwgQ0kvQ0Qgc3lzdGVtKVxuICAgKiBhbmQgaXMgcHJvdmlkZWQgYXMgYSBwYXJhbWV0ZXIgdG8geW91ciBzdGFjaywgc3BlY2lmeSB0aGF0IHBhcmFtZXRlclxuICAgKiBuYW1lIGhlcmUuIEl0IHdpbGwgb3ZlcnJpZGUgdGhlIGJ1Y2tldCBsb2NhdGlvbiBDREsgcHJvdmlkZXMgYnlcbiAgICogZGVmYXVsdCBmb3IgYnVuZGxlZCBhc3NldHMuIFRoZSBzdGFjayBjb250YWluaW5nIHRoaXMgY29udHJ1Y3QgbmVlZHNcbiAgICogdG8gaGF2ZSBhIHBhcmFtZXRlciBkZWZpbmVkIHRoYXQgdXNlcyB0aGlzIG5hbWUuIFRoZSB1bmRlcmx5aW5nXG4gICAqIHN0YWNrcyBpbiB0aGlzIGNvbnN0cnVjdCB0aGF0IGRlcGxveSBhc3NldHMgd2lsbCBjb3B5IHRoZSBwYXJlbnQgc3RhY2snc1xuICAgKiB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgYXNzZXRzIHdpbGwgYmUgdXBsb2FkZWQgdG8gdGhlIGRlZmF1bHQgZGVmaW5lZFxuICAgKiBhc3NldCBsb2NhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c0J1Y2tldFBhcmFtZXRlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHlvdSBhcmUgbm90IHVzaW5nIGEgc3RhdGljIGJ1Y2tldCB0byBkZXBsb3kgYXNzZXRzLCBmb3IgZXhhbXBsZVxuICAgKiB5b3UgYXJlIHN5bnRoaW5nIHRoaXMgYW5kIGl0IGdldHMgdXBsb2FkZWQgdG8gYSBidWNrZXQgdGhhdCB1c2VzIGEgcHJlZml4XG4gICAqIHRoYXQgaXMgdW5rbm93biB0byB5b3UgKG1heWJlIHVzZWQgYXMgcGFydCBvZiBhIGNlbnRyYWwgQ0kvQ0Qgc3lzdGVtKVxuICAgKiBhbmQgaXMgcHJvdmlkZWQgYXMgYSBwYXJhbWV0ZXIgdG8geW91ciBzdGFjaywgc3BlY2lmeSB0aGF0IHBhcmFtZXRlclxuICAgKiBuYW1lIGhlcmUuIEl0IHdpbGwgb3ZlcnJpZGUgdGhlIGJ1Y2tldCBwcmVmaXggQ0RLIHByb3ZpZGVzIGJ5XG4gICAqIGRlZmF1bHQgZm9yIGJ1bmRsZWQgYXNzZXRzLiBUaGlzIHByb3BlcnR5IG9ubHkgdGFrZXMgZWZmZWN0IGlmIHlvdVxuICAgKiBkZWZpbmVkIHRoZSBhc3NldHNCdWNrZXRQYXJhbWV0ZXJOYW1lLiBUaGUgc3RhY2sgY29udGFpbmluZyB0aGlzIGNvbnRydWN0IG5lZWRzXG4gICAqIHRvIGhhdmUgYSBwYXJhbWV0ZXIgZGVmaW5lZCB0aGF0IHVzZXMgdGhpcyBuYW1lLiBUaGUgdW5kZXJseWluZ1xuICAgKiBzdGFja3MgaW4gdGhpcyBjb25zdHJ1Y3QgdGhhdCBkZXBsb3kgYXNzZXRzIHdpbGwgY29weSB0aGUgcGFyZW50IHN0YWNrJ3NcbiAgICogdmFsdWUgZm9yIHRoaXMgcHJvcGVydHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gb2JqZWN0IHByZWZpeCB3aWxsIGJlIGFkZGVkIHRvIHlvdXIgY3VzdG9tIGFzc2V0cyBsb2NhdGlvbi5cbiAgICogSG93ZXZlciwgaWYgeW91IGhhdmUgb3ZlcnJpZGRlbiBzb21ldGhpbmcgbGlrZSB0aGUgJ0J1Y2tldFByZWZpeCcgcHJvcGVydHlcbiAgICogaW4geW91ciBzdGFjayBzeW50aGVzaXplciB3aXRoIGEgdmFyaWFibGUgbGlrZSBcIiR7QXNzZXRzQnVja2V0UHJlZml4XCIsXG4gICAqIHlvdSB3aWxsIG5lZWQgdG8gZGVmaW5lIHRoaXMgcHJvcGVydHkgc28gaXQgZG9lc24ndCBjYXVzZSBhIHJlZmVyZW5jZSBlcnJvclxuICAgKiBldmVuIGlmIHRoZSBwcmVmaXggdmFsdWUgaXMgYmxhbmsuXG4gICAqL1xuICByZWFkb25seSBhc3NldHNCdWNrZXRQcmVmaXhQYXJhbWV0ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGV2YWx1YXRpb24gcGVyaW9kcyBmb3IgbGF0ZW5jeSBhbmQgYXZhaWxhYmlsdGl5IGFsYXJtc1xuICAgKi9cbiAgcmVhZG9ubHkgZXZhbHVhdGlvblBlcmlvZHM6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXRhcG9pbnRzIHRvIGFsYXJtIG9uIGZvciBsYXRlbmN5IGFuZCBhdmFpbGFiaWxpdHkgYWxhcm1zXG4gICAqL1xuICByZWFkb25seSBkYXRhcG9pbnRzVG9BbGFybTogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,14 @@
1
+ import { IOperationMetricDetails } from '../IOperationMetricDetails';
2
+ /**
3
+ * Properties for canary metrics in an operation
4
+ */
5
+ export interface CanaryMetricProps {
6
+ /**
7
+ * The canary availability metric details
8
+ */
9
+ readonly canaryAvailabilityMetricDetails: IOperationMetricDetails;
10
+ /**
11
+ * The canary latency metric details
12
+ */
13
+ readonly canaryLatencyMetricDetails: IOperationMetricDetails;
14
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5TWV0cmljUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcHJvcHMvQ2FuYXJ5TWV0cmljUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IElPcGVyYXRpb25NZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi4vSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNhbmFyeSBtZXRyaWNzIGluIGFuIG9wZXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbmFyeU1ldHJpY1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgYXZhaWxhYmlsaXR5IG1ldHJpYyBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzOiBJT3BlcmF0aW9uTWV0cmljRGV0YWlscztcblxuICAvKipcbiAgICogVGhlIGNhbmFyeSBsYXRlbmN5IG1ldHJpYyBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsczogSU9wZXJhdGlvbk1ldHJpY0RldGFpbHM7XG59XG4iXX0=
@@ -0,0 +1,47 @@
1
+ import { Duration } from 'aws-cdk-lib';
2
+ /**
3
+ * The properties for creating an override
4
+ */
5
+ export interface CanaryTestMetricsOverrideProps {
6
+ /**
7
+ * The statistic used for alarms, for availability metrics this should
8
+ * be "Sum", for latency metrics it could something like "p99" or "p99.9"
9
+ *
10
+ * @default - This property will use the default defined for the service
11
+ */
12
+ readonly alarmStatistic?: string;
13
+ /**
14
+ * The period for the metrics
15
+ *
16
+ * @default - This property will use the default defined for the service
17
+ */
18
+ readonly period?: Duration;
19
+ /**
20
+ * The number of evaluation periods for latency and availabiltiy alarms
21
+ *
22
+ * @default - This property will use the default defined for the service
23
+ */
24
+ readonly evaluationPeriods?: number;
25
+ /**
26
+ * The number of datapoints to alarm on for latency and availability alarms
27
+ *
28
+ * @default - This property will use the default defined for the service
29
+ */
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
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZVByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3Byb3BzL0NhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGVQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGFuIG92ZXJyaWRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWMgdXNlZCBmb3IgYWxhcm1zLCBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MgdGhpcyBzaG91bGRcbiAgICogYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCBjb3VsZCBzb21ldGhpbmcgbGlrZSBcInA5OVwiIG9yIFwicDk5LjlcIlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgcHJvcGVydHkgd2lsbCB1c2UgdGhlIGRlZmF1bHQgZGVmaW5lZCBmb3IgdGhlIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtU3RhdGlzdGljPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIGZvciB0aGUgbWV0cmljc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgcHJvcGVydHkgd2lsbCB1c2UgdGhlIGRlZmF1bHQgZGVmaW5lZCBmb3IgdGhlIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGV2YWx1YXRpb24gcGVyaW9kcyBmb3IgbGF0ZW5jeSBhbmQgYXZhaWxhYmlsdGl5IGFsYXJtc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgcHJvcGVydHkgd2lsbCB1c2UgdGhlIGRlZmF1bHQgZGVmaW5lZCBmb3IgdGhlIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgdG8gYWxhcm0gb24gZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbGl0eSBhbGFybXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGlzIHByb3BlcnR5IHdpbGwgdXNlIHRoZSBkZWZhdWx0IGRlZmluZWQgZm9yIHRoZSBzZXJ2aWNlXG4gICAqL1xuICByZWFkb25seSBkYXRhcG9pbnRzVG9BbGFybT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBzdWNjZXNzIG1ldHJpY3MsIGZvciBleGFtcGxlIGlmIG1lYXN1cmluZ1xuICAgKiBzdWNjZXNzIHJhdGUsIHRoZSB0aHJlc2hvbGQgbWF5IGJlIDk5LCBtZWFuaW5nIHlvdSB3b3VsZCB3YW50IGFuIGFsYXJtIHRoYXQgdHJpZ2dlcnNcbiAgICogaWYgc3VjY2VzcyBkcm9wcyBiZWxvdyA5OSUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhpcyBwcm9wZXJ0eSB3aWxsIHVzZSB0aGUgZGVmYXVsdCBkZWZpbmVkIGZvciB0aGUgc2VydmljZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VjY2Vzc0FsYXJtVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciBhbGFybXMgYXNzb2NpYXRlZCB3aXRoIGZhdWx0IG1ldHJpY3MsIGZvciBleGFtcGxlIGlmIG1lYXN1cmluZ1xuICAgKiBmYXVsdCByYXRlLCB0aGUgdGhyZXNob2xkIG1heSBiZSAxLCBtZWFuaW5nIHlvdSB3b3VsZCB3YW50IGFuIGFsYXJtIHRoYXQgdHJpZ2dlcnNcbiAgICogaWYgdGhlIGZhdWx0IHJhdGUgZ29lcyBhYm92ZSAxJS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGlzIHByb3BlcnR5IHdpbGwgdXNlIHRoZSBkZWZhdWx0IGRlZmluZWQgZm9yIHRoZSBzZXJ2aWNlXG4gICAqL1xuICByZWFkb25seSBmYXVsdEFsYXJtVGhyZXNob2xkPzogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,38 @@
1
+ import { ILogGroup } from 'aws-cdk-lib/aws-logs';
2
+ /**
3
+ * The contributor insight rule details properties
4
+ */
5
+ export interface ContributorInsightRuleDetailsProps {
6
+ /**
7
+ * The log groups where CloudWatch logs for the operation are located. If
8
+ * this is not provided, Contributor Insight rules cannot be created.
9
+ */
10
+ readonly logGroups: ILogGroup[];
11
+ /**
12
+ * The path in the log files to the field that indicates the latency
13
+ * for the response. This could either be success latency or fault
14
+ * latency depending on the alarms and rules you are creating.
15
+ */
16
+ readonly successLatencyMetricJsonPath: string;
17
+ /**
18
+ * The path in the log files to the field that identifies the operation
19
+ * the log file is for.
20
+ */
21
+ readonly operationNameJsonPath: string;
22
+ /**
23
+ * The path in the log files to the field that identifies if the response
24
+ * resulted in a fault, for example { "Fault" : 1 } would have a path of $.Fault
25
+ */
26
+ readonly faultMetricJsonPath: string;
27
+ /**
28
+ * The path in the log files to the field that identifies the Availability Zone
29
+ * Id that the request was handled in, for example { "AZ-ID": "use1-az1" } would
30
+ * have a path of $.AZ-ID
31
+ */
32
+ readonly availabilityZoneIdJsonPath: string;
33
+ /**
34
+ * The JSON path to the instance id field in the log files, only required for server-side
35
+ * rules
36
+ */
37
+ readonly instanceIdJsonPath: string;
38
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHNQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9wcy9Db250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsc1Byb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBJTG9nR3JvdXAgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5cbi8qKlxuICogVGhlIGNvbnRyaWJ1dG9yIGluc2lnaHQgcnVsZSBkZXRhaWxzIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsc1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBsb2cgZ3JvdXBzIHdoZXJlIENsb3VkV2F0Y2ggbG9ncyBmb3IgdGhlIG9wZXJhdGlvbiBhcmUgbG9jYXRlZC4gSWZcbiAgICogdGhpcyBpcyBub3QgcHJvdmlkZWQsIENvbnRyaWJ1dG9yIEluc2lnaHQgcnVsZXMgY2Fubm90IGJlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cHM6IElMb2dHcm91cFtdO1xuICAvKipcbiAgICogVGhlIHBhdGggaW4gdGhlIGxvZyBmaWxlcyB0byB0aGUgZmllbGQgdGhhdCBpbmRpY2F0ZXMgdGhlIGxhdGVuY3lcbiAgICogZm9yIHRoZSByZXNwb25zZS4gVGhpcyBjb3VsZCBlaXRoZXIgYmUgc3VjY2VzcyBsYXRlbmN5IG9yIGZhdWx0XG4gICAqIGxhdGVuY3kgZGVwZW5kaW5nIG9uIHRoZSBhbGFybXMgYW5kIHJ1bGVzIHlvdSBhcmUgY3JlYXRpbmcuXG4gICAqL1xuICByZWFkb25seSBzdWNjZXNzTGF0ZW5jeU1ldHJpY0pzb25QYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIGluIHRoZSBsb2cgZmlsZXMgdG8gdGhlIGZpZWxkIHRoYXQgaWRlbnRpZmllcyB0aGUgb3BlcmF0aW9uXG4gICAqIHRoZSBsb2cgZmlsZSBpcyBmb3IuXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lSnNvblBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggaW4gdGhlIGxvZyBmaWxlcyB0byB0aGUgZmllbGQgdGhhdCBpZGVudGlmaWVzIGlmIHRoZSByZXNwb25zZVxuICAgKiByZXN1bHRlZCBpbiBhIGZhdWx0LCBmb3IgZXhhbXBsZSB7IFwiRmF1bHRcIiA6IDEgfSB3b3VsZCBoYXZlIGEgcGF0aCBvZiAkLkZhdWx0XG4gICAqL1xuICByZWFkb25seSBmYXVsdE1ldHJpY0pzb25QYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIGluIHRoZSBsb2cgZmlsZXMgdG8gdGhlIGZpZWxkIHRoYXQgaWRlbnRpZmllcyB0aGUgQXZhaWxhYmlsaXR5IFpvbmVcbiAgICogSWQgdGhhdCB0aGUgcmVxdWVzdCB3YXMgaGFuZGxlZCBpbiwgZm9yIGV4YW1wbGUgeyBcIkFaLUlEXCI6IFwidXNlMS1hejFcIiB9IHdvdWxkXG4gICAqIGhhdmUgYSBwYXRoIG9mICQuQVotSURcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmVJZEpzb25QYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBKU09OIHBhdGggdG8gdGhlIGluc3RhbmNlIGlkIGZpZWxkIGluIHRoZSBsb2cgZmlsZXMsIG9ubHkgcmVxdWlyZWQgZm9yIHNlcnZlci1zaWRlXG4gICAqIHJ1bGVzXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZUlkSnNvblBhdGg6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,88 @@
1
+ import { Duration } from 'aws-cdk-lib';
2
+ import { OutlierDetectionAlgorithm } from '../../utilities/OutlierDetectionAlgorithm';
3
+ import { IService } from '../IService';
4
+ /**
5
+ * The properties for adding alarms and dashboards
6
+ * for an instrumented service.
7
+ */
8
+ export interface InstrumentedServiceMultiAZObservabilityProps {
9
+ /**
10
+ * The service that the alarms and dashboards are being crated for.
11
+ */
12
+ readonly service: IService;
13
+ /**
14
+ * Indicates whether to create per operation and overall service
15
+ * dashboards.
16
+ *
17
+ * @default - No dashboards are created
18
+ */
19
+ readonly createDashboards?: boolean;
20
+ /**
21
+ * The outlier threshold for determining if an AZ is an
22
+ * outlier for latency or faults. This number is interpreted
23
+ * differently for different outlier algorithms. When used with
24
+ * STATIC, the number should be between 0 and 1 to represent the
25
+ * percentage of errors (like .7) that an AZ must be responsible
26
+ * for to be considered an outlier. When used with CHI_SQUARED, it
27
+ * represents the p value that indicates statistical significance, like
28
+ * 0.05 which means the skew has less than or equal to a 5% chance of
29
+ * occuring. When used with Z_SCORE it indicates how many standard
30
+ * deviations to evaluate for an AZ being an outlier, typically 3 is
31
+ * standard for Z_SCORE.
32
+ *
33
+ * Standard defaults based on the outlier detection algorithm:
34
+ * STATIC: 0.7
35
+ * CHI_SQUARED: 0.05
36
+ * Z_SCORE: 2
37
+ * IQR: 1.5
38
+ * MAD: 3
39
+ *
40
+ * @default - Depends on the outlier detection algorithm selected
41
+ */
42
+ readonly outlierThreshold?: number;
43
+ /**
44
+ * The algorithm to use for performing outlier detection
45
+ */
46
+ readonly outlierDetectionAlgorithm: OutlierDetectionAlgorithm;
47
+ /**
48
+ * The interval used in the dashboard, defaults to
49
+ * 60 minutes.
50
+ *
51
+ * @default - 60 minutes
52
+ */
53
+ readonly interval?: Duration;
54
+ /**
55
+ * If you are not using a static bucket to deploy assets, for example
56
+ * you are synthing this and it gets uploaded to a bucket whose name
57
+ * is unknown to you (maybe used as part of a central CI/CD system)
58
+ * and is provided as a parameter to your stack, specify that parameter
59
+ * name here. It will override the bucket location CDK provides by
60
+ * default for bundled assets. The stack containing this contruct needs
61
+ * to have a parameter defined that uses this name. The underlying
62
+ * stacks in this construct that deploy assets will copy the parent stack's
63
+ * value for this property.
64
+ *
65
+ * @default - The assets will be uploaded to the default defined
66
+ * asset location.
67
+ */
68
+ readonly assetsBucketParameterName?: string;
69
+ /**
70
+ * If you are not using a static bucket to deploy assets, for example
71
+ * you are synthing this and it gets uploaded to a bucket that uses a prefix
72
+ * that is unknown to you (maybe used as part of a central CI/CD system)
73
+ * and is provided as a parameter to your stack, specify that parameter
74
+ * name here. It will override the bucket prefix CDK provides by
75
+ * default for bundled assets. This property only takes effect if you
76
+ * defined the assetsBucketParameterName. The stack containing this contruct needs
77
+ * to have a parameter defined that uses this name. The underlying
78
+ * stacks in this construct that deploy assets will copy the parent stack's
79
+ * value for this property.
80
+ *
81
+ * @default - No object prefix will be added to your custom assets location.
82
+ * However, if you have overridden something like the 'BucketPrefix' property
83
+ * in your stack synthesizer with a variable like "${AssetsBucketPrefix",
84
+ * you will need to define this property so it doesn't cause a reference error
85
+ * even if the prefix value is blank.
86
+ */
87
+ readonly assetsBucketPrefixParameterName?: string;
88
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcHJvcHMvSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9PdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtJztcbmltcG9ydCB7IElTZXJ2aWNlIH0gZnJvbSAnLi4vSVNlcnZpY2UnO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIGZvciBhZGRpbmcgYWxhcm1zIGFuZCBkYXNoYm9hcmRzXG4gKiBmb3IgYW4gaW5zdHJ1bWVudGVkIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhhdCB0aGUgYWxhcm1zIGFuZCBkYXNoYm9hcmRzIGFyZSBiZWluZyBjcmF0ZWQgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZTogSVNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGNyZWF0ZSBwZXIgb3BlcmF0aW9uIGFuZCBvdmVyYWxsIHNlcnZpY2VcbiAgICogZGFzaGJvYXJkcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkYXNoYm9hcmRzIGFyZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVEYXNoYm9hcmRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG91dGxpZXIgdGhyZXNob2xkIGZvciBkZXRlcm1pbmluZyBpZiBhbiBBWiBpcyBhblxuICAgKiBvdXRsaWVyIGZvciBsYXRlbmN5IG9yIGZhdWx0cy4gVGhpcyBudW1iZXIgaXMgaW50ZXJwcmV0ZWRcbiAgICogZGlmZmVyZW50bHkgZm9yIGRpZmZlcmVudCBvdXRsaWVyIGFsZ29yaXRobXMuIFdoZW4gdXNlZCB3aXRoXG4gICAqIFNUQVRJQywgdGhlIG51bWJlciBzaG91bGQgYmUgYmV0d2VlbiAwIGFuZCAxIHRvIHJlcHJlc2VudCB0aGVcbiAgICogcGVyY2VudGFnZSBvZiBlcnJvcnMgKGxpa2UgLjcpIHRoYXQgYW4gQVogbXVzdCBiZSByZXNwb25zaWJsZVxuICAgKiBmb3IgdG8gYmUgY29uc2lkZXJlZCBhbiBvdXRsaWVyLiBXaGVuIHVzZWQgd2l0aCBDSElfU1FVQVJFRCwgaXRcbiAgICogcmVwcmVzZW50cyB0aGUgcCB2YWx1ZSB0aGF0IGluZGljYXRlcyBzdGF0aXN0aWNhbCBzaWduaWZpY2FuY2UsIGxpa2VcbiAgICogMC4wNSB3aGljaCBtZWFucyB0aGUgc2tldyBoYXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGEgNSUgY2hhbmNlIG9mXG4gICAqIG9jY3VyaW5nLiBXaGVuIHVzZWQgd2l0aCBaX1NDT1JFIGl0IGluZGljYXRlcyBob3cgbWFueSBzdGFuZGFyZFxuICAgKiBkZXZpYXRpb25zIHRvIGV2YWx1YXRlIGZvciBhbiBBWiBiZWluZyBhbiBvdXRsaWVyLCB0eXBpY2FsbHkgMyBpc1xuICAgKiBzdGFuZGFyZCBmb3IgWl9TQ09SRS5cbiAgICpcbiAgICogU3RhbmRhcmQgZGVmYXVsdHMgYmFzZWQgb24gdGhlIG91dGxpZXIgZGV0ZWN0aW9uIGFsZ29yaXRobTpcbiAgICogU1RBVElDOiAwLjdcbiAgICogQ0hJX1NRVUFSRUQ6IDAuMDVcbiAgICogWl9TQ09SRTogMlxuICAgKiBJUVI6IDEuNVxuICAgKiBNQUQ6IDNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXBlbmRzIG9uIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBhbGdvcml0aG0gc2VsZWN0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG91dGxpZXJUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGdvcml0aG0gdG8gdXNlIGZvciBwZXJmb3JtaW5nIG91dGxpZXIgZGV0ZWN0aW9uXG4gICAqL1xuICByZWFkb25seSBvdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtOiBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtO1xuXG4gIC8qKlxuICAgKiBUaGUgaW50ZXJ2YWwgdXNlZCBpbiB0aGUgZGFzaGJvYXJkLCBkZWZhdWx0cyB0b1xuICAgKiA2MCBtaW51dGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDYwIG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIElmIHlvdSBhcmUgbm90IHVzaW5nIGEgc3RhdGljIGJ1Y2tldCB0byBkZXBsb3kgYXNzZXRzLCBmb3IgZXhhbXBsZVxuICAgKiB5b3UgYXJlIHN5bnRoaW5nIHRoaXMgYW5kIGl0IGdldHMgdXBsb2FkZWQgdG8gYSBidWNrZXQgd2hvc2UgbmFtZVxuICAgKiBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IGxvY2F0aW9uIENESyBwcm92aWRlcyBieVxuICAgKiBkZWZhdWx0IGZvciBidW5kbGVkIGFzc2V0cy4gVGhlIHN0YWNrIGNvbnRhaW5pbmcgdGhpcyBjb250cnVjdCBuZWVkc1xuICAgKiB0byBoYXZlIGEgcGFyYW1ldGVyIGRlZmluZWQgdGhhdCB1c2VzIHRoaXMgbmFtZS4gVGhlIHVuZGVybHlpbmdcbiAgICogc3RhY2tzIGluIHRoaXMgY29uc3RydWN0IHRoYXQgZGVwbG95IGFzc2V0cyB3aWxsIGNvcHkgdGhlIHBhcmVudCBzdGFjaydzXG4gICAqIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBhc3NldHMgd2lsbCBiZSB1cGxvYWRlZCB0byB0aGUgZGVmYXVsdCBkZWZpbmVkXG4gICAqIGFzc2V0IGxvY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRzQnVja2V0UGFyYW1ldGVyTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgeW91IGFyZSBub3QgdXNpbmcgYSBzdGF0aWMgYnVja2V0IHRvIGRlcGxveSBhc3NldHMsIGZvciBleGFtcGxlXG4gICAqIHlvdSBhcmUgc3ludGhpbmcgdGhpcyBhbmQgaXQgZ2V0cyB1cGxvYWRlZCB0byBhIGJ1Y2tldCB0aGF0IHVzZXMgYSBwcmVmaXhcbiAgICogdGhhdCBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IHByZWZpeCBDREsgcHJvdmlkZXMgYnlcbiAgICogZGVmYXVsdCBmb3IgYnVuZGxlZCBhc3NldHMuIFRoaXMgcHJvcGVydHkgb25seSB0YWtlcyBlZmZlY3QgaWYgeW91XG4gICAqIGRlZmluZWQgdGhlIGFzc2V0c0J1Y2tldFBhcmFtZXRlck5hbWUuIFRoZSBzdGFjayBjb250YWluaW5nIHRoaXMgY29udHJ1Y3QgbmVlZHNcbiAgICogdG8gaGF2ZSBhIHBhcmFtZXRlciBkZWZpbmVkIHRoYXQgdXNlcyB0aGlzIG5hbWUuIFRoZSB1bmRlcmx5aW5nXG4gICAqIHN0YWNrcyBpbiB0aGlzIGNvbnN0cnVjdCB0aGF0IGRlcGxveSBhc3NldHMgd2lsbCBjb3B5IHRoZSBwYXJlbnQgc3RhY2snc1xuICAgKiB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBvYmplY3QgcHJlZml4IHdpbGwgYmUgYWRkZWQgdG8geW91ciBjdXN0b20gYXNzZXRzIGxvY2F0aW9uLlxuICAgKiBIb3dldmVyLCBpZiB5b3UgaGF2ZSBvdmVycmlkZGVuIHNvbWV0aGluZyBsaWtlIHRoZSAnQnVja2V0UHJlZml4JyBwcm9wZXJ0eVxuICAgKiBpbiB5b3VyIHN0YWNrIHN5bnRoZXNpemVyIHdpdGggYSB2YXJpYWJsZSBsaWtlIFwiJHtBc3NldHNCdWNrZXRQcmVmaXhcIixcbiAgICogeW91IHdpbGwgbmVlZCB0byBkZWZpbmUgdGhpcyBwcm9wZXJ0eSBzbyBpdCBkb2Vzbid0IGNhdXNlIGEgcmVmZXJlbmNlIGVycm9yXG4gICAqIGV2ZW4gaWYgdGhlIHByZWZpeCB2YWx1ZSBpcyBibGFuay5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWU/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Provides the ability to get operation specific metric dimensions
3
+ * for metrics at the regional level as well as Availability Zone level
4
+ */
5
+ export declare class MetricDimensions {
6
+ /**
7
+ * The dimensions that are the same for all Availability Zones for example:
8
+ * {
9
+ * "Operation": "ride",
10
+ * "Service": "WildRydes"
11
+ * }
12
+ */
13
+ staticDimensions: {
14
+ [key: string]: string;
15
+ };
16
+ /**
17
+ * The key used to specify an Availability Zone specific metric dimension, for
18
+ * example: "AZ-ID"
19
+ */
20
+ availabilityZoneIdKey: string;
21
+ /**
22
+ * The key used for the Region in your dimensions, if you provide one.
23
+ *
24
+ * @default - A region specific key and value is not added to your
25
+ * zonal and regional metric dimensions
26
+ */
27
+ regionKey?: string;
28
+ constructor(staticDimensions: {
29
+ [key: string]: string;
30
+ }, availabilityZoneIdKey: string, regionKey?: string);
31
+ /**
32
+ * Gets the zonal dimensions for these metrics by combining the static
33
+ * metric dimensions with the keys provided for Availability Zone and
34
+ * optional Region, expected to return something like
35
+ * {
36
+ * "Region": "us-east-1",
37
+ * "AZ-ID": "use1-az1",
38
+ * "Operation": "ride",
39
+ * "Service": "WildRydes"
40
+ * }
41
+ * @param availabilityZoneId
42
+ * @param region
43
+ */
44
+ zonalDimensions(availabilityZoneId: string, region: string): {
45
+ [key: string]: string;
46
+ };
47
+ /**
48
+ * Gets the regional dimensions for these metrics by combining the static
49
+ * metric dimensions with the keys provided the optional Region key,
50
+ * expected to return something like
51
+ * {
52
+ * "Region": "us-east-1",
53
+ * "Operation": "ride",
54
+ * "Service": "WildRydes"
55
+ * }
56
+ * @param region
57
+ */
58
+ regionalDimensions(region: string): {
59
+ [key: string]: string;
60
+ };
61
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MetricDimensions = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
+ // SPDX-License-Identifier: Apache-2.0
8
+ /**
9
+ * Provides the ability to get operation specific metric dimensions
10
+ * for metrics at the regional level as well as Availability Zone level
11
+ */
12
+ class MetricDimensions {
13
+ constructor(staticDimensions, availabilityZoneIdKey, regionKey) {
14
+ this.staticDimensions = staticDimensions;
15
+ this.availabilityZoneIdKey = availabilityZoneIdKey;
16
+ this.regionKey = regionKey;
17
+ }
18
+ /**
19
+ * Gets the zonal dimensions for these metrics by combining the static
20
+ * metric dimensions with the keys provided for Availability Zone and
21
+ * optional Region, expected to return something like
22
+ * {
23
+ * "Region": "us-east-1",
24
+ * "AZ-ID": "use1-az1",
25
+ * "Operation": "ride",
26
+ * "Service": "WildRydes"
27
+ * }
28
+ * @param availabilityZoneId
29
+ * @param region
30
+ */
31
+ zonalDimensions(availabilityZoneId, region) {
32
+ let tmp = {};
33
+ Object.assign(tmp, this.staticDimensions);
34
+ tmp[this.availabilityZoneIdKey] = availabilityZoneId;
35
+ if (this.regionKey !== undefined) {
36
+ tmp[this.regionKey] = region;
37
+ }
38
+ return tmp;
39
+ }
40
+ /**
41
+ * Gets the regional dimensions for these metrics by combining the static
42
+ * metric dimensions with the keys provided the optional Region key,
43
+ * expected to return something like
44
+ * {
45
+ * "Region": "us-east-1",
46
+ * "Operation": "ride",
47
+ * "Service": "WildRydes"
48
+ * }
49
+ * @param region
50
+ */
51
+ regionalDimensions(region) {
52
+ let tmp = {};
53
+ Object.assign(tmp, this.staticDimensions);
54
+ if (this.regionKey !== undefined) {
55
+ tmp[this.regionKey] = region;
56
+ }
57
+ return tmp;
58
+ }
59
+ }
60
+ exports.MetricDimensions = MetricDimensions;
61
+ _a = JSII_RTTI_SYMBOL_1;
62
+ MetricDimensions[_a] = { fqn: "@cdklabs/multi-az-observability.MetricDimensions", version: "0.0.0-alpha.0" };
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljRGltZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9wcy9NZXRyaWNEaW1lbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUV0Qzs7O0dBR0c7QUFDSCxNQUFhLGdCQUFnQjtJQXdCM0IsWUFDRSxnQkFBMkMsRUFDM0MscUJBQTZCLEVBQzdCLFNBQWtCO1FBRWxCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILGVBQWUsQ0FDYixrQkFBMEIsRUFDMUIsTUFBYztRQUVkLElBQUksR0FBRyxHQUE4QixFQUFFLENBQUM7UUFDeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDMUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO1FBRXJELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUMvQixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILGtCQUFrQixDQUFDLE1BQWM7UUFDL0IsSUFBSSxHQUFHLEdBQThCLEVBQUUsQ0FBQztRQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUUxQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDL0IsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7QUFsRkgsNENBbUZDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGdldCBvcGVyYXRpb24gc3BlY2lmaWMgbWV0cmljIGRpbWVuc2lvbnNcbiAqIGZvciBtZXRyaWNzIGF0IHRoZSByZWdpb25hbCBsZXZlbCBhcyB3ZWxsIGFzIEF2YWlsYWJpbGl0eSBab25lIGxldmVsXG4gKi9cbmV4cG9ydCBjbGFzcyBNZXRyaWNEaW1lbnNpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBkaW1lbnNpb25zIHRoYXQgYXJlIHRoZSBzYW1lIGZvciBhbGwgQXZhaWxhYmlsaXR5IFpvbmVzIGZvciBleGFtcGxlOlxuICAgKiB7XG4gICAqICAgXCJPcGVyYXRpb25cIjogXCJyaWRlXCIsXG4gICAqICAgXCJTZXJ2aWNlXCI6IFwiV2lsZFJ5ZGVzXCJcbiAgICogfVxuICAgKi9cbiAgc3RhdGljRGltZW5zaW9uczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIGtleSB1c2VkIHRvIHNwZWNpZnkgYW4gQXZhaWxhYmlsaXR5IFpvbmUgc3BlY2lmaWMgbWV0cmljIGRpbWVuc2lvbiwgZm9yXG4gICAqIGV4YW1wbGU6IFwiQVotSURcIlxuICAgKi9cbiAgYXZhaWxhYmlsaXR5Wm9uZUlkS2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBrZXkgdXNlZCBmb3IgdGhlIFJlZ2lvbiBpbiB5b3VyIGRpbWVuc2lvbnMsIGlmIHlvdSBwcm92aWRlIG9uZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIHJlZ2lvbiBzcGVjaWZpYyBrZXkgYW5kIHZhbHVlIGlzIG5vdCBhZGRlZCB0byB5b3VyXG4gICAqIHpvbmFsIGFuZCByZWdpb25hbCBtZXRyaWMgZGltZW5zaW9uc1xuICAgKi9cbiAgcmVnaW9uS2V5Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXRpY0RpbWVuc2lvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgYXZhaWxhYmlsaXR5Wm9uZUlkS2V5OiBzdHJpbmcsXG4gICAgcmVnaW9uS2V5Pzogc3RyaW5nLFxuICApIHtcbiAgICB0aGlzLnN0YXRpY0RpbWVuc2lvbnMgPSBzdGF0aWNEaW1lbnNpb25zO1xuICAgIHRoaXMuYXZhaWxhYmlsaXR5Wm9uZUlkS2V5ID0gYXZhaWxhYmlsaXR5Wm9uZUlkS2V5O1xuICAgIHRoaXMucmVnaW9uS2V5ID0gcmVnaW9uS2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHpvbmFsIGRpbWVuc2lvbnMgZm9yIHRoZXNlIG1ldHJpY3MgYnkgY29tYmluaW5nIHRoZSBzdGF0aWNcbiAgICogbWV0cmljIGRpbWVuc2lvbnMgd2l0aCB0aGUga2V5cyBwcm92aWRlZCBmb3IgQXZhaWxhYmlsaXR5IFpvbmUgYW5kXG4gICAqIG9wdGlvbmFsIFJlZ2lvbiwgZXhwZWN0ZWQgdG8gcmV0dXJuIHNvbWV0aGluZyBsaWtlXG4gICAqIHtcbiAgICogICBcIlJlZ2lvblwiOiBcInVzLWVhc3QtMVwiLFxuICAgKiAgIFwiQVotSURcIjogXCJ1c2UxLWF6MVwiLFxuICAgKiAgIFwiT3BlcmF0aW9uXCI6IFwicmlkZVwiLFxuICAgKiAgIFwiU2VydmljZVwiOiBcIldpbGRSeWRlc1wiXG4gICAqIH1cbiAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmVJZFxuICAgKiBAcGFyYW0gcmVnaW9uXG4gICAqL1xuICB6b25hbERpbWVuc2lvbnMoXG4gICAgYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGxldCB0bXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBPYmplY3QuYXNzaWduKHRtcCwgdGhpcy5zdGF0aWNEaW1lbnNpb25zKTtcbiAgICB0bXBbdGhpcy5hdmFpbGFiaWxpdHlab25lSWRLZXldID0gYXZhaWxhYmlsaXR5Wm9uZUlkO1xuXG4gICAgaWYgKHRoaXMucmVnaW9uS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRtcFt0aGlzLnJlZ2lvbktleV0gPSByZWdpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHRtcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSByZWdpb25hbCBkaW1lbnNpb25zIGZvciB0aGVzZSBtZXRyaWNzIGJ5IGNvbWJpbmluZyB0aGUgc3RhdGljXG4gICAqIG1ldHJpYyBkaW1lbnNpb25zIHdpdGggdGhlIGtleXMgcHJvdmlkZWQgdGhlIG9wdGlvbmFsIFJlZ2lvbiBrZXksXG4gICAqIGV4cGVjdGVkIHRvIHJldHVybiBzb21ldGhpbmcgbGlrZVxuICAgKiB7XG4gICAqICAgXCJSZWdpb25cIjogXCJ1cy1lYXN0LTFcIixcbiAgICogICBcIk9wZXJhdGlvblwiOiBcInJpZGVcIixcbiAgICogICBcIlNlcnZpY2VcIjogXCJXaWxkUnlkZXNcIlxuICAgKiB9XG4gICAqIEBwYXJhbSByZWdpb25cbiAgICovXG4gIHJlZ2lvbmFsRGltZW5zaW9ucyhyZWdpb246IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGxldCB0bXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBPYmplY3QuYXNzaWduKHRtcCwgdGhpcy5zdGF0aWNEaW1lbnNpb25zKTtcblxuICAgIGlmICh0aGlzLnJlZ2lvbktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0bXBbdGhpcy5yZWdpb25LZXldID0gcmVnaW9uO1xuICAgIH1cblxuICAgIHJldHVybiB0bXA7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,97 @@
1
+ import { Duration } from 'aws-cdk-lib';
2
+ import { Unit } from 'aws-cdk-lib/aws-cloudwatch';
3
+ import { MetricDimensions } from './MetricDimensions';
4
+ /**
5
+ * The properties for operation metric details
6
+ */
7
+ export interface OperationMetricDetailsProps {
8
+ /**
9
+ * The operation these metric details are for
10
+ */
11
+ readonly operationName: string;
12
+ /**
13
+ * The CloudWatch metric namespace for these metrics
14
+ *
15
+ * @default - The service default is used
16
+ */
17
+ readonly metricNamespace?: string;
18
+ /**
19
+ * The names of success indicating metrics
20
+ *
21
+ * @default - The service default is used
22
+ */
23
+ readonly successMetricNames?: string[];
24
+ /**
25
+ * The names of fault indicating metrics
26
+ *
27
+ * @default - The service default is used
28
+ */
29
+ readonly faultMetricNames?: string[];
30
+ /**
31
+ * The statistic used for alarms, for availability metrics this should
32
+ * be "Sum", for latency metrics it could something like "p99" or "p99.9"
33
+ *
34
+ * @default - The service default is used
35
+ */
36
+ readonly alarmStatistic?: string;
37
+ /**
38
+ * The statistics for successes you want to appear on dashboards, for example, with
39
+ * latency metrics, you might want p50, p99, and tm99. For availability
40
+ * metrics this will typically just be "Sum".
41
+ *
42
+ * @default - The service default is used
43
+ */
44
+ readonly graphedSuccessStatistics?: string[];
45
+ /**
46
+ * The statistics for faults you want to appear on dashboards, for example, with
47
+ * latency metrics, you might want p50, p99, and tm99. For availability
48
+ * metrics this will typically just be "Sum".
49
+ *
50
+ * @default - The service default is used
51
+ */
52
+ readonly graphedFaultStatistics?: string[];
53
+ /**
54
+ * The unit used for these metrics
55
+ *
56
+ * @default - The service default is used
57
+ */
58
+ readonly unit?: Unit;
59
+ /**
60
+ * The period for the metrics
61
+ *
62
+ * @default - The service default is used
63
+ */
64
+ readonly period?: Duration;
65
+ /**
66
+ * The number of evaluation periods for latency and availabiltiy alarms
67
+ *
68
+ * @default - The service default is used
69
+ */
70
+ readonly evaluationPeriods?: number;
71
+ /**
72
+ * The number of datapoints to alarm on for latency and availability alarms
73
+ *
74
+ * @default - The service default is used
75
+ */
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
+ /**
94
+ * The user implemented functions for providing the metric's dimensions
95
+ */
96
+ readonly metricDimensions: MetricDimensions;
97
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uTWV0cmljRGV0YWlsc1Byb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3Byb3BzL09wZXJhdGlvbk1ldHJpY0RldGFpbHNQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBVbml0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgTWV0cmljRGltZW5zaW9ucyB9IGZyb20gJy4vTWV0cmljRGltZW5zaW9ucyc7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIG9wZXJhdGlvbiBtZXRyaWMgZGV0YWlsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhdGlvbk1ldHJpY0RldGFpbHNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIHRoZXNlIG1ldHJpYyBkZXRhaWxzIGFyZSBmb3JcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIENsb3VkV2F0Y2ggbWV0cmljIG5hbWVzcGFjZSBmb3IgdGhlc2UgbWV0cmljc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzZXJ2aWNlIGRlZmF1bHQgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljTmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgb2Ygc3VjY2VzcyBpbmRpY2F0aW5nIG1ldHJpY3NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NNZXRyaWNOYW1lcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgb2YgZmF1bHQgaW5kaWNhdGluZyBtZXRyaWNzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHNlcnZpY2UgZGVmYXVsdCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBmYXVsdE1ldHJpY05hbWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWMgdXNlZCBmb3IgYWxhcm1zLCBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3MgdGhpcyBzaG91bGRcbiAgICogYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCBjb3VsZCBzb21ldGhpbmcgbGlrZSBcInA5OVwiIG9yIFwicDk5LjlcIlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzZXJ2aWNlIGRlZmF1bHQgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1TdGF0aXN0aWM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWNzIGZvciBzdWNjZXNzZXMgeW91IHdhbnQgdG8gYXBwZWFyIG9uIGRhc2hib2FyZHMsIGZvciBleGFtcGxlLCB3aXRoXG4gICAqIGxhdGVuY3kgbWV0cmljcywgeW91IG1pZ2h0IHdhbnQgcDUwLCBwOTksIGFuZCB0bTk5LiBGb3IgYXZhaWxhYmlsaXR5XG4gICAqIG1ldHJpY3MgdGhpcyB3aWxsIHR5cGljYWxseSBqdXN0IGJlIFwiU3VtXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHNlcnZpY2UgZGVmYXVsdCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHN0YXRpc3RpY3MgZm9yIGZhdWx0cyB5b3Ugd2FudCB0byBhcHBlYXIgb24gZGFzaGJvYXJkcywgZm9yIGV4YW1wbGUsIHdpdGhcbiAgICogbGF0ZW5jeSBtZXRyaWNzLCB5b3UgbWlnaHQgd2FudCBwNTAsIHA5OSwgYW5kIHRtOTkuIEZvciBhdmFpbGFiaWxpdHlcbiAgICogbWV0cmljcyB0aGlzIHdpbGwgdHlwaWNhbGx5IGp1c3QgYmUgXCJTdW1cIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGdyYXBoZWRGYXVsdFN0YXRpc3RpY3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHVuaXQgdXNlZCBmb3IgdGhlc2UgbWV0cmljc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzZXJ2aWNlIGRlZmF1bHQgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgdW5pdD86IFVuaXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJpb2QgZm9yIHRoZSBtZXRyaWNzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHNlcnZpY2UgZGVmYXVsdCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBldmFsdWF0aW9uIHBlcmlvZHMgZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbHRpeSBhbGFybXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgdG8gYWxhcm0gb24gZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbGl0eSBhbGFybXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFwb2ludHNUb0FsYXJtPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciBhbGFybXMgYXNzb2NpYXRlZCB3aXRoIHN1Y2Nlc3MgbWV0cmljcywgZm9yIGV4YW1wbGUgaWYgbWVhc3VyaW5nXG4gICAqIHN1Y2Nlc3MgcmF0ZSwgdGhlIHRocmVzaG9sZCBtYXkgYmUgOTksIG1lYW5pbmcgeW91IHdvdWxkIHdhbnQgYW4gYWxhcm0gdGhhdCB0cmlnZ2Vyc1xuICAgKiBpZiBzdWNjZXNzIGRyb3BzIGJlbG93IDk5JS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc2VydmljZSBkZWZhdWx0IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NBbGFybVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBmYXVsdCBtZXRyaWNzLCBmb3IgZXhhbXBsZSBpZiBtZWFzdXJpbmdcbiAgICogZmF1bHQgcmF0ZSwgdGhlIHRocmVzaG9sZCBtYXkgYmUgMSwgbWVhbmluZyB5b3Ugd291bGQgd2FudCBhbiBhbGFybSB0aGF0IHRyaWdnZXJzXG4gICAqIGlmIHRoZSBmYXVsdCByYXRlIGdvZXMgYWJvdmUgMSUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHNlcnZpY2UgZGVmYXVsdCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBmYXVsdEFsYXJtVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdXNlciBpbXBsZW1lbnRlZCBmdW5jdGlvbnMgZm9yIHByb3ZpZGluZyB0aGUgbWV0cmljJ3MgZGltZW5zaW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljRGltZW5zaW9uczogTWV0cmljRGltZW5zaW9ucztcbn1cbiJdfQ==
@@ -0,0 +1,93 @@
1
+ import { AddCanaryTestProps } from '../../canaries/props/AddCanaryTestProps';
2
+ import { ICanaryMetrics } from '../ICanaryMetrics';
3
+ import { ICanaryTestMetricsOverride } from '../ICanaryTestMetricsOverride';
4
+ import { IContributorInsightRuleDetails } from '../IContributorInsightRuleDetails';
5
+ import { IOperationMetricDetails } from '../IOperationMetricDetails';
6
+ import { IService } from '../IService';
7
+ /**
8
+ * Properties for an operation
9
+ */
10
+ export interface OperationProps {
11
+ /**
12
+ * The service the operation is associated with
13
+ */
14
+ readonly service: IService;
15
+ /**
16
+ * The name of the operation
17
+ */
18
+ readonly operationName: string;
19
+ /**
20
+ * The HTTP path for the operation for canaries
21
+ * to run against, something like "/products/list"
22
+ */
23
+ readonly path: string;
24
+ /**
25
+ * The server side availability metric details
26
+ */
27
+ readonly serverSideAvailabilityMetricDetails: IOperationMetricDetails;
28
+ /**
29
+ * The server side latency metric details
30
+ */
31
+ readonly serverSideLatencyMetricDetails: IOperationMetricDetails;
32
+ /**
33
+ * Optional metric details if the service has a canary
34
+ *
35
+ * @default - No alarms, rules, or dashboards will be created
36
+ * from canary metrics
37
+ */
38
+ readonly canaryMetricDetails?: ICanaryMetrics;
39
+ /**
40
+ * The override values for automatically created canary tests so you can
41
+ * use values other than the service defaults to define the thresholds for
42
+ * availability.
43
+ *
44
+ * @default - No availability metric details will be overridden and the
45
+ * service defaults will be used for the automatically created canaries
46
+ */
47
+ readonly canaryTestAvailabilityMetricsOverride?: ICanaryTestMetricsOverride;
48
+ /**
49
+ * The override values for automatically created canary tests so you can
50
+ * use values other than the service defaults to define the thresholds for
51
+ * latency.
52
+ *
53
+ * @default - No latency metric details will be overridden and the
54
+ * service defaults will be used for the automatically created canaries
55
+ */
56
+ readonly canaryTestLatencyMetricsOverride?: ICanaryTestMetricsOverride;
57
+ /**
58
+ * The server side details for contributor insights rules
59
+ *
60
+ * @default - The default service contributor insight rule
61
+ * details will be used. If those are not defined no Contributor Insight
62
+ * rules will be created and the number of instances contributing to AZ
63
+ * faults or high latency will not be considered, so a single bad instance
64
+ * could make the AZ appear to look impaired.
65
+ */
66
+ readonly serverSideContributorInsightRuleDetails?: IContributorInsightRuleDetails;
67
+ /**
68
+ * Indicates this is a critical operation for the service
69
+ * and will be included in service level metrics and
70
+ * dashboards
71
+ */
72
+ readonly critical: boolean;
73
+ /**
74
+ * If you define this property, a synthetic
75
+ * canary will be provisioned to test the operation.
76
+ *
77
+ * @default - The default for the service will be used, if that
78
+ * is undefined, then no canary will be provisioned for this operation.
79
+ */
80
+ readonly canaryTestProps?: AddCanaryTestProps;
81
+ /**
82
+ * Set to true if you have defined CanaryTestProps for your
83
+ * service, which applies to all operations, but you want to
84
+ * opt out of creating the canary test for this operation.
85
+ *
86
+ * @default - The operation is not opted out
87
+ */
88
+ readonly optOutOfServiceCreatedCanary?: boolean;
89
+ /**
90
+ * The http methods supported by the operation
91
+ */
92
+ readonly httpMethods: string[];
93
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcHJvcHMvT3BlcmF0aW9uUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IEFkZENhbmFyeVRlc3RQcm9wcyB9IGZyb20gJy4uLy4uL2NhbmFyaWVzL3Byb3BzL0FkZENhbmFyeVRlc3RQcm9wcyc7XG5pbXBvcnQgeyBJQ2FuYXJ5TWV0cmljcyB9IGZyb20gJy4uL0lDYW5hcnlNZXRyaWNzJztcbmltcG9ydCB7IElDYW5hcnlUZXN0TWV0cmljc092ZXJyaWRlIH0gZnJvbSAnLi4vSUNhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGUnO1xuaW1wb3J0IHsgSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzIH0gZnJvbSAnLi4vSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzJztcbmltcG9ydCB7IElPcGVyYXRpb25NZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi4vSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgSVNlcnZpY2UgfSBmcm9tICcuLi9JU2VydmljZSc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYW4gb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhlIG9wZXJhdGlvbiBpcyBhc3NvY2lhdGVkIHdpdGhcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2U6IElTZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBUaGUgSFRUUCBwYXRoIGZvciB0aGUgb3BlcmF0aW9uIGZvciBjYW5hcmllc1xuICAgKiAgdG8gcnVuIGFnYWluc3QsIHNvbWV0aGluZyBsaWtlIFwiL3Byb2R1Y3RzL2xpc3RcIlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgYXZhaWxhYmlsaXR5IG1ldHJpYyBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczogSU9wZXJhdGlvbk1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSBsYXRlbmN5IG1ldHJpYyBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHM6IElPcGVyYXRpb25NZXRyaWNEZXRhaWxzO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBtZXRyaWMgZGV0YWlscyBpZiB0aGUgc2VydmljZSBoYXMgYSBjYW5hcnlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhbGFybXMsIHJ1bGVzLCBvciBkYXNoYm9hcmRzIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBmcm9tIGNhbmFyeSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlNZXRyaWNEZXRhaWxzPzogSUNhbmFyeU1ldHJpY3M7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZSB2YWx1ZXMgZm9yIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBjYW5hcnkgdGVzdHMgc28geW91IGNhblxuICAgKiB1c2UgdmFsdWVzIG90aGVyIHRoYW4gdGhlIHNlcnZpY2UgZGVmYXVsdHMgdG8gZGVmaW5lIHRoZSB0aHJlc2hvbGRzIGZvclxuICAgKiBhdmFpbGFiaWxpdHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYXZhaWxhYmlsaXR5IG1ldHJpYyBkZXRhaWxzIHdpbGwgYmUgb3ZlcnJpZGRlbiBhbmQgdGhlXG4gICAqIHNlcnZpY2UgZGVmYXVsdHMgd2lsbCBiZSB1c2VkIGZvciB0aGUgYXV0b21hdGljYWxseSBjcmVhdGVkIGNhbmFyaWVzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlUZXN0QXZhaWxhYmlsaXR5TWV0cmljc092ZXJyaWRlPzogSUNhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZSB2YWx1ZXMgZm9yIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBjYW5hcnkgdGVzdHMgc28geW91IGNhblxuICAgKiB1c2UgdmFsdWVzIG90aGVyIHRoYW4gdGhlIHNlcnZpY2UgZGVmYXVsdHMgdG8gZGVmaW5lIHRoZSB0aHJlc2hvbGRzIGZvclxuICAgKiBsYXRlbmN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGxhdGVuY3kgbWV0cmljIGRldGFpbHMgd2lsbCBiZSBvdmVycmlkZGVuIGFuZCB0aGVcbiAgICogc2VydmljZSBkZWZhdWx0cyB3aWxsIGJlIHVzZWQgZm9yIHRoZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgY2FuYXJpZXNcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVRlc3RMYXRlbmN5TWV0cmljc092ZXJyaWRlPzogSUNhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSBkZXRhaWxzIGZvciBjb250cmlidXRvciBpbnNpZ2h0cyBydWxlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBkZWZhdWx0IHNlcnZpY2UgY29udHJpYnV0b3IgaW5zaWdodCBydWxlXG4gICAqIGRldGFpbHMgd2lsbCBiZSB1c2VkLiBJZiB0aG9zZSBhcmUgbm90IGRlZmluZWQgbm8gQ29udHJpYnV0b3IgSW5zaWdodFxuICAgKiBydWxlcyB3aWxsIGJlIGNyZWF0ZWQgYW5kIHRoZSBudW1iZXIgb2YgaW5zdGFuY2VzIGNvbnRyaWJ1dGluZyB0byBBWlxuICAgKiBmYXVsdHMgb3IgaGlnaCBsYXRlbmN5IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQsIHNvIGEgc2luZ2xlIGJhZCBpbnN0YW5jZVxuICAgKiBjb3VsZCBtYWtlIHRoZSBBWiBhcHBlYXIgdG8gbG9vayBpbXBhaXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscz86IElDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoaXMgaXMgYSBjcml0aWNhbCBvcGVyYXRpb24gZm9yIHRoZSBzZXJ2aWNlXG4gICAqIGFuZCB3aWxsIGJlIGluY2x1ZGVkIGluIHNlcnZpY2UgbGV2ZWwgbWV0cmljcyBhbmRcbiAgICogZGFzaGJvYXJkc1xuICAgKi9cbiAgcmVhZG9ubHkgY3JpdGljYWw6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIHlvdSBkZWZpbmUgdGhpcyBwcm9wZXJ0eSwgYSBzeW50aGV0aWNcbiAgICogY2FuYXJ5IHdpbGwgYmUgcHJvdmlzaW9uZWQgdG8gdGVzdCB0aGUgb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBkZWZhdWx0IGZvciB0aGUgc2VydmljZSB3aWxsIGJlIHVzZWQsIGlmIHRoYXRcbiAgICogaXMgdW5kZWZpbmVkLCB0aGVuIG5vIGNhbmFyeSB3aWxsIGJlIHByb3Zpc2lvbmVkIGZvciB0aGlzIG9wZXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVRlc3RQcm9wcz86IEFkZENhbmFyeVRlc3RQcm9wcztcblxuICAvKipcbiAgICogU2V0IHRvIHRydWUgaWYgeW91IGhhdmUgZGVmaW5lZCBDYW5hcnlUZXN0UHJvcHMgZm9yIHlvdXJcbiAgICogc2VydmljZSwgd2hpY2ggYXBwbGllcyB0byBhbGwgb3BlcmF0aW9ucywgYnV0IHlvdSB3YW50IHRvXG4gICAqIG9wdCBvdXQgb2YgY3JlYXRpbmcgdGhlIGNhbmFyeSB0ZXN0IGZvciB0aGlzIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgb3BlcmF0aW9uIGlzIG5vdCBvcHRlZCBvdXRcbiAgICovXG4gIHJlYWRvbmx5IG9wdE91dE9mU2VydmljZUNyZWF0ZWRDYW5hcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgaHR0cCBtZXRob2RzIHN1cHBvcnRlZCBieSB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBodHRwTWV0aG9kczogc3RyaW5nW107XG59XG4iXX0=