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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/.jsii +85 -84
  2. package/API.md +54 -64
  3. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.d.ts +15 -0
  4. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.js +127 -1
  5. package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.d.ts +2 -2
  6. package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.js +1 -18
  7. package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.d.ts +8 -0
  8. package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.js +18 -1
  9. package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.d.ts +8 -0
  10. package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.js +18 -1
  11. package/lib/alarmsandrules/ServiceAlarmsAndRules.js +3 -3
  12. package/lib/alarmsandrules/props/CanaryOperationZonalAlarmsAndRulesProps.js +1 -1
  13. package/lib/azmapper/AvailabilityZoneMapper.js +1 -1
  14. package/lib/basic_observability/BasicServiceDashboard.js +130 -0
  15. package/lib/{services → basic_observability}/BasicServiceMultiAZObservability.d.ts +9 -7
  16. package/lib/basic_observability/BasicServiceMultiAZObservability.js +429 -0
  17. package/lib/basic_observability/IBasicServiceMultiAZObservability.d.ts +51 -0
  18. package/lib/basic_observability/IBasicServiceMultiAZObservability.js +5 -0
  19. package/lib/{dashboards → basic_observability}/props/BasicServiceDashboardProps.d.ts +3 -0
  20. package/lib/basic_observability/props/BasicServiceDashboardProps.js +3 -0
  21. package/lib/{services → basic_observability}/props/BasicServiceMultiAZObservabilityProps.d.ts +29 -46
  22. package/lib/basic_observability/props/BasicServiceMultiAZObservabilityProps.js +5 -0
  23. package/lib/basic_observability/props/RegionalApplicationLoadBalancerAvailabilityMetricProps.d.ts +8 -0
  24. package/lib/basic_observability/props/RegionalApplicationLoadBalancerAvailabilityMetricProps.js +3 -0
  25. package/lib/basic_observability/props/RegionalApplicationLoadBalancerLatencyMetricProps.d.ts +8 -0
  26. package/lib/basic_observability/props/RegionalApplicationLoadBalancerLatencyMetricProps.js +3 -0
  27. package/lib/basic_observability/props/ZonalApplicationLoadBalancerAvailabilityMetricProps.d.ts +10 -0
  28. package/lib/basic_observability/props/ZonalApplicationLoadBalancerAvailabilityMetricProps.js +3 -0
  29. package/lib/basic_observability/props/ZonalApplicationLoadBalancerLatencyMetricProps.d.ts +10 -0
  30. package/lib/basic_observability/props/ZonalApplicationLoadBalancerLatencyMetricProps.js +3 -0
  31. package/lib/canaries/src/canary.zip +0 -0
  32. package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +14 -16
  33. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +16 -7
  34. package/lib/index.d.ts +2 -2
  35. package/lib/index.js +2 -2
  36. package/lib/metrics/ApplicationLoadBalancerMetrics.d.ts +55 -17
  37. package/lib/metrics/ApplicationLoadBalancerMetrics.js +459 -105
  38. package/lib/metrics/AvailabilityAndLatencyMetrics.d.ts +0 -11
  39. package/lib/metrics/AvailabilityAndLatencyMetrics.js +1 -24
  40. package/lib/metrics/RegionalLatencyMetrics.js +7 -6
  41. package/lib/metrics/ZonalAvailabilityMetrics.js +2 -2
  42. package/lib/metrics/ZonalLatencyMetrics.js +4 -3
  43. package/lib/monitoring/src/monitoring-layer.zip +0 -0
  44. package/lib/outlier-detection/OutlierDetectionFunction.js +5 -5
  45. package/lib/outlier-detection/src/outlier-detection.zip +0 -0
  46. package/lib/outlier-detection/src/scipy-layer.zip +0 -0
  47. package/lib/services/CanaryMetrics.js +1 -1
  48. package/lib/services/CanaryTestMetricsOverride.js +1 -1
  49. package/lib/services/ContributorInsightRuleDetails.js +1 -1
  50. package/lib/services/InstrumentedServiceMultiAZObservability.js +1 -1
  51. package/lib/services/Operation.js +1 -1
  52. package/lib/services/OperationMetricDetails.js +1 -1
  53. package/lib/services/Service.js +1 -1
  54. package/lib/services/ServiceMetricDetails.js +1 -1
  55. package/lib/services/props/MetricDimensions.js +1 -1
  56. package/lib/utilities/LatencyMetricType.d.ts +5 -1
  57. package/lib/utilities/LatencyMetricType.js +5 -1
  58. package/lib/utilities/MetricsHelper.d.ts +13 -0
  59. package/lib/utilities/MetricsHelper.js +30 -0
  60. package/package.json +7 -7
  61. package/lib/dashboards/BasicServiceDashboard.js +0 -130
  62. package/lib/dashboards/props/BasicServiceDashboardProps.js +0 -3
  63. package/lib/services/BasicServiceMultiAZObservability.js +0 -504
  64. package/lib/services/props/BasicServiceMultiAZObservabilityProps.js +0 -3
  65. /package/lib/{dashboards → basic_observability}/BasicServiceDashboard.d.ts +0 -0
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUJhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljX29ic2VydmFiaWxpdHkvSUJhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBEYXNoYm9hcmQsIElBbGFybSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IENmbk5hdEdhdGV3YXkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgYmFzaWMgc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElCYXNpY1NlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eSBleHRlbmRzIElDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIE5BVCBHYXRld2F5cyBiZWluZyB1c2VkIGluIHRoZSBzZXJ2aWNlLCBlYWNoIHNldCBvZiBOQVQgR2F0ZXdheXNcbiAgICogYXJlIGtleWVkIGJ5IHRoZWlyIEF2YWlsYWJpbGl0eSBab25lIElkXG4gICAqL1xuICBuYXRHYXRld2F5cz86IHsgW2tleTogc3RyaW5nXTogQ2ZuTmF0R2F0ZXdheVtdIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VycyBiZWluZyB1c2VkIGJ5IHRoZSBzZXJ2aWNlXG4gICAqL1xuICBhcHBsaWNhdGlvbkxvYWRCYWxhbmNlcnM/OiBJQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2VcbiAgICovXG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGFybXMgaW5kaWNhdGluZyBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBOQVQgR1dcbiAgICogcGFja2V0IGxvc3MgYW5kIGhhcyBpc29sYXRlZCBpbXBhY3QuIFRoaXMgd2lsbCBiZSAxIGNvbXBvc2l0ZSBhbGFybSBcbiAgICogcGVyIEFaIHRoYXQgdHJpZ2dlcnMgaWYgYW55IE5BVCBHVyBpbiB0aGF0IEFaIHNlZXMgb3V0bGllciBpbXBhY3QuXG4gICAqL1xuICBuYXRHV1pvbmFsSXNvbGF0ZWRJbXBhY3RBbGFybXM/OiB7IFtrZXk6IHN0cmluZ106IElBbGFybSB9O1xuXG4gIC8qKlxuICAgKiBUaGUgYWxhcm1zIGluZGljYXRpbmcgaWYgYW4gQVogaXMgYW4gb3V0bGllciBmb3IgQUxCXG4gICAqIGZhdWx0cyBhbmQgaGFzIGlzb2xhdGVkIGltcGFjdC4gVGhpcyB3aWxsIGJlIDEgY29tcG9zaXRlIGFsYXJtIFxuICAgKiBwZXIgQVogdGhhdCB0cmlnZ2VycyBpZiBhbnkgQUxCIGluIHRoYXQgQVogc2VlcyBvdXRsaWVyIGltcGFjdC5cbiAgICovXG4gIGFsYlpvbmFsSXNvbGF0ZWRJbXBhY3RBbGFybXM/OiB7IFtrZXk6IHN0cmluZ106IElBbGFybSB9O1xuXG4gIC8qKlxuICAgKiBUaGUgYWxhcm1zIGluZGljYXRpbmcgaWYgYW4gQVogaGFzIGlzb2xhdGVkIGltcGFjdFxuICAgKiBmcm9tIGVpdGhlciBBTEIgb3IgTkFUIEdXIG1ldHJpY3NcbiAgICovXG4gIGFnZ3JlZ2F0ZVpvbmFsSXNvbGF0ZWRJbXBhY3RBbGFybXM6IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBkYXNoYm9hcmQgY3JlYXRlZCBmb3Igb2JzZXJ2YWJpbGl0eVxuICAgKi9cbiAgZGFzaGJvYXJkPzogRGFzaGJvYXJkO1xufVxuIl19
@@ -1,6 +1,9 @@
1
1
  import { Duration } from 'aws-cdk-lib';
