@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.
- package/.jsii +10177 -0
- package/API.md +5119 -0
- package/LICENSE +202 -0
- package/README.md +175 -0
- package/cdk.json +68 -0
- package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.d.ts +214 -0
- package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.js +763 -0
- package/lib/alarmsandrules/BaseOperationRegionalAlarmsAndRules.d.ts +22 -0
- package/lib/alarmsandrules/BaseOperationRegionalAlarmsAndRules.js +21 -0
- package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.d.ts +34 -0
- package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.js +39 -0
- package/lib/alarmsandrules/CanaryOperationRegionalAlarmsAndRules.d.ts +7 -0
- package/lib/alarmsandrules/CanaryOperationRegionalAlarmsAndRules.js +11 -0
- package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.d.ts +16 -0
- package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.js +17 -0
- package/lib/alarmsandrules/IBaseOperationRegionalAlarmsAndRules.d.ts +18 -0
- package/lib/alarmsandrules/IBaseOperationRegionalAlarmsAndRules.js +3 -0
- package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.d.ts +30 -0
- package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.js +3 -0
- package/lib/alarmsandrules/ICanaryOperationRegionalAlarmsAndRules.d.ts +6 -0
- package/lib/alarmsandrules/ICanaryOperationRegionalAlarmsAndRules.js +3 -0
- package/lib/alarmsandrules/ICanaryOperationZonalAlarmsAndRules.d.ts +12 -0
- package/lib/alarmsandrules/ICanaryOperationZonalAlarmsAndRules.js +3 -0
- package/lib/alarmsandrules/IOperationAlarmsAndRules.d.ts +55 -0
- package/lib/alarmsandrules/IOperationAlarmsAndRules.js +3 -0
- package/lib/alarmsandrules/IServerSideOperationRegionalAlarmsAndRules.d.ts +15 -0
- package/lib/alarmsandrules/IServerSideOperationRegionalAlarmsAndRules.js +3 -0
- package/lib/alarmsandrules/IServerSideOperationZonalAlarmsAndRules.d.ts +36 -0
- package/lib/alarmsandrules/IServerSideOperationZonalAlarmsAndRules.js +3 -0
- package/lib/alarmsandrules/IServiceAlarmsAndRules.d.ts +44 -0
- package/lib/alarmsandrules/IServiceAlarmsAndRules.js +3 -0
- package/lib/alarmsandrules/InsightRuleBody.d.ts +67 -0
- package/lib/alarmsandrules/InsightRuleBody.js +46 -0
- package/lib/alarmsandrules/OperationAlarmsAndRules.d.ts +59 -0
- package/lib/alarmsandrules/OperationAlarmsAndRules.js +135 -0
- package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.d.ts +19 -0
- package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.js +22 -0
- package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.d.ts +40 -0
- package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.js +46 -0
- package/lib/alarmsandrules/ServiceAlarmsAndRules.d.ts +48 -0
- package/lib/alarmsandrules/ServiceAlarmsAndRules.js +166 -0
- package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.d.ts +24 -0
- package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.js +3 -0
- package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.d.ts +62 -0
- package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.js +3 -0
- package/lib/alarmsandrules/props/CanaryOperationRegionalAlarmsAndRulesProps.d.ts +6 -0
- package/lib/alarmsandrules/props/CanaryOperationRegionalAlarmsAndRulesProps.js +3 -0
- package/lib/alarmsandrules/props/CanaryOperationZonalAlarmsAndRulesProps.d.ts +6 -0
- package/lib/alarmsandrules/props/CanaryOperationZonalAlarmsAndRulesProps.js +3 -0
- package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.d.ts +45 -0
- package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.js +3 -0
- package/lib/alarmsandrules/props/ServerSideOperationRegionalAlarmsAndRulesProps.d.ts +6 -0
- package/lib/alarmsandrules/props/ServerSideOperationRegionalAlarmsAndRulesProps.js +3 -0
- package/lib/alarmsandrules/props/ServerSideOperationZonalAlarmsAndRulesProps.d.ts +6 -0
- package/lib/alarmsandrules/props/ServerSideOperationZonalAlarmsAndRulesProps.js +3 -0
- package/lib/alarmsandrules/props/ServiceAlarmsAndRulesProps.d.ts +13 -0
- package/lib/alarmsandrules/props/ServiceAlarmsAndRulesProps.js +3 -0
- package/lib/azmapper/AvailabilityZoneMapper.d.ts +86 -0
- package/lib/azmapper/AvailabilityZoneMapper.js +200 -0
- package/lib/azmapper/IAvailabilityZoneMapper.d.ts +86 -0
- package/lib/azmapper/IAvailabilityZoneMapper.js +3 -0
- package/lib/azmapper/props/AvailabilityZoneMapperProps.d.ts +13 -0
- package/lib/azmapper/props/AvailabilityZoneMapperProps.js +3 -0
- package/lib/azmapper/src/index.py +107 -0
- package/lib/canaries/CanaryFunction.d.ts +16 -0
- package/lib/canaries/CanaryFunction.js +152 -0
- package/lib/canaries/CanaryTest.d.ts +10 -0
- package/lib/canaries/CanaryTest.js +84 -0
- package/lib/canaries/ICanaryFunction.d.ts +6 -0
- package/lib/canaries/ICanaryFunction.js +3 -0
- package/lib/canaries/props/AddCanaryTestProps.d.ts +66 -0
- package/lib/canaries/props/AddCanaryTestProps.js +3 -0
- package/lib/canaries/props/CanaryFunctionProps.d.ts +29 -0
- package/lib/canaries/props/CanaryFunctionProps.js +3 -0
- package/lib/canaries/props/CanaryTestProps.d.ts +21 -0
- package/lib/canaries/props/CanaryTestProps.js +3 -0
- package/lib/canaries/props/NetworkConfigurationProps.d.ts +16 -0
- package/lib/canaries/props/NetworkConfigurationProps.js +3 -0
- package/lib/canaries/src/canary.zip +0 -0
- package/lib/dashboards/BasicServiceDashboard.d.ts +10 -0
- package/lib/dashboards/BasicServiceDashboard.js +130 -0
- package/lib/dashboards/ContributorInsightsWidget.d.ts +22 -0
- package/lib/dashboards/ContributorInsightsWidget.js +55 -0
- package/lib/dashboards/IOperationAvailabilityAndLatencyDashboard.d.ts +10 -0
- package/lib/dashboards/IOperationAvailabilityAndLatencyDashboard.js +3 -0
- package/lib/dashboards/IServiceAvailabilityAndLatencyDashboard.d.ts +10 -0
- package/lib/dashboards/IServiceAvailabilityAndLatencyDashboard.js +3 -0
- package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.d.ts +20 -0
- package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +588 -0
- package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.d.ts +24 -0
- package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +475 -0
- package/lib/dashboards/props/BasicServiceDashboardProps.d.ts +23 -0
- package/lib/dashboards/props/BasicServiceDashboardProps.js +3 -0
- package/lib/dashboards/props/ContributorInsightWidgetProps.d.ts +31 -0
- package/lib/dashboards/props/ContributorInsightWidgetProps.js +3 -0
- package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.d.ts +84 -0
- package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.js +3 -0
- package/lib/dashboards/props/OperationAvailabilityWidgetProps.d.ts +37 -0
- package/lib/dashboards/props/OperationAvailabilityWidgetProps.js +3 -0
- package/lib/dashboards/props/OperationLatencyWidgetProps.d.ts +37 -0
- package/lib/dashboards/props/OperationLatencyWidgetProps.js +3 -0
- package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.d.ts +30 -0
- package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.js +3 -0
- package/lib/index.d.ts +35 -0
- package/lib/index.js +30 -0
- package/lib/metrics/ApplicationLoadBalancerMetrics.d.ts +36 -0
- package/lib/metrics/ApplicationLoadBalancerMetrics.js +150 -0
- package/lib/metrics/AvailabilityAndLatencyMetrics.d.ts +61 -0
- package/lib/metrics/AvailabilityAndLatencyMetrics.js +212 -0
- package/lib/metrics/NetworkLoadBalancerMetrics.d.ts +19 -0
- package/lib/metrics/NetworkLoadBalancerMetrics.js +48 -0
- package/lib/metrics/RegionalAvailabilityMetrics.d.ts +19 -0
- package/lib/metrics/RegionalAvailabilityMetrics.js +71 -0
- package/lib/metrics/RegionalLatencyMetrics.d.ts +33 -0
- package/lib/metrics/RegionalLatencyMetrics.js +69 -0
- package/lib/metrics/ZonalAvailabilityMetrics.d.ts +19 -0
- package/lib/metrics/ZonalAvailabilityMetrics.js +71 -0
- package/lib/metrics/ZonalLatencyMetrics.d.ts +29 -0
- package/lib/metrics/ZonalLatencyMetrics.js +65 -0
- package/lib/metrics/props/AvailabilityAndLatencyMetricProps.d.ts +23 -0
- package/lib/metrics/props/AvailabilityAndLatencyMetricProps.js +3 -0
- package/lib/metrics/props/AvailabilityMetricProps.d.ts +11 -0
- package/lib/metrics/props/AvailabilityMetricProps.js +3 -0
- package/lib/metrics/props/LatencyMetricProps.d.ts +15 -0
- package/lib/metrics/props/LatencyMetricProps.js +3 -0
- package/lib/metrics/props/RegionalAvailabilityMetricProps.d.ts +6 -0
- package/lib/metrics/props/RegionalAvailabilityMetricProps.js +3 -0
- package/lib/metrics/props/RegionalLatencyMetricProps.d.ts +6 -0
- package/lib/metrics/props/RegionalLatencyMetricProps.js +3 -0
- package/lib/metrics/props/ServiceAvailabilityMetricProps.d.ts +23 -0
- package/lib/metrics/props/ServiceAvailabilityMetricProps.js +3 -0
- package/lib/metrics/props/ServiceLatencyMericProps.d.ts +23 -0
- package/lib/metrics/props/ServiceLatencyMericProps.js +3 -0
- package/lib/metrics/props/ZonalAvailabilityMetricProps.d.ts +10 -0
- package/lib/metrics/props/ZonalAvailabilityMetricProps.js +3 -0
- package/lib/metrics/props/ZonalLatencyMetricProps.d.ts +10 -0
- package/lib/metrics/props/ZonalLatencyMetricProps.js +3 -0
- package/lib/monitoring/src/monitoring-layer.zip +0 -0
- package/lib/outlier-detection/IOutlierDetectionFunction.d.ts +12 -0
- package/lib/outlier-detection/IOutlierDetectionFunction.js +3 -0
- package/lib/outlier-detection/OutlierDetectionFunction.d.ts +16 -0
- package/lib/outlier-detection/OutlierDetectionFunction.js +126 -0
- package/lib/outlier-detection/props/OutlierDetectionFunctionProps.d.ts +12 -0
- package/lib/outlier-detection/props/OutlierDetectionFunctionProps.js +3 -0
- package/lib/outlier-detection/src/outlier-detection.zip +0 -0
- package/lib/outlier-detection/src/scipy-layer.zip +0 -0
- package/lib/services/BasicServiceMultiAZObservability.d.ts +64 -0
- package/lib/services/BasicServiceMultiAZObservability.js +504 -0
- package/lib/services/CanaryMetrics.d.ts +17 -0
- package/lib/services/CanaryMetrics.js +19 -0
- package/lib/services/CanaryTestMetricsOverride.d.ts +39 -0
- package/lib/services/CanaryTestMetricsOverride.js +23 -0
- package/lib/services/ContributorInsightRuleDetails.d.ts +42 -0
- package/lib/services/ContributorInsightRuleDetails.js +23 -0
- package/lib/services/IBasicServiceMultiAZObservability.d.ts +45 -0
- package/lib/services/IBasicServiceMultiAZObservability.js +3 -0
- package/lib/services/ICanaryMetrics.d.ts +14 -0
- package/lib/services/ICanaryMetrics.js +3 -0
- package/lib/services/ICanaryTestMetricsOverride.d.ts +36 -0
- package/lib/services/ICanaryTestMetricsOverride.js +3 -0
- package/lib/services/IContributorInsightRuleDetails.d.ts +38 -0
- package/lib/services/IContributorInsightRuleDetails.js +3 -0
- package/lib/services/IInstrumentedServiceMultiAZObservability.d.ts +39 -0
- package/lib/services/IInstrumentedServiceMultiAZObservability.js +3 -0
- package/lib/services/IOperation.d.ts +75 -0
- package/lib/services/IOperation.js +3 -0
- package/lib/services/IOperationMetricDetails.d.ts +78 -0
- package/lib/services/IOperationMetricDetails.js +3 -0
- package/lib/services/IService.d.ts +76 -0
- package/lib/services/IService.js +3 -0
- package/lib/services/IServiceMetricDetails.d.ts +68 -0
- package/lib/services/IServiceMetricDetails.js +3 -0
- package/lib/services/InstrumentedServiceMultiAZObservability.d.ts +55 -0
- package/lib/services/InstrumentedServiceMultiAZObservability.js +310 -0
- package/lib/services/Operation.d.ts +78 -0
- package/lib/services/Operation.js +34 -0
- package/lib/services/OperationMetricDetails.d.ts +82 -0
- package/lib/services/OperationMetricDetails.js +50 -0
- package/lib/services/Service.d.ts +80 -0
- package/lib/services/Service.js +36 -0
- package/lib/services/ServiceMetricDetails.d.ts +71 -0
- package/lib/services/ServiceMetricDetails.js +28 -0
- package/lib/services/props/BasicServiceMultiAZObservabilityProps.d.ts +126 -0
- package/lib/services/props/BasicServiceMultiAZObservabilityProps.js +3 -0
- package/lib/services/props/CanaryMetricProps.d.ts +14 -0
- package/lib/services/props/CanaryMetricProps.js +3 -0
- package/lib/services/props/CanaryTestMetricsOverrideProps.d.ts +47 -0
- package/lib/services/props/CanaryTestMetricsOverrideProps.js +3 -0
- package/lib/services/props/ContributorInsightRuleDetailsProps.d.ts +38 -0
- package/lib/services/props/ContributorInsightRuleDetailsProps.js +3 -0
- package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.d.ts +88 -0
- package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.js +3 -0
- package/lib/services/props/MetricDimensions.d.ts +61 -0
- package/lib/services/props/MetricDimensions.js +63 -0
- package/lib/services/props/OperationMetricDetailsProps.d.ts +97 -0
- package/lib/services/props/OperationMetricDetailsProps.js +3 -0
- package/lib/services/props/OperationProps.d.ts +93 -0
- package/lib/services/props/OperationProps.js +3 -0
- package/lib/services/props/ServiceMetricDetailsProps.d.ts +68 -0
- package/lib/services/props/ServiceMetricDetailsProps.js +3 -0
- package/lib/services/props/ServiceProps.d.ts +69 -0
- package/lib/services/props/ServiceProps.js +3 -0
- package/lib/utilities/AvailabilityMetricType.d.ts +26 -0
- package/lib/utilities/AvailabilityMetricType.js +33 -0
- package/lib/utilities/LatencyMetricType.d.ts +13 -0
- package/lib/utilities/LatencyMetricType.js +20 -0
- package/lib/utilities/OutlierDetectionAlgorithm.d.ts +42 -0
- package/lib/utilities/OutlierDetectionAlgorithm.js +49 -0
- package/lib/utilities/StackWithDynamicSource.d.ts +14 -0
- package/lib/utilities/StackWithDynamicSource.js +82 -0
- package/package.json +176 -0
- 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=
|