@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,31 @@
|
|
|
1
|
+
import { Duration } from 'aws-cdk-lib';
|
|
2
|
+
import { MetricWidgetProps, CfnInsightRule, LegendPosition } from 'aws-cdk-lib/aws-cloudwatch';
|
|
3
|
+
/**
|
|
4
|
+
* Properties for creating a contributor insight dashboard widget
|
|
5
|
+
*/
|
|
6
|
+
export interface ContributorInsightWidgetProps extends MetricWidgetProps {
|
|
7
|
+
/**
|
|
8
|
+
* The account id for the widget
|
|
9
|
+
*/
|
|
10
|
+
readonly accountId: string;
|
|
11
|
+
/**
|
|
12
|
+
* The number of top contributors to graph
|
|
13
|
+
*/
|
|
14
|
+
readonly topContributors: number;
|
|
15
|
+
/**
|
|
16
|
+
* The insight rule for the widget
|
|
17
|
+
*/
|
|
18
|
+
readonly insightRule: CfnInsightRule;
|
|
19
|
+
/**
|
|
20
|
+
* The legend position in the widget
|
|
21
|
+
*/
|
|
22
|
+
readonly legendPosition: LegendPosition;
|
|
23
|
+
/**
|
|
24
|
+
* The order statistic used
|
|
25
|
+
*/
|
|
26
|
+
readonly orderStatistic: string;
|
|
27
|
+
/**
|
|
28
|
+
* The period for the widget data points
|
|
29
|
+
*/
|
|
30
|
+
readonly period: Duration;
|
|
31
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJpYnV0b3JJbnNpZ2h0V2lkZ2V0UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGFzaGJvYXJkcy9wcm9wcy9Db250cmlidXRvckluc2lnaHRXaWRnZXRQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBNZXRyaWNXaWRnZXRQcm9wcyxcbiAgQ2ZuSW5zaWdodFJ1bGUsXG4gIExlZ2VuZFBvc2l0aW9uLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBjb250cmlidXRvciBpbnNpZ2h0IGRhc2hib2FyZCB3aWRnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmlidXRvckluc2lnaHRXaWRnZXRQcm9wcyBleHRlbmRzIE1ldHJpY1dpZGdldFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IGlkIGZvciB0aGUgd2lkZ2V0XG4gICAqL1xuICByZWFkb25seSBhY2NvdW50SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0b3AgY29udHJpYnV0b3JzIHRvIGdyYXBoXG4gICAqL1xuICByZWFkb25seSB0b3BDb250cmlidXRvcnM6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGluc2lnaHQgcnVsZSBmb3IgdGhlIHdpZGdldFxuICAgKi9cbiAgcmVhZG9ubHkgaW5zaWdodFJ1bGU6IENmbkluc2lnaHRSdWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgbGVnZW5kIHBvc2l0aW9uIGluIHRoZSB3aWRnZXRcbiAgICovXG4gIHJlYWRvbmx5IGxlZ2VuZFBvc2l0aW9uOiBMZWdlbmRQb3NpdGlvbjtcblxuICAvKipcbiAgICogVGhlIG9yZGVyIHN0YXRpc3RpYyB1c2VkXG4gICAqL1xuICByZWFkb25seSBvcmRlclN0YXRpc3RpYzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIGZvciB0aGUgd2lkZ2V0IGRhdGEgcG9pbnRzXG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q6IER1cmF0aW9uO1xufVxuIl19
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Duration } from 'aws-cdk-lib';
|
|
2
|
+
import { IAlarm, CfnInsightRule } from 'aws-cdk-lib/aws-cloudwatch';
|
|
3
|
+
import { ILoadBalancerV2 } from 'aws-cdk-lib/aws-elasticloadbalancingv2';
|
|
4
|
+
import { IAvailabilityZoneMapper } from '../../azmapper/IAvailabilityZoneMapper';
|
|
5
|
+
import { IOperation } from '../../services/IOperation';
|
|
6
|
+
/**
|
|
7
|
+
* Properties for creating an availability and latency dashboard for
|
|
8
|
+
* a single operation
|
|
9
|
+
*/
|
|
10
|
+
export interface OperationAvailabilityAndLatencyDashboardProps {
|
|
11
|
+
/**
|
|
12
|
+
* The operation for this dashboard
|
|
13
|
+
*/
|
|
14
|
+
readonly operation: IOperation;
|
|
15
|
+
/**
|
|
16
|
+
* The interval of the dashboard
|
|
17
|
+
*/
|
|
18
|
+
readonly interval: Duration;
|
|
19
|
+
/**
|
|
20
|
+
* The load balancer supporting this operation, if this is not
|
|
21
|
+
* provided, no load balancer metrics will be shown
|
|
22
|
+
*
|
|
23
|
+
* @default - No load balancer metrics will be shown on the dashboard
|
|
24
|
+
*/
|
|
25
|
+
readonly loadBalancer?: ILoadBalancerV2;
|
|
26
|
+
/**
|
|
27
|
+
* Per AZ server-side availability alarms
|
|
28
|
+
*/
|
|
29
|
+
readonly zonalEndpointServerAvailabilityAlarms: IAlarm[];
|
|
30
|
+
/**
|
|
31
|
+
* Per AZ server-side latency alarms
|
|
32
|
+
*/
|
|
33
|
+
readonly zonalEndpointServerLatencyAlarms: IAlarm[];
|
|
34
|
+
/**
|
|
35
|
+
* Per AZ canary availability alarms
|
|
36
|
+
*/
|
|
37
|
+
readonly zonalEndpointCanaryAvailabilityAlarms?: IAlarm[];
|
|
38
|
+
/**
|
|
39
|
+
* Per AZ canary latency alarms
|
|
40
|
+
*/
|
|
41
|
+
readonly zonalEndpointCanaryLatencyAlarms?: IAlarm[];
|
|
42
|
+
/**
|
|
43
|
+
* Regional server-side availability alarm
|
|
44
|
+
*/
|
|
45
|
+
readonly regionalEndpointServerAvailabilityAlarm: IAlarm;
|
|
46
|
+
/**
|
|
47
|
+
* Regional server-side latency alarm
|
|
48
|
+
*/
|
|
49
|
+
readonly regionalEndpointServerLatencyAlarm: IAlarm;
|
|
50
|
+
/**
|
|
51
|
+
* Regional canary availability alarm
|
|
52
|
+
*/
|
|
53
|
+
readonly regionalEndpointCanaryAvailabilityAlarm?: IAlarm;
|
|
54
|
+
/**
|
|
55
|
+
* Regional canary latency alarm
|
|
56
|
+
*/
|
|
57
|
+
readonly regionalEndpointCanaryLatencyAlarm?: IAlarm;
|
|
58
|
+
/**
|
|
59
|
+
* Per AZ alarms that indicate isolated single AZ impact
|
|
60
|
+
*/
|
|
61
|
+
readonly isolatedAZImpactAlarms: IAlarm[];
|
|
62
|
+
/**
|
|
63
|
+
* Alarm that indicates regional impact
|
|
64
|
+
*/
|
|
65
|
+
readonly regionalImpactAlarm: IAlarm;
|
|
66
|
+
/**
|
|
67
|
+
* Insight rule that shows instance contributors to
|
|
68
|
+
* high latency for this operation
|
|
69
|
+
*
|
|
70
|
+
* @default - Insight rule will not be shown on the dashboard
|
|
71
|
+
*/
|
|
72
|
+
readonly instanceContributorsToHighLatency?: CfnInsightRule;
|
|
73
|
+
/**
|
|
74
|
+
* Insight rule that shows instance contributors to
|
|
75
|
+
* faults for this operation
|
|
76
|
+
*
|
|
77
|
+
* @default - Insight rule will not be shown on the dashboard
|
|
78
|
+
*/
|
|
79
|
+
readonly instanceContributorsToFaults?: CfnInsightRule;
|
|
80
|
+
/**
|
|
81
|
+
* The AZ Mapper
|
|
82
|
+
*/
|
|
83
|
+
readonly azMapper: IAvailabilityZoneMapper;
|
|
84
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZFByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rhc2hib2FyZHMvcHJvcHMvT3BlcmF0aW9uQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZFByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElBbGFybSwgQ2ZuSW5zaWdodFJ1bGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJTG9hZEJhbGFuY2VyVjIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mic7XG5pbXBvcnQgeyBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlciB9IGZyb20gJy4uLy4uL2F6bWFwcGVyL0lBdmFpbGFiaWxpdHlab25lTWFwcGVyJztcbmltcG9ydCB7IElPcGVyYXRpb24gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9JT3BlcmF0aW9uJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBhdmFpbGFiaWxpdHkgYW5kIGxhdGVuY3kgZGFzaGJvYXJkIGZvclxuICogYSBzaW5nbGUgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0aW9uQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpb24gZm9yIHRoaXMgZGFzaGJvYXJkXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb246IElPcGVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCBvZiB0aGUgZGFzaGJvYXJkXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbDogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2FkIGJhbGFuY2VyIHN1cHBvcnRpbmcgdGhpcyBvcGVyYXRpb24sIGlmIHRoaXMgaXMgbm90XG4gICAqIHByb3ZpZGVkLCBubyBsb2FkIGJhbGFuY2VyIG1ldHJpY3Mgd2lsbCBiZSBzaG93blxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGxvYWQgYmFsYW5jZXIgbWV0cmljcyB3aWxsIGJlIHNob3duIG9uIHRoZSBkYXNoYm9hcmRcbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlcj86IElMb2FkQmFsYW5jZXJWMjtcblxuICAvKipcbiAgICogUGVyIEFaIHNlcnZlci1zaWRlIGF2YWlsYWJpbGl0eSBhbGFybXNcbiAgICovXG4gIHJlYWRvbmx5IHpvbmFsRW5kcG9pbnRTZXJ2ZXJBdmFpbGFiaWxpdHlBbGFybXM6IElBbGFybVtdO1xuXG4gIC8qKlxuICAgKiBQZXIgQVogc2VydmVyLXNpZGUgbGF0ZW5jeSBhbGFybXNcbiAgICovXG4gIHJlYWRvbmx5IHpvbmFsRW5kcG9pbnRTZXJ2ZXJMYXRlbmN5QWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogUGVyIEFaIGNhbmFyeSBhdmFpbGFiaWxpdHkgYWxhcm1zXG4gICAqL1xuICByZWFkb25seSB6b25hbEVuZHBvaW50Q2FuYXJ5QXZhaWxhYmlsaXR5QWxhcm1zPzogSUFsYXJtW107XG5cbiAgLyoqXG4gICAqIFBlciBBWiBjYW5hcnkgbGF0ZW5jeSBhbGFybXNcbiAgICovXG4gIHJlYWRvbmx5IHpvbmFsRW5kcG9pbnRDYW5hcnlMYXRlbmN5QWxhcm1zPzogSUFsYXJtW107XG5cbiAgLyoqXG4gICAqIFJlZ2lvbmFsIHNlcnZlci1zaWRlIGF2YWlsYWJpbGl0eSBhbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uYWxFbmRwb2ludFNlcnZlckF2YWlsYWJpbGl0eUFsYXJtOiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIFJlZ2lvbmFsIHNlcnZlci1zaWRlIGxhdGVuY3kgYWxhcm1cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbmFsRW5kcG9pbnRTZXJ2ZXJMYXRlbmN5QWxhcm06IElBbGFybTtcblxuICAvKipcbiAgICogUmVnaW9uYWwgY2FuYXJ5IGF2YWlsYWJpbGl0eSBhbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uYWxFbmRwb2ludENhbmFyeUF2YWlsYWJpbGl0eUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBSZWdpb25hbCBjYW5hcnkgbGF0ZW5jeSBhbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uYWxFbmRwb2ludENhbmFyeUxhdGVuY3lBbGFybT86IElBbGFybTtcblxuICAvKipcbiAgICogUGVyIEFaIGFsYXJtcyB0aGF0IGluZGljYXRlIGlzb2xhdGVkIHNpbmdsZSBBWiBpbXBhY3RcbiAgICovXG4gIHJlYWRvbmx5IGlzb2xhdGVkQVpJbXBhY3RBbGFybXM6IElBbGFybVtdO1xuXG4gIC8qKlxuICAgKiBBbGFybSB0aGF0IGluZGljYXRlcyByZWdpb25hbCBpbXBhY3RcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbmFsSW1wYWN0QWxhcm06IElBbGFybTtcblxuICAvKipcbiAgICogSW5zaWdodCBydWxlIHRoYXQgc2hvd3MgaW5zdGFuY2UgY29udHJpYnV0b3JzIHRvXG4gICAqIGhpZ2ggbGF0ZW5jeSBmb3IgdGhpcyBvcGVyYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBJbnNpZ2h0IHJ1bGUgd2lsbCBub3QgYmUgc2hvd24gb24gdGhlIGRhc2hib2FyZFxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VDb250cmlidXRvcnNUb0hpZ2hMYXRlbmN5PzogQ2ZuSW5zaWdodFJ1bGU7XG5cbiAgLyoqXG4gICAqIEluc2lnaHQgcnVsZSB0aGF0IHNob3dzIGluc3RhbmNlIGNvbnRyaWJ1dG9ycyB0b1xuICAgKiBmYXVsdHMgZm9yIHRoaXMgb3BlcmF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gSW5zaWdodCBydWxlIHdpbGwgbm90IGJlIHNob3duIG9uIHRoZSBkYXNoYm9hcmRcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlQ29udHJpYnV0b3JzVG9GYXVsdHM/OiBDZm5JbnNpZ2h0UnVsZTtcblxuICAvKipcbiAgICogVGhlIEFaIE1hcHBlclxuICAgKi9cbiAgcmVhZG9ubHkgYXpNYXBwZXI6IElBdmFpbGFiaWxpdHlab25lTWFwcGVyO1xufVxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { IAlarm, CfnInsightRule } from 'aws-cdk-lib/aws-cloudwatch';
|
|
2
|
+
import { IOperation } from '../../services/IOperation';
|
|
3
|
+
import { IOperationMetricDetails } from '../../services/IOperationMetricDetails';
|
|
4
|
+
/**
|
|
5
|
+
* Props for creating operation dashboard availability and latency widgets
|
|
6
|
+
*/
|
|
7
|
+
export interface OperationAvailabilityWidgetProps {
|
|
8
|
+
/**
|
|
9
|
+
* The operation for this widget
|
|
10
|
+
*/
|
|
11
|
+
readonly operation: IOperation;
|
|
12
|
+
/**
|
|
13
|
+
* The availability metric details
|
|
14
|
+
*/
|
|
15
|
+
readonly availabilityMetricDetails: IOperationMetricDetails;
|
|
16
|
+
/**
|
|
17
|
+
* The number of AZs being used
|
|
18
|
+
*/
|
|
19
|
+
readonly availabilityZoneIds: string[];
|
|
20
|
+
/**
|
|
21
|
+
* An alarm per AZ for availability
|
|
22
|
+
*/
|
|
23
|
+
readonly zonalEndpointAvailabilityAlarms: IAlarm[];
|
|
24
|
+
/**
|
|
25
|
+
* The regional endpoint availability alarm
|
|
26
|
+
*/
|
|
27
|
+
readonly regionalEndpointAvailabilityAlarm: IAlarm;
|
|
28
|
+
/**
|
|
29
|
+
* Instance contributors to faults, only set for
|
|
30
|
+
* server-side widgets
|
|
31
|
+
*/
|
|
32
|
+
readonly instanceContributorsToFaults?: CfnInsightRule;
|
|
33
|
+
/**
|
|
34
|
+
* Is this widget for the canary metrics
|
|
35
|
+
*/
|
|
36
|
+
readonly isCanary: boolean;
|
|
37
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uQXZhaWxhYmlsaXR5V2lkZ2V0UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGFzaGJvYXJkcy9wcm9wcy9PcGVyYXRpb25BdmFpbGFiaWxpdHlXaWRnZXRQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgSUFsYXJtLCBDZm5JbnNpZ2h0UnVsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IElPcGVyYXRpb24gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9JT3BlcmF0aW9uJztcbmltcG9ydCB7IElPcGVyYXRpb25NZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMnO1xuXG4vKipcbiAqIFByb3BzIGZvciBjcmVhdGluZyBvcGVyYXRpb24gZGFzaGJvYXJkIGF2YWlsYWJpbGl0eSBhbmQgbGF0ZW5jeSB3aWRnZXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0aW9uQXZhaWxhYmlsaXR5V2lkZ2V0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiBmb3IgdGhpcyB3aWRnZXRcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbjogSU9wZXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGF2YWlsYWJpbGl0eSBtZXRyaWMgZGV0YWlsc1xuICAgKi9cbiAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczogSU9wZXJhdGlvbk1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgQVpzIGJlaW5nIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmVJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBwZXIgQVogZm9yIGF2YWlsYWJpbGl0eVxuICAgKi9cbiAgcmVhZG9ubHkgem9uYWxFbmRwb2ludEF2YWlsYWJpbGl0eUFsYXJtczogSUFsYXJtW107XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb25hbCBlbmRwb2ludCBhdmFpbGFiaWxpdHkgYWxhcm1cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbmFsRW5kcG9pbnRBdmFpbGFiaWxpdHlBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBjb250cmlidXRvcnMgdG8gZmF1bHRzLCBvbmx5IHNldCBmb3JcbiAgICogc2VydmVyLXNpZGUgd2lkZ2V0c1xuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VDb250cmlidXRvcnNUb0ZhdWx0cz86IENmbkluc2lnaHRSdWxlO1xuXG4gIC8qKlxuICAgKiBJcyB0aGlzIHdpZGdldCBmb3IgdGhlIGNhbmFyeSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSBpc0NhbmFyeTogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { IAlarm, CfnInsightRule } from 'aws-cdk-lib/aws-cloudwatch';
|
|
2
|
+
import { IOperation } from '../../services/IOperation';
|
|
3
|
+
import { IOperationMetricDetails } from '../../services/IOperationMetricDetails';
|
|
4
|
+
/**
|
|
5
|
+
* Props for creating operation dashboard availability and latency widgets
|
|
6
|
+
*/
|
|
7
|
+
export interface OperationLatencyWidgetProps {
|
|
8
|
+
/**
|
|
9
|
+
* The operation for this widget
|
|
10
|
+
*/
|
|
11
|
+
readonly operation: IOperation;
|
|
12
|
+
/**
|
|
13
|
+
* The latency metric details
|
|
14
|
+
*/
|
|
15
|
+
readonly latencyMetricDetails: IOperationMetricDetails;
|
|
16
|
+
/**
|
|
17
|
+
* The number of AZs being used
|
|
18
|
+
*/
|
|
19
|
+
readonly availabilityZoneIds: string[];
|
|
20
|
+
/**
|
|
21
|
+
* An alarm per AZ for latency
|
|
22
|
+
*/
|
|
23
|
+
readonly zonalEndpointLatencyAlarms: IAlarm[];
|
|
24
|
+
/**
|
|
25
|
+
* The regional endpoint latency alarm
|
|
26
|
+
*/
|
|
27
|
+
readonly regionalEndpointLatencyAlarm: IAlarm;
|
|
28
|
+
/**
|
|
29
|
+
* Instance contributors to high latency, only set for
|
|
30
|
+
* server-side widgets
|
|
31
|
+
*/
|
|
32
|
+
readonly instanceContributorsToHighLatency?: CfnInsightRule;
|
|
33
|
+
/**
|
|
34
|
+
* Is this widget for the canary metrics
|
|
35
|
+
*/
|
|
36
|
+
readonly isCanary: boolean;
|
|
37
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uTGF0ZW5jeVdpZGdldFByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rhc2hib2FyZHMvcHJvcHMvT3BlcmF0aW9uTGF0ZW5jeVdpZGdldFByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBJQWxhcm0sIENmbkluc2lnaHRSdWxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL0lPcGVyYXRpb24nO1xuaW1wb3J0IHsgSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9JT3BlcmF0aW9uTWV0cmljRGV0YWlscyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIGNyZWF0aW5nIG9wZXJhdGlvbiBkYXNoYm9hcmQgYXZhaWxhYmlsaXR5IGFuZCBsYXRlbmN5IHdpZGdldHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb25MYXRlbmN5V2lkZ2V0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiBmb3IgdGhpcyB3aWRnZXRcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbjogSU9wZXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGxhdGVuY3kgbWV0cmljIGRldGFpbHNcbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lNZXRyaWNEZXRhaWxzOiBJT3BlcmF0aW9uTWV0cmljRGV0YWlscztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBBWnMgYmVpbmcgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZUlkczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGFsYXJtIHBlciBBWiBmb3IgbGF0ZW5jeVxuICAgKi9cbiAgcmVhZG9ubHkgem9uYWxFbmRwb2ludExhdGVuY3lBbGFybXM6IElBbGFybVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uYWwgZW5kcG9pbnQgbGF0ZW5jeSBhbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uYWxFbmRwb2ludExhdGVuY3lBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBjb250cmlidXRvcnMgdG8gaGlnaCBsYXRlbmN5LCBvbmx5IHNldCBmb3JcbiAgICogc2VydmVyLXNpZGUgd2lkZ2V0c1xuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VDb250cmlidXRvcnNUb0hpZ2hMYXRlbmN5PzogQ2ZuSW5zaWdodFJ1bGU7XG5cbiAgLyoqXG4gICAqIElzIHRoaXMgd2lkZ2V0IGZvciB0aGUgY2FuYXJ5IG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IGlzQ2FuYXJ5OiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Duration } from 'aws-cdk-lib';
|
|
2
|
+
import { IAlarm } from 'aws-cdk-lib/aws-cloudwatch';
|
|
3
|
+
import { IAvailabilityZoneMapper } from '../../azmapper/IAvailabilityZoneMapper';
|
|
4
|
+
import { IService } from '../../services/IService';
|
|
5
|
+
/**
|
|
6
|
+
* Properties for creating a service level dashboard
|
|
7
|
+
*/
|
|
8
|
+
export interface ServiceAvailabilityAndLatencyDashboardProps {
|
|
9
|
+
/**
|
|
10
|
+
* The service for the dashboard
|
|
11
|
+
*/
|
|
12
|
+
readonly service: IService;
|
|
13
|
+
/**
|
|
14
|
+
* The AZ isolated impact alarms, one for each AZ
|
|
15
|
+
*/
|
|
16
|
+
readonly zonalAggregateAlarms: IAlarm[];
|
|
17
|
+
/**
|
|
18
|
+
* The aggregate regional impact alarm, typically a fault
|
|
19
|
+
* count across all critical operations
|
|
20
|
+
*/
|
|
21
|
+
readonly aggregateRegionalAlarm: IAlarm;
|
|
22
|
+
/**
|
|
23
|
+
* The interval for the dashboard
|
|
24
|
+
*/
|
|
25
|
+
readonly interval: Duration;
|
|
26
|
+
/**
|
|
27
|
+
* The AZ Mapper
|
|
28
|
+
*/
|
|
29
|
+
readonly azMapper: IAvailabilityZoneMapper;
|
|
30
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUF2YWlsYWJpbGl0eUFuZExhdGVuY3lEYXNoYm9hcmRQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXNoYm9hcmRzL3Byb3BzL1NlcnZpY2VBdmFpbGFiaWxpdHlBbmRMYXRlbmN5RGFzaGJvYXJkUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSUFsYXJtIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgSUF2YWlsYWJpbGl0eVpvbmVNYXBwZXIgfSBmcm9tICcuLi8uLi9hem1hcHBlci9JQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcic7XG5pbXBvcnQgeyBJU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL0lTZXJ2aWNlJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIHNlcnZpY2UgbGV2ZWwgZGFzaGJvYXJkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZUF2YWlsYWJpbGl0eUFuZExhdGVuY3lEYXNoYm9hcmRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBmb3IgdGhlIGRhc2hib2FyZFxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZTogSVNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIFRoZSBBWiBpc29sYXRlZCBpbXBhY3QgYWxhcm1zLCBvbmUgZm9yIGVhY2ggQVpcbiAgICovXG4gIHJlYWRvbmx5IHpvbmFsQWdncmVnYXRlQWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogVGhlIGFnZ3JlZ2F0ZSByZWdpb25hbCBpbXBhY3QgYWxhcm0sIHR5cGljYWxseSBhIGZhdWx0XG4gICAqIGNvdW50IGFjcm9zcyBhbGwgY3JpdGljYWwgb3BlcmF0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgYWdncmVnYXRlUmVnaW9uYWxBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgaW50ZXJ2YWwgZm9yIHRoZSBkYXNoYm9hcmRcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsOiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIEFaIE1hcHBlclxuICAgKi9cbiAgcmVhZG9ubHkgYXpNYXBwZXI6IElBdmFpbGFiaWxpdHlab25lTWFwcGVyO1xufVxuIl19
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export { OutlierDetectionAlgorithm } from './utilities/OutlierDetectionAlgorithm';
|
|
2
|
+
export { BasicServiceMultiAZObservabilityProps } from './services/props/BasicServiceMultiAZObservabilityProps';
|
|
3
|
+
export { InstrumentedServiceMultiAZObservabilityProps } from './services/props/InstrumentedServiceMultiAZObservabilityProps';
|
|
4
|
+
export { IService } from './services/IService';
|
|
5
|
+
export { Service } from './services/Service';
|
|
6
|
+
export { IOperation } from './services/IOperation';
|
|
7
|
+
export { Operation } from './services/Operation';
|
|
8
|
+
export { OperationMetricDetails } from './services/OperationMetricDetails';
|
|
9
|
+
export { IOperationMetricDetails } from './services/IOperationMetricDetails';
|
|
10
|
+
export { ServiceMetricDetails } from './services/ServiceMetricDetails';
|
|
11
|
+
export { IServiceMetricDetails } from './services/IServiceMetricDetails';
|
|
12
|
+
export { AddCanaryTestProps } from './canaries/props/AddCanaryTestProps';
|
|
13
|
+
export { ICanaryMetrics } from './services/ICanaryMetrics';
|
|
14
|
+
export { IContributorInsightRuleDetails } from './services/IContributorInsightRuleDetails';
|
|
15
|
+
export { IAvailabilityZoneMapper } from './azmapper/IAvailabilityZoneMapper';
|
|
16
|
+
export { AvailabilityZoneMapper } from './azmapper/AvailabilityZoneMapper';
|
|
17
|
+
export { AvailabilityZoneMapperProps } from './azmapper/props/AvailabilityZoneMapperProps';
|
|
18
|
+
export { ServiceProps } from './services/props/ServiceProps';
|
|
19
|
+
export { CanaryMetrics } from './services/CanaryMetrics';
|
|
20
|
+
export { CanaryMetricProps } from './services/props/CanaryMetricProps';
|
|
21
|
+
export { OperationProps } from './services/props/OperationProps';
|
|
22
|
+
export { OperationMetricDetailsProps } from './services/props/OperationMetricDetailsProps';
|
|
23
|
+
export { ContributorInsightRuleDetails } from './services/ContributorInsightRuleDetails';
|
|
24
|
+
export { ContributorInsightRuleDetailsProps } from './services/props/ContributorInsightRuleDetailsProps';
|
|
25
|
+
export { MetricDimensions } from './services/props/MetricDimensions';
|
|
26
|
+
export { NetworkConfigurationProps } from './canaries/props/NetworkConfigurationProps';
|
|
27
|
+
export { ServiceMetricDetailsProps } from './services/props/ServiceMetricDetailsProps';
|
|
28
|
+
export { InstrumentedServiceMultiAZObservability } from './services/InstrumentedServiceMultiAZObservability';
|
|
29
|
+
export { BasicServiceMultiAZObservability } from './services/BasicServiceMultiAZObservability';
|
|
30
|
+
export { IBasicServiceMultiAZObservability } from './services/IBasicServiceMultiAZObservability';
|
|
31
|
+
export { IInstrumentedServiceMultiAZObservability } from './services/IInstrumentedServiceMultiAZObservability';
|
|
32
|
+
export { IServiceAlarmsAndRules } from './alarmsandrules/IServiceAlarmsAndRules';
|
|
33
|
+
export { ICanaryTestMetricsOverride } from './services/ICanaryTestMetricsOverride';
|
|
34
|
+
export { CanaryTestMetricsOverride } from './services/CanaryTestMetricsOverride';
|
|
35
|
+
export { CanaryTestMetricsOverrideProps } from './services/props/CanaryTestMetricsOverrideProps';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CanaryTestMetricsOverride = exports.BasicServiceMultiAZObservability = exports.InstrumentedServiceMultiAZObservability = exports.MetricDimensions = exports.ContributorInsightRuleDetails = exports.CanaryMetrics = exports.AvailabilityZoneMapper = exports.ServiceMetricDetails = exports.OperationMetricDetails = exports.Operation = exports.Service = exports.OutlierDetectionAlgorithm = void 0;
|
|
4
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
var OutlierDetectionAlgorithm_1 = require("./utilities/OutlierDetectionAlgorithm");
|
|
7
|
+
Object.defineProperty(exports, "OutlierDetectionAlgorithm", { enumerable: true, get: function () { return OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm; } });
|
|
8
|
+
var Service_1 = require("./services/Service");
|
|
9
|
+
Object.defineProperty(exports, "Service", { enumerable: true, get: function () { return Service_1.Service; } });
|
|
10
|
+
var Operation_1 = require("./services/Operation");
|
|
11
|
+
Object.defineProperty(exports, "Operation", { enumerable: true, get: function () { return Operation_1.Operation; } });
|
|
12
|
+
var OperationMetricDetails_1 = require("./services/OperationMetricDetails");
|
|
13
|
+
Object.defineProperty(exports, "OperationMetricDetails", { enumerable: true, get: function () { return OperationMetricDetails_1.OperationMetricDetails; } });
|
|
14
|
+
var ServiceMetricDetails_1 = require("./services/ServiceMetricDetails");
|
|
15
|
+
Object.defineProperty(exports, "ServiceMetricDetails", { enumerable: true, get: function () { return ServiceMetricDetails_1.ServiceMetricDetails; } });
|
|
16
|
+
var AvailabilityZoneMapper_1 = require("./azmapper/AvailabilityZoneMapper");
|
|
17
|
+
Object.defineProperty(exports, "AvailabilityZoneMapper", { enumerable: true, get: function () { return AvailabilityZoneMapper_1.AvailabilityZoneMapper; } });
|
|
18
|
+
var CanaryMetrics_1 = require("./services/CanaryMetrics");
|
|
19
|
+
Object.defineProperty(exports, "CanaryMetrics", { enumerable: true, get: function () { return CanaryMetrics_1.CanaryMetrics; } });
|
|
20
|
+
var ContributorInsightRuleDetails_1 = require("./services/ContributorInsightRuleDetails");
|
|
21
|
+
Object.defineProperty(exports, "ContributorInsightRuleDetails", { enumerable: true, get: function () { return ContributorInsightRuleDetails_1.ContributorInsightRuleDetails; } });
|
|
22
|
+
var MetricDimensions_1 = require("./services/props/MetricDimensions");
|
|
23
|
+
Object.defineProperty(exports, "MetricDimensions", { enumerable: true, get: function () { return MetricDimensions_1.MetricDimensions; } });
|
|
24
|
+
var InstrumentedServiceMultiAZObservability_1 = require("./services/InstrumentedServiceMultiAZObservability");
|
|
25
|
+
Object.defineProperty(exports, "InstrumentedServiceMultiAZObservability", { enumerable: true, get: function () { return InstrumentedServiceMultiAZObservability_1.InstrumentedServiceMultiAZObservability; } });
|
|
26
|
+
var BasicServiceMultiAZObservability_1 = require("./services/BasicServiceMultiAZObservability");
|
|
27
|
+
Object.defineProperty(exports, "BasicServiceMultiAZObservability", { enumerable: true, get: function () { return BasicServiceMultiAZObservability_1.BasicServiceMultiAZObservability; } });
|
|
28
|
+
var CanaryTestMetricsOverride_1 = require("./services/CanaryTestMetricsOverride");
|
|
29
|
+
Object.defineProperty(exports, "CanaryTestMetricsOverride", { enumerable: true, get: function () { return CanaryTestMetricsOverride_1.CanaryTestMetricsOverride; } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0QyxtRkFBa0Y7QUFBekUsc0lBQUEseUJBQXlCLE9BQUE7QUFJbEMsOENBQTZDO0FBQXBDLGtHQUFBLE9BQU8sT0FBQTtBQUVoQixrREFBaUQ7QUFBeEMsc0dBQUEsU0FBUyxPQUFBO0FBQ2xCLDRFQUEyRTtBQUFsRSxnSUFBQSxzQkFBc0IsT0FBQTtBQUUvQix3RUFBdUU7QUFBOUQsNEhBQUEsb0JBQW9CLE9BQUE7QUFNN0IsNEVBQTJFO0FBQWxFLGdJQUFBLHNCQUFzQixPQUFBO0FBRy9CLDBEQUF5RDtBQUFoRCw4R0FBQSxhQUFhLE9BQUE7QUFJdEIsMEZBQXlGO0FBQWhGLDhJQUFBLDZCQUE2QixPQUFBO0FBRXRDLHNFQUFxRTtBQUE1RCxvSEFBQSxnQkFBZ0IsT0FBQTtBQUd6Qiw4R0FBNkc7QUFBcEcsa0tBQUEsdUNBQXVDLE9BQUE7QUFDaEQsZ0dBQStGO0FBQXRGLG9KQUFBLGdDQUFnQyxPQUFBO0FBS3pDLGtGQUFpRjtBQUF4RSxzSUFBQSx5QkFBeUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmV4cG9ydCB7IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0gfSBmcm9tICcuL3V0aWxpdGllcy9PdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtJztcbmV4cG9ydCB7IEJhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMgfSBmcm9tICcuL3NlcnZpY2VzL3Byb3BzL0Jhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMnO1xuZXhwb3J0IHsgSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMgfSBmcm9tICcuL3NlcnZpY2VzL3Byb3BzL0luc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eVByb3BzJztcbmV4cG9ydCB7IElTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9JU2VydmljZSc7XG5leHBvcnQgeyBTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9TZXJ2aWNlJztcbmV4cG9ydCB7IElPcGVyYXRpb24gfSBmcm9tICcuL3NlcnZpY2VzL0lPcGVyYXRpb24nO1xuZXhwb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSAnLi9zZXJ2aWNlcy9PcGVyYXRpb24nO1xuZXhwb3J0IHsgT3BlcmF0aW9uTWV0cmljRGV0YWlscyB9IGZyb20gJy4vc2VydmljZXMvT3BlcmF0aW9uTWV0cmljRGV0YWlscyc7XG5leHBvcnQgeyBJT3BlcmF0aW9uTWV0cmljRGV0YWlscyB9IGZyb20gJy4vc2VydmljZXMvSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMnO1xuZXhwb3J0IHsgU2VydmljZU1ldHJpY0RldGFpbHMgfSBmcm9tICcuL3NlcnZpY2VzL1NlcnZpY2VNZXRyaWNEZXRhaWxzJztcbmV4cG9ydCB7IElTZXJ2aWNlTWV0cmljRGV0YWlscyB9IGZyb20gJy4vc2VydmljZXMvSVNlcnZpY2VNZXRyaWNEZXRhaWxzJztcbmV4cG9ydCB7IEFkZENhbmFyeVRlc3RQcm9wcyB9IGZyb20gJy4vY2FuYXJpZXMvcHJvcHMvQWRkQ2FuYXJ5VGVzdFByb3BzJztcbmV4cG9ydCB7IElDYW5hcnlNZXRyaWNzIH0gZnJvbSAnLi9zZXJ2aWNlcy9JQ2FuYXJ5TWV0cmljcyc7XG5leHBvcnQgeyBJQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMgfSBmcm9tICcuL3NlcnZpY2VzL0lDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyc7XG5leHBvcnQgeyBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlciB9IGZyb20gJy4vYXptYXBwZXIvSUF2YWlsYWJpbGl0eVpvbmVNYXBwZXInO1xuZXhwb3J0IHsgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlciB9IGZyb20gJy4vYXptYXBwZXIvQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcic7XG5leHBvcnQgeyBBdmFpbGFiaWxpdHlab25lTWFwcGVyUHJvcHMgfSBmcm9tICcuL2F6bWFwcGVyL3Byb3BzL0F2YWlsYWJpbGl0eVpvbmVNYXBwZXJQcm9wcyc7XG5leHBvcnQgeyBTZXJ2aWNlUHJvcHMgfSBmcm9tICcuL3NlcnZpY2VzL3Byb3BzL1NlcnZpY2VQcm9wcyc7XG5leHBvcnQgeyBDYW5hcnlNZXRyaWNzIH0gZnJvbSAnLi9zZXJ2aWNlcy9DYW5hcnlNZXRyaWNzJztcbmV4cG9ydCB7IENhbmFyeU1ldHJpY1Byb3BzIH0gZnJvbSAnLi9zZXJ2aWNlcy9wcm9wcy9DYW5hcnlNZXRyaWNQcm9wcyc7XG5leHBvcnQgeyBPcGVyYXRpb25Qcm9wcyB9IGZyb20gJy4vc2VydmljZXMvcHJvcHMvT3BlcmF0aW9uUHJvcHMnO1xuZXhwb3J0IHsgT3BlcmF0aW9uTWV0cmljRGV0YWlsc1Byb3BzIH0gZnJvbSAnLi9zZXJ2aWNlcy9wcm9wcy9PcGVyYXRpb25NZXRyaWNEZXRhaWxzUHJvcHMnO1xuZXhwb3J0IHsgQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMgfSBmcm9tICcuL3NlcnZpY2VzL0NvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzJztcbmV4cG9ydCB7IENvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzUHJvcHMgfSBmcm9tICcuL3NlcnZpY2VzL3Byb3BzL0NvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzUHJvcHMnO1xuZXhwb3J0IHsgTWV0cmljRGltZW5zaW9ucyB9IGZyb20gJy4vc2VydmljZXMvcHJvcHMvTWV0cmljRGltZW5zaW9ucyc7XG5leHBvcnQgeyBOZXR3b3JrQ29uZmlndXJhdGlvblByb3BzIH0gZnJvbSAnLi9jYW5hcmllcy9wcm9wcy9OZXR3b3JrQ29uZmlndXJhdGlvblByb3BzJztcbmV4cG9ydCB7IFNlcnZpY2VNZXRyaWNEZXRhaWxzUHJvcHMgfSBmcm9tICcuL3NlcnZpY2VzL3Byb3BzL1NlcnZpY2VNZXRyaWNEZXRhaWxzUHJvcHMnO1xuZXhwb3J0IHsgSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5IH0gZnJvbSAnLi9zZXJ2aWNlcy9JbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHknO1xuZXhwb3J0IHsgQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHkgfSBmcm9tICcuL3NlcnZpY2VzL0Jhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5JztcbmV4cG9ydCB7IElCYXNpY1NlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eSB9IGZyb20gJy4vc2VydmljZXMvSUJhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5JztcbmV4cG9ydCB7IElJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHkgfSBmcm9tICcuL3NlcnZpY2VzL0lJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHknO1xuZXhwb3J0IHsgSVNlcnZpY2VBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vYWxhcm1zYW5kcnVsZXMvSVNlcnZpY2VBbGFybXNBbmRSdWxlcyc7XG5leHBvcnQgeyBJQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZSB9IGZyb20gJy4vc2VydmljZXMvSUNhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGUnO1xuZXhwb3J0IHsgQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZSB9IGZyb20gJy4vc2VydmljZXMvQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZSc7XG5leHBvcnQgeyBDYW5hcnlUZXN0TWV0cmljc092ZXJyaWRlUHJvcHMgfSBmcm9tICcuL3NlcnZpY2VzL3Byb3BzL0NhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGVQcm9wcyc7XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Duration } from 'aws-cdk-lib';
|
|
2
|
+
import { IMetric } from 'aws-cdk-lib/aws-cloudwatch';
|
|
3
|
+
export declare class ApplicationLoadBalancerMetrics {
|
|
4
|
+
/**
|
|
5
|
+
* Creates a regional fault count metric using 5xx target and load balancer
|
|
6
|
+
* metrics against total requests for the specified load balancer
|
|
7
|
+
* @param period
|
|
8
|
+
* @param loadBalancerFullName
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
static createRegionalApplicationLoadBalancerFaultRateMetric(loadBalancerFullName: string, period: Duration): IMetric;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a zonal fault count metric using 5xx target and load balancer
|
|
14
|
+
* metrics against total requests for the specified load balancer
|
|
15
|
+
* @param loadBalancerFullName
|
|
16
|
+
* @param availabilityZoneName
|
|
17
|
+
* @param period
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
static createZonalApplicationLoadBalancerFaultRateMetric(loadBalancerFullName: string, availabilityZoneName: string, period: Duration): IMetric;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a regional processed bytes metric for the specified load balancer
|
|
23
|
+
* @param loadBalancerFullName
|
|
24
|
+
* @param period
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
static createRegionalApplicationLoadBalancerProcessedBytesMetric(loadBalancerFullName: string, period: Duration): IMetric;
|
|
28
|
+
/**
|
|
29
|
+
* Creates a zonal processed bytes metric for the specified load balancer
|
|
30
|
+
* @param loadBalancerFullName
|
|
31
|
+
* @param availabilityZoneName
|
|
32
|
+
* @param period
|
|
33
|
+
* @returns IMetric
|
|
34
|
+
*/
|
|
35
|
+
static createZonalApplicationLoadBalancerProcessedBytesMetric(loadBalancerFullName: string, availabilityZoneName: string, period: Duration): IMetric;
|
|
36
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationLoadBalancerMetrics = void 0;
|
|
4
|
+
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
5
|
+
class ApplicationLoadBalancerMetrics {
|
|
6
|
+
/**
|
|
7
|
+
* Creates a regional fault count metric using 5xx target and load balancer
|
|
8
|
+
* metrics against total requests for the specified load balancer
|
|
9
|
+
* @param period
|
|
10
|
+
* @param loadBalancerFullName
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
static createRegionalApplicationLoadBalancerFaultRateMetric(loadBalancerFullName, period) {
|
|
14
|
+
return new aws_cloudwatch_1.MathExpression({
|
|
15
|
+
expression: '((m1 + m2) / m3) * 100',
|
|
16
|
+
label: 'Fault Rate',
|
|
17
|
+
period: period,
|
|
18
|
+
usingMetrics: {
|
|
19
|
+
m1: new aws_cloudwatch_1.Metric({
|
|
20
|
+
metricName: 'HTTPCode_Target_5XX_Count',
|
|
21
|
+
namespace: 'AWS/ApplicationELB',
|
|
22
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
23
|
+
period: period,
|
|
24
|
+
statistic: 'Sum',
|
|
25
|
+
dimensionsMap: {
|
|
26
|
+
LoadBalancer: loadBalancerFullName,
|
|
27
|
+
},
|
|
28
|
+
label: '5xxTarget',
|
|
29
|
+
}),
|
|
30
|
+
m2: new aws_cloudwatch_1.Metric({
|
|
31
|
+
metricName: 'HTTPCode_ELB_5XX_Count',
|
|
32
|
+
namespace: 'AWS/ApplicationELB',
|
|
33
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
34
|
+
period: period,
|
|
35
|
+
statistic: 'Sum',
|
|
36
|
+
dimensionsMap: {
|
|
37
|
+
LoadBalancer: loadBalancerFullName,
|
|
38
|
+
},
|
|
39
|
+
label: '5xxELB',
|
|
40
|
+
}),
|
|
41
|
+
m3: new aws_cloudwatch_1.Metric({
|
|
42
|
+
metricName: 'RequestCount',
|
|
43
|
+
namespace: 'AWS/ApplicationELB',
|
|
44
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
45
|
+
period: period,
|
|
46
|
+
statistic: 'Sum',
|
|
47
|
+
dimensionsMap: {
|
|
48
|
+
LoadBalancer: loadBalancerFullName,
|
|
49
|
+
},
|
|
50
|
+
label: 'Requests',
|
|
51
|
+
}),
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Creates a zonal fault count metric using 5xx target and load balancer
|
|
57
|
+
* metrics against total requests for the specified load balancer
|
|
58
|
+
* @param loadBalancerFullName
|
|
59
|
+
* @param availabilityZoneName
|
|
60
|
+
* @param period
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
63
|
+
static createZonalApplicationLoadBalancerFaultRateMetric(loadBalancerFullName, availabilityZoneName, period) {
|
|
64
|
+
return new aws_cloudwatch_1.MathExpression({
|
|
65
|
+
expression: '((m1 + m2) / m3) * 100',
|
|
66
|
+
label: 'Fault Rate',
|
|
67
|
+
period: period,
|
|
68
|
+
usingMetrics: {
|
|
69
|
+
m1: new aws_cloudwatch_1.Metric({
|
|
70
|
+
metricName: 'HTTPCode_Target_5XX_Count',
|
|
71
|
+
namespace: 'AWS/ApplicationELB',
|
|
72
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
73
|
+
period: period,
|
|
74
|
+
statistic: 'Sum',
|
|
75
|
+
dimensionsMap: {
|
|
76
|
+
LoadBalancer: loadBalancerFullName,
|
|
77
|
+
AvailabilityZone: availabilityZoneName,
|
|
78
|
+
},
|
|
79
|
+
label: '5xxTarget',
|
|
80
|
+
}),
|
|
81
|
+
m2: new aws_cloudwatch_1.Metric({
|
|
82
|
+
metricName: 'HTTPCode_ELB_5XX_Count',
|
|
83
|
+
namespace: 'AWS/ApplicationELB',
|
|
84
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
85
|
+
period: period,
|
|
86
|
+
statistic: 'Sum',
|
|
87
|
+
dimensionsMap: {
|
|
88
|
+
LoadBalancer: loadBalancerFullName,
|
|
89
|
+
AvailabilityZone: availabilityZoneName,
|
|
90
|
+
},
|
|
91
|
+
label: '5xxELB',
|
|
92
|
+
}),
|
|
93
|
+
m3: new aws_cloudwatch_1.Metric({
|
|
94
|
+
metricName: 'RequestCount',
|
|
95
|
+
namespace: 'AWS/ApplicationELB',
|
|
96
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
97
|
+
period: period,
|
|
98
|
+
statistic: 'Sum',
|
|
99
|
+
dimensionsMap: {
|
|
100
|
+
LoadBalancer: loadBalancerFullName,
|
|
101
|
+
AvailabilityZone: availabilityZoneName,
|
|
102
|
+
},
|
|
103
|
+
label: 'Requests',
|
|
104
|
+
}),
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Creates a regional processed bytes metric for the specified load balancer
|
|
110
|
+
* @param loadBalancerFullName
|
|
111
|
+
* @param period
|
|
112
|
+
* @returns
|
|
113
|
+
*/
|
|
114
|
+
static createRegionalApplicationLoadBalancerProcessedBytesMetric(loadBalancerFullName, period) {
|
|
115
|
+
return new aws_cloudwatch_1.Metric({
|
|
116
|
+
metricName: 'ProcessedBytes',
|
|
117
|
+
namespace: 'AWS/ApplicationELB',
|
|
118
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
119
|
+
period: period,
|
|
120
|
+
statistic: 'Sum',
|
|
121
|
+
dimensionsMap: {
|
|
122
|
+
LoadBalancer: loadBalancerFullName,
|
|
123
|
+
},
|
|
124
|
+
label: 'ProcessedBytes',
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Creates a zonal processed bytes metric for the specified load balancer
|
|
129
|
+
* @param loadBalancerFullName
|
|
130
|
+
* @param availabilityZoneName
|
|
131
|
+
* @param period
|
|
132
|
+
* @returns IMetric
|
|
133
|
+
*/
|
|
134
|
+
static createZonalApplicationLoadBalancerProcessedBytesMetric(loadBalancerFullName, availabilityZoneName, period) {
|
|
135
|
+
return new aws_cloudwatch_1.Metric({
|
|
136
|
+
metricName: 'ProcessedBytes',
|
|
137
|
+
namespace: 'AWS/ApplicationELB',
|
|
138
|
+
unit: aws_cloudwatch_1.Unit.COUNT,
|
|
139
|
+
period: period,
|
|
140
|
+
statistic: 'Sum',
|
|
141
|
+
dimensionsMap: {
|
|
142
|
+
LoadBalancer: loadBalancerFullName,
|
|
143
|
+
AvailabilityZone: availabilityZoneName,
|
|
144
|
+
},
|
|
145
|
+
label: 'ProcessedBytes',
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.ApplicationLoadBalancerMetrics = ApplicationLoadBalancerMetrics;
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21ldHJpY3MvQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLCtEQUtvQztBQUVwQyxNQUFhLDhCQUE4QjtJQUN6Qzs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsb0RBQW9ELENBQ3pELG9CQUE0QixFQUM1QixNQUFnQjtRQUVoQixPQUFPLElBQUksK0JBQWMsQ0FBQztZQUN4QixVQUFVLEVBQUUsd0JBQXdCO1lBQ3BDLEtBQUssRUFBRSxZQUFZO1lBQ25CLE1BQU0sRUFBRSxNQUFNO1lBQ2QsWUFBWSxFQUFFO2dCQUNaLEVBQUUsRUFBRSxJQUFJLHVCQUFNLENBQUM7b0JBQ2IsVUFBVSxFQUFFLDJCQUEyQjtvQkFDdkMsU0FBUyxFQUFFLG9CQUFvQjtvQkFDL0IsSUFBSSxFQUFFLHFCQUFJLENBQUMsS0FBSztvQkFDaEIsTUFBTSxFQUFFLE1BQU07b0JBQ2QsU0FBUyxFQUFFLEtBQUs7b0JBQ2hCLGFBQWEsRUFBRTt3QkFDYixZQUFZLEVBQUUsb0JBQW9CO3FCQUNuQztvQkFDRCxLQUFLLEVBQUUsV0FBVztpQkFDbkIsQ0FBQztnQkFDRixFQUFFLEVBQUUsSUFBSSx1QkFBTSxDQUFDO29CQUNiLFVBQVUsRUFBRSx3QkFBd0I7b0JBQ3BDLFNBQVMsRUFBRSxvQkFBb0I7b0JBQy9CLElBQUksRUFBRSxxQkFBSSxDQUFDLEtBQUs7b0JBQ2hCLE1BQU0sRUFBRSxNQUFNO29CQUNkLFNBQVMsRUFBRSxLQUFLO29CQUNoQixhQUFhLEVBQUU7d0JBQ2IsWUFBWSxFQUFFLG9CQUFvQjtxQkFDbkM7b0JBQ0QsS0FBSyxFQUFFLFFBQVE7aUJBQ2hCLENBQUM7Z0JBQ0YsRUFBRSxFQUFFLElBQUksdUJBQU0sQ0FBQztvQkFDYixVQUFVLEVBQUUsY0FBYztvQkFDMUIsU0FBUyxFQUFFLG9CQUFvQjtvQkFDL0IsSUFBSSxFQUFFLHFCQUFJLENBQUMsS0FBSztvQkFDaEIsTUFBTSxFQUFFLE1BQU07b0JBQ2QsU0FBUyxFQUFFLEtBQUs7b0JBQ2hCLGFBQWEsRUFBRTt3QkFDYixZQUFZLEVBQUUsb0JBQW9CO3FCQUNuQztvQkFDRCxLQUFLLEVBQUUsVUFBVTtpQkFDbEIsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsaURBQWlELENBQ3RELG9CQUE0QixFQUM1QixvQkFBNEIsRUFDNUIsTUFBZ0I7UUFFaEIsT0FBTyxJQUFJLCtCQUFjLENBQUM7WUFDeEIsVUFBVSxFQUFFLHdCQUF3QjtZQUNwQyxLQUFLLEVBQUUsWUFBWTtZQUNuQixNQUFNLEVBQUUsTUFBTTtZQUNkLFlBQVksRUFBRTtnQkFDWixFQUFFLEVBQUUsSUFBSSx1QkFBTSxDQUFDO29CQUNiLFVBQVUsRUFBRSwyQkFBMkI7b0JBQ3ZDLFNBQVMsRUFBRSxvQkFBb0I7b0JBQy9CLElBQUksRUFBRSxxQkFBSSxDQUFDLEtBQUs7b0JBQ2hCLE1BQU0sRUFBRSxNQUFNO29CQUNkLFNBQVMsRUFBRSxLQUFLO29CQUNoQixhQUFhLEVBQUU7d0JBQ2IsWUFBWSxFQUFFLG9CQUFvQjt3QkFDbEMsZ0JBQWdCLEVBQUUsb0JBQW9CO3FCQUN2QztvQkFDRCxLQUFLLEVBQUUsV0FBVztpQkFDbkIsQ0FBQztnQkFDRixFQUFFLEVBQUUsSUFBSSx1QkFBTSxDQUFDO29CQUNiLFVBQVUsRUFBRSx3QkFBd0I7b0JBQ3BDLFNBQVMsRUFBRSxvQkFBb0I7b0JBQy9CLElBQUksRUFBRSxxQkFBSSxDQUFDLEtBQUs7b0JBQ2hCLE1BQU0sRUFBRSxNQUFNO29CQUNkLFNBQVMsRUFBRSxLQUFLO29CQUNoQixhQUFhLEVBQUU7d0JBQ2IsWUFBWSxFQUFFLG9CQUFvQjt3QkFDbEMsZ0JBQWdCLEVBQUUsb0JBQW9CO3FCQUN2QztvQkFDRCxLQUFLLEVBQUUsUUFBUTtpQkFDaEIsQ0FBQztnQkFDRixFQUFFLEVBQUUsSUFBSSx1QkFBTSxDQUFDO29CQUNiLFVBQVUsRUFBRSxjQUFjO29CQUMxQixTQUFTLEVBQUUsb0JBQW9CO29CQUMvQixJQUFJLEVBQUUscUJBQUksQ0FBQyxLQUFLO29CQUNoQixNQUFNLEVBQUUsTUFBTTtvQkFDZCxTQUFTLEVBQUUsS0FBSztvQkFDaEIsYUFBYSxFQUFFO3dCQUNiLFlBQVksRUFBRSxvQkFBb0I7d0JBQ2xDLGdCQUFnQixFQUFFLG9CQUFvQjtxQkFDdkM7b0JBQ0QsS0FBSyxFQUFFLFVBQVU7aUJBQ2xCLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyx5REFBeUQsQ0FDOUQsb0JBQTRCLEVBQzVCLE1BQWdCO1FBRWhCLE9BQU8sSUFBSSx1QkFBTSxDQUFDO1lBQ2hCLFVBQVUsRUFBRSxnQkFBZ0I7WUFDNUIsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixJQUFJLEVBQUUscUJBQUksQ0FBQyxLQUFLO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsU0FBUyxFQUFFLEtBQUs7WUFDaEIsYUFBYSxFQUFFO2dCQUNiLFlBQVksRUFBRSxvQkFBb0I7YUFDbkM7WUFDRCxLQUFLLEVBQUUsZ0JBQWdCO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsc0RBQXNELENBQzNELG9CQUE0QixFQUM1QixvQkFBNEIsRUFDNUIsTUFBZ0I7UUFFaEIsT0FBTyxJQUFJLHVCQUFNLENBQUM7WUFDaEIsVUFBVSxFQUFFLGdCQUFnQjtZQUM1QixTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLElBQUksRUFBRSxxQkFBSSxDQUFDLEtBQUs7WUFDaEIsTUFBTSxFQUFFLE1BQU07WUFDZCxTQUFTLEVBQUUsS0FBSztZQUNoQixhQUFhLEVBQUU7Z0JBQ2IsWUFBWSxFQUFFLG9CQUFvQjtnQkFDbEMsZ0JBQWdCLEVBQUUsb0JBQW9CO2FBQ3ZDO1lBQ0QsS0FBSyxFQUFFLGdCQUFnQjtTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFoS0Qsd0VBZ0tDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBJTWV0cmljLFxuICBNYXRoRXhwcmVzc2lvbixcbiAgTWV0cmljLFxuICBVbml0LFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlck1ldHJpY3Mge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIHJlZ2lvbmFsIGZhdWx0IGNvdW50IG1ldHJpYyB1c2luZyA1eHggdGFyZ2V0IGFuZCBsb2FkIGJhbGFuY2VyXG4gICAqIG1ldHJpY3MgYWdhaW5zdCB0b3RhbCByZXF1ZXN0cyBmb3IgdGhlIHNwZWNpZmllZCBsb2FkIGJhbGFuY2VyXG4gICAqIEBwYXJhbSBwZXJpb2RcbiAgICogQHBhcmFtIGxvYWRCYWxhbmNlckZ1bGxOYW1lXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlUmVnaW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckZhdWx0UmF0ZU1ldHJpYyhcbiAgICBsb2FkQmFsYW5jZXJGdWxsTmFtZTogc3RyaW5nLFxuICAgIHBlcmlvZDogRHVyYXRpb24sXG4gICk6IElNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgZXhwcmVzc2lvbjogJygobTEgKyBtMikgLyBtMykgKiAxMDAnLFxuICAgICAgbGFiZWw6ICdGYXVsdCBSYXRlJyxcbiAgICAgIHBlcmlvZDogcGVyaW9kLFxuICAgICAgdXNpbmdNZXRyaWNzOiB7XG4gICAgICAgIG0xOiBuZXcgTWV0cmljKHtcbiAgICAgICAgICBtZXRyaWNOYW1lOiAnSFRUUENvZGVfVGFyZ2V0XzVYWF9Db3VudCcsXG4gICAgICAgICAgbmFtZXNwYWNlOiAnQVdTL0FwcGxpY2F0aW9uRUxCJyxcbiAgICAgICAgICB1bml0OiBVbml0LkNPVU5ULFxuICAgICAgICAgIHBlcmlvZDogcGVyaW9kLFxuICAgICAgICAgIHN0YXRpc3RpYzogJ1N1bScsXG4gICAgICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICAgICAgTG9hZEJhbGFuY2VyOiBsb2FkQmFsYW5jZXJGdWxsTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxhYmVsOiAnNXh4VGFyZ2V0JyxcbiAgICAgICAgfSksXG4gICAgICAgIG0yOiBuZXcgTWV0cmljKHtcbiAgICAgICAgICBtZXRyaWNOYW1lOiAnSFRUUENvZGVfRUxCXzVYWF9Db3VudCcsXG4gICAgICAgICAgbmFtZXNwYWNlOiAnQVdTL0FwcGxpY2F0aW9uRUxCJyxcbiAgICAgICAgICB1bml0OiBVbml0LkNPVU5ULFxuICAgICAgICAgIHBlcmlvZDogcGVyaW9kLFxuICAgICAgICAgIHN0YXRpc3RpYzogJ1N1bScsXG4gICAgICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICAgICAgTG9hZEJhbGFuY2VyOiBsb2FkQmFsYW5jZXJGdWxsTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxhYmVsOiAnNXh4RUxCJyxcbiAgICAgICAgfSksXG4gICAgICAgIG0zOiBuZXcgTWV0cmljKHtcbiAgICAgICAgICBtZXRyaWNOYW1lOiAnUmVxdWVzdENvdW50JyxcbiAgICAgICAgICBuYW1lc3BhY2U6ICdBV1MvQXBwbGljYXRpb25FTEInLFxuICAgICAgICAgIHVuaXQ6IFVuaXQuQ09VTlQsXG4gICAgICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICAgICAgc3RhdGlzdGljOiAnU3VtJyxcbiAgICAgICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgICAgICBMb2FkQmFsYW5jZXI6IGxvYWRCYWxhbmNlckZ1bGxOYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGFiZWw6ICdSZXF1ZXN0cycsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgem9uYWwgZmF1bHQgY291bnQgbWV0cmljIHVzaW5nIDV4eCB0YXJnZXQgYW5kIGxvYWQgYmFsYW5jZXJcbiAgICogbWV0cmljcyBhZ2FpbnN0IHRvdGFsIHJlcXVlc3RzIGZvciB0aGUgc3BlY2lmaWVkIGxvYWQgYmFsYW5jZXJcbiAgICogQHBhcmFtIGxvYWRCYWxhbmNlckZ1bGxOYW1lXG4gICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lTmFtZVxuICAgKiBAcGFyYW0gcGVyaW9kXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlWm9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckZhdWx0UmF0ZU1ldHJpYyhcbiAgICBsb2FkQmFsYW5jZXJGdWxsTmFtZTogc3RyaW5nLFxuICAgIGF2YWlsYWJpbGl0eVpvbmVOYW1lOiBzdHJpbmcsXG4gICAgcGVyaW9kOiBEdXJhdGlvbixcbiAgKTogSU1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNYXRoRXhwcmVzc2lvbih7XG4gICAgICBleHByZXNzaW9uOiAnKChtMSArIG0yKSAvIG0zKSAqIDEwMCcsXG4gICAgICBsYWJlbDogJ0ZhdWx0IFJhdGUnLFxuICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICB1c2luZ01ldHJpY3M6IHtcbiAgICAgICAgbTE6IG5ldyBNZXRyaWMoe1xuICAgICAgICAgIG1ldHJpY05hbWU6ICdIVFRQQ29kZV9UYXJnZXRfNVhYX0NvdW50JyxcbiAgICAgICAgICBuYW1lc3BhY2U6ICdBV1MvQXBwbGljYXRpb25FTEInLFxuICAgICAgICAgIHVuaXQ6IFVuaXQuQ09VTlQsXG4gICAgICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICAgICAgc3RhdGlzdGljOiAnU3VtJyxcbiAgICAgICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgICAgICBMb2FkQmFsYW5jZXI6IGxvYWRCYWxhbmNlckZ1bGxOYW1lLFxuICAgICAgICAgICAgQXZhaWxhYmlsaXR5Wm9uZTogYXZhaWxhYmlsaXR5Wm9uZU5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsYWJlbDogJzV4eFRhcmdldCcsXG4gICAgICAgIH0pLFxuICAgICAgICBtMjogbmV3IE1ldHJpYyh7XG4gICAgICAgICAgbWV0cmljTmFtZTogJ0hUVFBDb2RlX0VMQl81WFhfQ291bnQnLFxuICAgICAgICAgIG5hbWVzcGFjZTogJ0FXUy9BcHBsaWNhdGlvbkVMQicsXG4gICAgICAgICAgdW5pdDogVW5pdC5DT1VOVCxcbiAgICAgICAgICBwZXJpb2Q6IHBlcmlvZCxcbiAgICAgICAgICBzdGF0aXN0aWM6ICdTdW0nLFxuICAgICAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgICAgIExvYWRCYWxhbmNlcjogbG9hZEJhbGFuY2VyRnVsbE5hbWUsXG4gICAgICAgICAgICBBdmFpbGFiaWxpdHlab25lOiBhdmFpbGFiaWxpdHlab25lTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxhYmVsOiAnNXh4RUxCJyxcbiAgICAgICAgfSksXG4gICAgICAgIG0zOiBuZXcgTWV0cmljKHtcbiAgICAgICAgICBtZXRyaWNOYW1lOiAnUmVxdWVzdENvdW50JyxcbiAgICAgICAgICBuYW1lc3BhY2U6ICdBV1MvQXBwbGljYXRpb25FTEInLFxuICAgICAgICAgIHVuaXQ6IFVuaXQuQ09VTlQsXG4gICAgICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICAgICAgc3RhdGlzdGljOiAnU3VtJyxcbiAgICAgICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgICAgICBMb2FkQmFsYW5jZXI6IGxvYWRCYWxhbmNlckZ1bGxOYW1lLFxuICAgICAgICAgICAgQXZhaWxhYmlsaXR5Wm9uZTogYXZhaWxhYmlsaXR5Wm9uZU5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsYWJlbDogJ1JlcXVlc3RzJyxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSByZWdpb25hbCBwcm9jZXNzZWQgYnl0ZXMgbWV0cmljIGZvciB0aGUgc3BlY2lmaWVkIGxvYWQgYmFsYW5jZXJcbiAgICogQHBhcmFtIGxvYWRCYWxhbmNlckZ1bGxOYW1lXG4gICAqIEBwYXJhbSBwZXJpb2RcbiAgICogQHJldHVybnNcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVSZWdpb25hbEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvY2Vzc2VkQnl0ZXNNZXRyaWMoXG4gICAgbG9hZEJhbGFuY2VyRnVsbE5hbWU6IHN0cmluZyxcbiAgICBwZXJpb2Q6IER1cmF0aW9uLFxuICApOiBJTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiAnUHJvY2Vzc2VkQnl0ZXMnLFxuICAgICAgbmFtZXNwYWNlOiAnQVdTL0FwcGxpY2F0aW9uRUxCJyxcbiAgICAgIHVuaXQ6IFVuaXQuQ09VTlQsXG4gICAgICBwZXJpb2Q6IHBlcmlvZCxcbiAgICAgIHN0YXRpc3RpYzogJ1N1bScsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIExvYWRCYWxhbmNlcjogbG9hZEJhbGFuY2VyRnVsbE5hbWUsXG4gICAgICB9LFxuICAgICAgbGFiZWw6ICdQcm9jZXNzZWRCeXRlcycsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHpvbmFsIHByb2Nlc3NlZCBieXRlcyBtZXRyaWMgZm9yIHRoZSBzcGVjaWZpZWQgbG9hZCBiYWxhbmNlclxuICAgKiBAcGFyYW0gbG9hZEJhbGFuY2VyRnVsbE5hbWVcbiAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmVOYW1lXG4gICAqIEBwYXJhbSBwZXJpb2RcbiAgICogQHJldHVybnMgSU1ldHJpY1xuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVpvbmFsQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9jZXNzZWRCeXRlc01ldHJpYyhcbiAgICBsb2FkQmFsYW5jZXJGdWxsTmFtZTogc3RyaW5nLFxuICAgIGF2YWlsYWJpbGl0eVpvbmVOYW1lOiBzdHJpbmcsXG4gICAgcGVyaW9kOiBEdXJhdGlvbixcbiAgKTogSU1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogJ1Byb2Nlc3NlZEJ5dGVzJyxcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9BcHBsaWNhdGlvbkVMQicsXG4gICAgICB1bml0OiBVbml0LkNPVU5ULFxuICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICBzdGF0aXN0aWM6ICdTdW0nLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBMb2FkQmFsYW5jZXI6IGxvYWRCYWxhbmNlckZ1bGxOYW1lLFxuICAgICAgICBBdmFpbGFiaWxpdHlab25lOiBhdmFpbGFiaWxpdHlab25lTmFtZSxcbiAgICAgIH0sXG4gICAgICBsYWJlbDogJ1Byb2Nlc3NlZEJ5dGVzJyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { IMetric } from 'aws-cdk-lib/aws-cloudwatch';
|
|
2
|
+
import { AvailabilityMetricProps } from './props/AvailabilityMetricProps';
|
|
3
|
+
import { LatencyMetricProps } from './props/LatencyMetricProps';
|
|
4
|
+
/**
|
|
5
|
+
* Class for creating availability and latency metrics that can be used in alarms and graphs
|
|
6
|
+
*/
|
|
7
|
+
export declare class AvailabilityAndLatencyMetrics {
|
|
8
|
+
/**
|
|
9
|
+
* Increments a str by one char, for example
|
|
10
|
+
* a -> b
|
|
11
|
+
* z -> aa
|
|
12
|
+
* ad -> ae
|
|
13
|
+
*
|
|
14
|
+
* This wraps at z and adds a new 'a'
|
|
15
|
+
* @param str
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
static nextChar(str: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* General purpose method to create availability metrics
|
|
21
|
+
* @param props
|
|
22
|
+
* @param dimensions
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
static createAvailabilityMetric(props: AvailabilityMetricProps, dimensions: {
|
|
26
|
+
[key: string]: string;
|
|
27
|
+
}): IMetric;
|
|
28
|
+
/**
|
|
29
|
+
* General purpose method to create latency metrics, the reason this creates an array of metrics while the
|
|
30
|
+
* equivalent availability metric method doesn't is because in availability, we can just sum the count of different
|
|
31
|
+
* metric names while for latency we can't sum the count because that's not what's being measured. It allows the
|
|
32
|
+
* caller to decide if they only want to take the first name, or average all of the names
|
|
33
|
+
* (like SuccessLatency and BigItemSuccessLatency).
|
|
34
|
+
*
|
|
35
|
+
* @param props
|
|
36
|
+
* @param dimensions
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
static createLatencyMetrics(props: LatencyMetricProps, dimensions: {
|
|
40
|
+
[key: string]: string;
|
|
41
|
+
}): IMetric[];
|
|
42
|
+
/**
|
|
43
|
+
* Takes all of the success or failure latency metric names and creates an average of those
|
|
44
|
+
* names, if there's only 1 name, it just returns that metric
|
|
45
|
+
* @param props
|
|
46
|
+
* @param dimensions
|
|
47
|
+
*/
|
|
48
|
+
static createAverageLatencyMetric(props: LatencyMetricProps, dimensions: {
|
|
49
|
+
[key: string]: string;
|
|
50
|
+
}): IMetric;
|
|
51
|
+
/**
|
|
52
|
+
* Creates a count of high latency metrics for either SuccessLatency or FaultLatency, will total
|
|
53
|
+
* the count of requests that exceed a threshold you define in your statistic, like TC(200:) across
|
|
54
|
+
* all metric names that are part of either Success or Fault latency.
|
|
55
|
+
* @param props
|
|
56
|
+
* @returns
|
|
57
|
+
*/
|
|
58
|
+
static createLatencyCountMetric(props: LatencyMetricProps, dimensions: {
|
|
59
|
+
[key: string]: string;
|
|
60
|
+
}): IMetric;
|
|
61
|
+
}
|