2
2
  import { IAlarm, IMetric } from 'aws-cdk-lib/aws-cloudwatch';
3
3
  import { AvailabilityZoneMapper } from '../../azmapper/AvailabilityZoneMapper';
4
+ /**
5
+ * The properties for creating a dashboard with basic metrics
6
+ */
4
7
  export interface BasicServiceDashboardProps {
5
8
  readonly serviceName: string;
6
9
  readonly zonalLoadBalancerIsolatedImpactAlarms?: {
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlRGFzaGJvYXJkUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFzaWNfb2JzZXJ2YWJpbGl0eS9wcm9wcy9CYXNpY1NlcnZpY2VEYXNoYm9hcmRQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJQWxhcm0sIElNZXRyaWMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBBdmFpbGFiaWxpdHlab25lTWFwcGVyIH0gZnJvbSAnLi4vLi4vYXptYXBwZXIvQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcic7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgZGFzaGJvYXJkIHdpdGggYmFzaWMgbWV0cmljc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljU2VydmljZURhc2hib2FyZFByb3BzIHtcbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICByZWFkb25seSB6b25hbExvYWRCYWxhbmNlcklzb2xhdGVkSW1wYWN0QWxhcm1zPzogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfTtcblxuICByZWFkb25seSB6b25hbE5hdEdhdGV3YXlJc29sYXRlZEltcGFjdEFsYXJtcz86IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG5cbiAgcmVhZG9ubHkgem9uYWxBZ2dyZWdhdGVJc29sYXRlZEltcGFjdEFsYXJtczogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfTtcblxuICByZWFkb25seSB6b25hbExvYWRCYWxhbmNlckZhdWx0UmF0ZU1ldHJpY3M/OiB7IFtrZXk6IHN0cmluZ106IElNZXRyaWMgfTtcblxuICByZWFkb25seSB6b25hbE5hdEdhdGV3YXlQYWNrZXREcm9wTWV0cmljcz86IHsgW2tleTogc3RyaW5nXTogSU1ldHJpYyB9O1xuXG4gIHJlYWRvbmx5IGludGVydmFsPzogRHVyYXRpb247XG5cbiAgcmVhZG9ubHkgYXpNYXBwZXI6IEF2YWlsYWJpbGl0eVpvbmVNYXBwZXI7XG59XG4iXX0=
@@ -1,84 +1,72 @@
1
1
  import { Duration } from 'aws-cdk-lib';
2
2
  import { CfnNatGateway } from 'aws-cdk-lib/aws-ec2';
3
3
  import { IApplicationLoadBalancer } from 'aws-cdk-lib/aws-elasticloadbalancingv2';
4
- import { OutlierDetectionAlgorithm } from '../../utilities/OutlierDetectionAlgorithm';
5
4
  /**
6
- * Properties for creating a basic service
5
+ * Properties for creating basic multi-AZ observability
7
6
  */
8
7
  export interface BasicServiceMultiAZObservabilityProps {
9
8
  /**
10
9
  * (Optional) A map of Availability Zone name to the NAT Gateways
11
- * in that AZ
10
+ * in that AZ. One alarm per NAT GW will be created. If multiple NAT GWs
11
+ * are provided for a single AZ, those alarms will be aggregated into
12
+ * a composite alarm for the AZ. You must either specify an ALB or a NAT GW.
12
13
  *
13
- * @default - No alarms for NAT Gateways will be created
14
+ * @default "No alarms for NAT Gateways will be created"
14
15
  */
15
16
  readonly natGateways?: {
16
17
  [key: string]: CfnNatGateway[];
17
18
  };
18
19
  /**
19
- * The application load balancers being used by the service
20
+ * The application load balancers being used by the service. There will be an alarm created for
21
+ * each AZ for each ALB. Then, there will be a composite alarm for AZ created from the input
22
+ * of all ALBs. You must either specify an ALB or a NAT GW.
20
23
  *
21
- * @default - No alarms for ALBs will be created
24
+ * @default "No alarms for ALBs will be created"
22
25
  */
23
26
  readonly applicationLoadBalancers?: IApplicationLoadBalancer[];
24
27
  /**
25
28
  * The service's name
26
29
  */
27
30
  readonly serviceName: string;
28
- /**
29
- * The outlier threshold for determining if an AZ is an
30
- * outlier for latency or faults. This number is interpreted
31
- * differently for different outlier algorithms. When used with
32
- * STATIC, the number should be between 0 and 1 to represent the
33
- * percentage of errors (like .7) that an AZ must be responsible
34
- * for to be considered an outlier. When used with CHI_SQUARED, it
35
- * represents the p value that indicates statistical significance, like
36
- * 0.05 which means the skew has less than or equal to a 5% chance of
37
- * occuring. When used with Z_SCORE it indicates how many standard
38
- * deviations to evaluate for an AZ being an outlier, typically 3 is
39
- * standard for Z_SCORE.
40
- *
41
- * Standard defaults based on the outlier detection algorithm:
42
- * STATIC: 0.7
43
- * CHI_SQUARED: 0.05
44
- * Z_SCORE: 2
45
- * IQR: 1.5
46
- * MAD: 3
47
- *
48
- * @default - Depends on the outlier detection algorithm selected
49
- */
50
- readonly outlierThreshold?: number;
51
31
  /**
52
32
  * The amount of packet loss in a NAT GW to determine if an AZ
53
33
  * is actually impacted, recommendation is 0.01%
54
34
  *
55
- * @default - 0.01 (as in 0.01%)
35
+ * @default "0.01 (as in 0.01%)"
56
36
  */
57
37
  readonly packetLossImpactPercentageThreshold?: number;
58
38
  /**
59
39
  * The percentage of faults for a single ALB to consider an AZ
60
40
  * to be unhealthy, this should align with your availability goal. For example
61
- * 1% or 5%.
62
- *
63
- * @default - 5 (as in 5%)
41
+ * 1% or 5%, specify as 1 or 5.
64
42
  */
65
- readonly faultCountPercentageThreshold?: number;
43
+ readonly faultCountPercentageThreshold: number;
66
44
  /**
67
- * The algorithm to use for performing outlier detection
45
+ * The threshold in seconds for ALB targets whose responses are slower than this
46
+ * value at the specified percentile statistic.
68
47
  */
69
- readonly outlierDetectionAlgorithm: OutlierDetectionAlgorithm;
48
+ readonly latencyThreshold: number;
49
+ /**
50
+ * The statistic used to measure target response latency, like p99,
51
+ * which can be specified using Stats.percentile(99) or "p99".
52
+ */
53
+ readonly latencyStatistic: string;
70
54
  /**
71
55
  * The period to evaluate metrics
56
+ *
57
+ * @default Duration.minutes(1)
72
58
  */
73
- readonly period: Duration;
59
+ readonly period?: Duration;
74
60
  /**
75
61
  * Whether to create a dashboard displaying the metrics and alarms
62
+ *
63
+ * @default false
76
64
  */
77
- readonly createDashboard: boolean;
65
+ readonly createDashboard?: boolean;
78
66
  /**
79
67
  * Dashboard interval
80
68
  *
81
- * @default - 1 hour
69
+ * @default Duration.hours(1)
82
70
  */
83
71
  readonly interval?: Duration;
84
72
  /**
@@ -92,8 +80,7 @@ export interface BasicServiceMultiAZObservabilityProps {
92
80
  * stacks in this construct that deploy assets will copy the parent stack's
93
81
  * value for this property.
94
82
  *
95
- * @default - The assets will be uploaded to the default defined
96
- * asset location.
83
+ * @default "The assets will be uploaded to the default defined asset location."
97
84
  */
98
85
  readonly assetsBucketParameterName?: string;
99
86
  /**
@@ -108,11 +95,7 @@ export interface BasicServiceMultiAZObservabilityProps {
108
95
  * stacks in this construct that deploy assets will copy the parent stack's
109
96
  * value for this property.
110
97
  *
111
- * @default - No object prefix will be added to your custom assets location.
112
- * However, if you have overridden something like the 'BucketPrefix' property
113
- * in your stack synthesizer with a variable like "${AssetsBucketPrefix",
114
- * you will need to define this property so it doesn't cause a reference error
115
- * even if the prefix value is blank.
98
+ * @default "No object prefix will be added to your custom assets location. However, if you have overridden something like the 'BucketPrefix' property in your stack synthesizer with a variable like '${AssetsBucketPrefix}', you will need to define this property so it doesn't cause a reference error even if the prefix value is blank."
116
99
  */
117
100
  readonly assetsBucketPrefixParameterName?: string;
118
101
  /**
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNpY19vYnNlcnZhYmlsaXR5L3Byb3BzL0Jhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ2ZuTmF0R2F0ZXdheSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGJhc2ljIG11bHRpLUFaIG9ic2VydmFiaWxpdHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNpY1NlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eVByb3BzIHtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQSBtYXAgb2YgQXZhaWxhYmlsaXR5IFpvbmUgbmFtZSB0byB0aGUgTkFUIEdhdGV3YXlzXG4gICAqIGluIHRoYXQgQVouIE9uZSBhbGFybSBwZXIgTkFUIEdXIHdpbGwgYmUgY3JlYXRlZC4gSWYgbXVsdGlwbGUgTkFUIEdXc1xuICAgKiBhcmUgcHJvdmlkZWQgZm9yIGEgc2luZ2xlIEFaLCB0aG9zZSBhbGFybXMgd2lsbCBiZSBhZ2dyZWdhdGVkIGludG9cbiAgICogYSBjb21wb3NpdGUgYWxhcm0gZm9yIHRoZSBBWi4gWW91IG11c3QgZWl0aGVyIHNwZWNpZnkgYW4gQUxCIG9yIGEgTkFUIEdXLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIk5vIGFsYXJtcyBmb3IgTkFUIEdhdGV3YXlzIHdpbGwgYmUgY3JlYXRlZFwiXG4gICAqL1xuICByZWFkb25seSBuYXRHYXRld2F5cz86IHsgW2tleTogc3RyaW5nXTogQ2ZuTmF0R2F0ZXdheVtdIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VycyBiZWluZyB1c2VkIGJ5IHRoZSBzZXJ2aWNlLiBUaGVyZSB3aWxsIGJlIGFuIGFsYXJtIGNyZWF0ZWQgZm9yIFxuICAgKiBlYWNoIEFaIGZvciBlYWNoIEFMQi4gVGhlbiwgdGhlcmUgd2lsbCBiZSBhIGNvbXBvc2l0ZSBhbGFybSBmb3IgQVogY3JlYXRlZCBmcm9tIHRoZSBpbnB1dFxuICAgKiBvZiBhbGwgQUxCcy4gWW91IG11c3QgZWl0aGVyIHNwZWNpZnkgYW4gQUxCIG9yIGEgTkFUIEdXLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIk5vIGFsYXJtcyBmb3IgQUxCcyB3aWxsIGJlIGNyZWF0ZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJzPzogSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyW107XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlJ3MgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBwYWNrZXQgbG9zcyBpbiBhIE5BVCBHVyB0byBkZXRlcm1pbmUgaWYgYW4gQVpcbiAgICogaXMgYWN0dWFsbHkgaW1wYWN0ZWQsIHJlY29tbWVuZGF0aW9uIGlzIDAuMDElXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiMC4wMSAoYXMgaW4gMC4wMSUpXCJcbiAgICovXG4gIHJlYWRvbmx5IHBhY2tldExvc3NJbXBhY3RQZXJjZW50YWdlVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyY2VudGFnZSBvZiBmYXVsdHMgZm9yIGEgc2luZ2xlIEFMQiB0byBjb25zaWRlciBhbiBBWlxuICAgKiB0byBiZSB1bmhlYWx0aHksIHRoaXMgc2hvdWxkIGFsaWduIHdpdGggeW91ciBhdmFpbGFiaWxpdHkgZ29hbC4gRm9yIGV4YW1wbGVcbiAgICogMSUgb3IgNSUsIHNwZWNpZnkgYXMgMSBvciA1LlxuICAgKi9cbiAgcmVhZG9ubHkgZmF1bHRDb3VudFBlcmNlbnRhZ2VUaHJlc2hvbGQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBpbiBzZWNvbmRzIGZvciBBTEIgdGFyZ2V0cyB3aG9zZSByZXNwb25zZXMgYXJlIHNsb3dlciB0aGFuIHRoaXNcbiAgICogdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBwZXJjZW50aWxlIHN0YXRpc3RpYy5cbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lUaHJlc2hvbGQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHN0YXRpc3RpYyB1c2VkIHRvIG1lYXN1cmUgdGFyZ2V0IHJlc3BvbnNlIGxhdGVuY3ksIGxpa2UgcDk5LCBcbiAgICogd2hpY2ggY2FuIGJlIHNwZWNpZmllZCB1c2luZyBTdGF0cy5wZXJjZW50aWxlKDk5KSBvciBcInA5OVwiLlxuICAgKi9cbiAgcmVhZG9ubHkgbGF0ZW5jeVN0YXRpc3RpYzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIHRvIGV2YWx1YXRlIG1ldHJpY3NcbiAgICogXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoMSlcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNyZWF0ZSBhIGRhc2hib2FyZCBkaXNwbGF5aW5nIHRoZSBtZXRyaWNzIGFuZCBhbGFybXNcbiAgICogXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVEYXNoYm9hcmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEYXNoYm9hcmQgaW50ZXJ2YWxcbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uaG91cnMoMSlcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIElmIHlvdSBhcmUgbm90IHVzaW5nIGEgc3RhdGljIGJ1Y2tldCB0byBkZXBsb3kgYXNzZXRzLCBmb3IgZXhhbXBsZVxuICAgKiB5b3UgYXJlIHN5bnRoaW5nIHRoaXMgYW5kIGl0IGdldHMgdXBsb2FkZWQgdG8gYSBidWNrZXQgd2hvc2UgbmFtZVxuICAgKiBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IGxvY2F0aW9uIENESyBwcm92aWRlcyBieVxuICAgKiBkZWZhdWx0IGZvciBidW5kbGVkIGFzc2V0cy4gVGhlIHN0YWNrIGNvbnRhaW5pbmcgdGhpcyBjb250cnVjdCBuZWVkc1xuICAgKiB0byBoYXZlIGEgcGFyYW1ldGVyIGRlZmluZWQgdGhhdCB1c2VzIHRoaXMgbmFtZS4gVGhlIHVuZGVybHlpbmdcbiAgICogc3RhY2tzIGluIHRoaXMgY29uc3RydWN0IHRoYXQgZGVwbG95IGFzc2V0cyB3aWxsIGNvcHkgdGhlIHBhcmVudCBzdGFjaydzXG4gICAqIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIlRoZSBhc3NldHMgd2lsbCBiZSB1cGxvYWRlZCB0byB0aGUgZGVmYXVsdCBkZWZpbmVkIGFzc2V0IGxvY2F0aW9uLlwiXG4gICAqL1xuICByZWFkb25seSBhc3NldHNCdWNrZXRQYXJhbWV0ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiB5b3UgYXJlIG5vdCB1c2luZyBhIHN0YXRpYyBidWNrZXQgdG8gZGVwbG95IGFzc2V0cywgZm9yIGV4YW1wbGVcbiAgICogeW91IGFyZSBzeW50aGluZyB0aGlzIGFuZCBpdCBnZXRzIHVwbG9hZGVkIHRvIGEgYnVja2V0IHRoYXQgdXNlcyBhIHByZWZpeFxuICAgKiB0aGF0IGlzIHVua25vd24gdG8geW91IChtYXliZSB1c2VkIGFzIHBhcnQgb2YgYSBjZW50cmFsIENJL0NEIHN5c3RlbSlcbiAgICogYW5kIGlzIHByb3ZpZGVkIGFzIGEgcGFyYW1ldGVyIHRvIHlvdXIgc3RhY2ssIHNwZWNpZnkgdGhhdCBwYXJhbWV0ZXJcbiAgICogbmFtZSBoZXJlLiBJdCB3aWxsIG92ZXJyaWRlIHRoZSBidWNrZXQgcHJlZml4IENESyBwcm92aWRlcyBieVxuICAgKiBkZWZhdWx0IGZvciBidW5kbGVkIGFzc2V0cy4gVGhpcyBwcm9wZXJ0eSBvbmx5IHRha2VzIGVmZmVjdCBpZiB5b3VcbiAgICogZGVmaW5lZCB0aGUgYXNzZXRzQnVja2V0UGFyYW1ldGVyTmFtZS4gVGhlIHN0YWNrIGNvbnRhaW5pbmcgdGhpcyBjb250cnVjdCBuZWVkc1xuICAgKiB0byBoYXZlIGEgcGFyYW1ldGVyIGRlZmluZWQgdGhhdCB1c2VzIHRoaXMgbmFtZS4gVGhlIHVuZGVybHlpbmdcbiAgICogc3RhY2tzIGluIHRoaXMgY29uc3RydWN0IHRoYXQgZGVwbG95IGFzc2V0cyB3aWxsIGNvcHkgdGhlIHBhcmVudCBzdGFjaydzXG4gICAqIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIk5vIG9iamVjdCBwcmVmaXggd2lsbCBiZSBhZGRlZCB0byB5b3VyIGN1c3RvbSBhc3NldHMgbG9jYXRpb24uIEhvd2V2ZXIsIGlmIHlvdSBoYXZlIG92ZXJyaWRkZW4gc29tZXRoaW5nIGxpa2UgdGhlICdCdWNrZXRQcmVmaXgnIHByb3BlcnR5IGluIHlvdXIgc3RhY2sgc3ludGhlc2l6ZXIgd2l0aCBhIHZhcmlhYmxlIGxpa2UgJyR7QXNzZXRzQnVja2V0UHJlZml4fScsIHlvdSB3aWxsIG5lZWQgdG8gZGVmaW5lIHRoaXMgcHJvcGVydHkgc28gaXQgZG9lc24ndCBjYXVzZSBhIHJlZmVyZW5jZSBlcnJvciBldmVuIGlmIHRoZSBwcmVmaXggdmFsdWUgaXMgYmxhbmsuXCJcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZXZhbHVhdGlvbiBwZXJpb2RzIGZvciBsYXRlbmN5IGFuZCBhdmFpbGFiaWx0aXkgYWxhcm1zXG4gICAqL1xuICByZWFkb25seSBldmFsdWF0aW9uUGVyaW9kczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgdG8gYWxhcm0gb24gZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbGl0eSBhbGFybXNcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFwb2ludHNUb0FsYXJtOiBudW1iZXI7XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { Duration } from "aws-cdk-lib";
2
+ import { AvailabilityMetricType } from "../../utilities/AvailabilityMetricType";
3
+ export interface RegionalApplicationLoadBalancerAvailabilityMetricProps {
4
+ readonly metricType: AvailabilityMetricType;
5
+ readonly label: string;
6
+ readonly period: Duration;
7
+ readonly keyprefix?: string;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckF2YWlsYWJpbGl0eU1ldHJpY1Byb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jhc2ljX29ic2VydmFiaWxpdHkvcHJvcHMvUmVnaW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckF2YWlsYWJpbGl0eU1ldHJpY1Byb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5TWV0cmljVHlwZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvQXZhaWxhYmlsaXR5TWV0cmljVHlwZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lvbmFsQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlNZXRyaWNQcm9wcyB7XG4gICAgcmVhZG9ubHkgbWV0cmljVHlwZTogQXZhaWxhYmlsaXR5TWV0cmljVHlwZSxcbiAgICByZWFkb25seSBsYWJlbDogc3RyaW5nLFxuICAgIHJlYWRvbmx5IHBlcmlvZDogRHVyYXRpb25cbiAgICByZWFkb25seSBrZXlwcmVmaXg/OiBzdHJpbmdcbn0iXX0=
@@ -0,0 +1,8 @@
1
+ import { Duration } from "aws-cdk-lib";
2
+ import { IApplicationLoadBalancer } from "aws-cdk-lib/aws-elasticloadbalancingv2";
3
+ export interface RegionalApplicationLoadBalancerLatencyMetricProps {
4
+ readonly alb: IApplicationLoadBalancer;
5
+ readonly label: string;
6
+ readonly period: Duration;
7
+ readonly statistic: string;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckxhdGVuY3lNZXRyaWNQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNpY19vYnNlcnZhYmlsaXR5L3Byb3BzL1JlZ2lvbmFsQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5TWV0cmljUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBJQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBSZWdpb25hbEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTGF0ZW5jeU1ldHJpY1Byb3BzIHtcbiAgICByZWFkb25seSBhbGI6IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcixcbiAgICByZWFkb25seSBsYWJlbDogc3RyaW5nLFxuICAgIHJlYWRvbmx5IHBlcmlvZDogRHVyYXRpb24sXG4gICAgcmVhZG9ubHkgc3RhdGlzdGljOiBzdHJpbmdcbn0iXX0=
@@ -0,0 +1,10 @@
1
+ import { Duration } from "aws-cdk-lib";
2
+ import { AvailabilityMetricType } from "../../utilities/AvailabilityMetricType";
3
+ export interface ZonalApplicationLoadBalancerAvailabilityMetricProps {
4
+ readonly metricType: AvailabilityMetricType;
5
+ readonly availabilityZone: string;
6
+ readonly availabilityZoneId: string;
7
+ readonly label: string;
8
+ readonly period: Duration;
9
+ readonly keyprefix?: string;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWm9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckF2YWlsYWJpbGl0eU1ldHJpY1Byb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jhc2ljX29ic2VydmFiaWxpdHkvcHJvcHMvWm9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckF2YWlsYWJpbGl0eU1ldHJpY1Byb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5TWV0cmljVHlwZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvQXZhaWxhYmlsaXR5TWV0cmljVHlwZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFpvbmFsQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlNZXRyaWNQcm9wcyB7XG4gICAgcmVhZG9ubHkgbWV0cmljVHlwZTogQXZhaWxhYmlsaXR5TWV0cmljVHlwZSxcbiAgICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lOiBzdHJpbmcsIFxuICAgIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmVJZDogc3RyaW5nLCBcbiAgICByZWFkb25seSBsYWJlbDogc3RyaW5nLFxuICAgIHJlYWRvbmx5IHBlcmlvZDogRHVyYXRpb25cbiAgICByZWFkb25seSBrZXlwcmVmaXg/OiBzdHJpbmdcbn0iXX0=
@@ -0,0 +1,10 @@
1
+ import { Duration } from "aws-cdk-lib";
2
+ import { IApplicationLoadBalancer } from "aws-cdk-lib/aws-elasticloadbalancingv2";
3
+ export interface ZonalApplicationLoadBalancerLatencyMetricProps {
4
+ readonly alb: IApplicationLoadBalancer;
5
+ readonly label: string;
6
+ readonly period: Duration;
7
+ readonly statistic: string;
8
+ readonly availabilityZone: string;
9
+ readonly availabilityZoneId?: string;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWm9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckxhdGVuY3lNZXRyaWNQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNpY19vYnNlcnZhYmlsaXR5L3Byb3BzL1pvbmFsQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5TWV0cmljUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBJQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBab25hbEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTGF0ZW5jeU1ldHJpY1Byb3BzIHtcbiAgICByZWFkb25seSBhbGI6IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcixcbiAgICByZWFkb25seSBsYWJlbDogc3RyaW5nLFxuICAgIHJlYWRvbmx5IHBlcmlvZDogRHVyYXRpb24sXG4gICAgcmVhZG9ubHkgc3RhdGlzdGljOiBzdHJpbmcsXG4gICAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nLCBcbiAgICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lSWQ/OiBzdHJpbmdcbn0iXX0=
Binary file