@cdklabs/multi-az-observability 0.0.1-alpha.3 → 0.0.1-alpha.30
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 +374 -147
- package/API.md +292 -100
- package/README.md +21 -14
- package/cdk.json +1 -1
- package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.d.ts +7 -7
- package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.js +35 -35
- package/lib/alarmsandrules/BaseOperationRegionalAlarmsAndRules.js +2 -2
- package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.d.ts +6 -15
- package/lib/alarmsandrules/BaseOperationZonalAlarmsAndRules.js +2 -10
- package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.d.ts +11 -3
- package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.js +24 -13
- package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.d.ts +0 -8
- package/lib/alarmsandrules/IBaseOperationZonalAlarmsAndRules.js +1 -1
- package/lib/alarmsandrules/IOperationAlarmsAndRules.d.ts +19 -27
- package/lib/alarmsandrules/IOperationAlarmsAndRules.js +1 -1
- package/lib/alarmsandrules/IServerSideOperationRegionalAlarmsAndRules.js +1 -1
- package/lib/alarmsandrules/IServiceAlarmsAndRules.d.ts +0 -8
- package/lib/alarmsandrules/IServiceAlarmsAndRules.js +1 -1
- package/lib/alarmsandrules/OperationAlarmsAndRules.d.ts +14 -22
- package/lib/alarmsandrules/OperationAlarmsAndRules.js +51 -71
- package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.d.ts +5 -5
- package/lib/alarmsandrules/ServerSideOperationRegionalAlarmsAndRules.js +2 -3
- package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.d.ts +21 -13
- package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.js +43 -29
- package/lib/alarmsandrules/ServiceAlarmsAndRules.d.ts +0 -2
- package/lib/alarmsandrules/ServiceAlarmsAndRules.js +61 -39
- package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.d.ts +6 -44
- package/lib/alarmsandrules/props/BaseOperationZonalAlarmsAndRulesProps.js +1 -1
- package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.d.ts +28 -7
- package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.js +1 -1
- package/lib/azmapper/AvailabilityZoneMapper.js +4 -3
- package/lib/basic_observability/BasicServiceDashboard.d.ts +1 -3
- package/lib/basic_observability/BasicServiceDashboard.js +69 -100
- package/lib/basic_observability/BasicServiceMultiAZObservability.d.ts +8 -9
- package/lib/basic_observability/BasicServiceMultiAZObservability.js +100 -312
- package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.d.ts +50 -0
- package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.js +3 -0
- package/lib/basic_observability/props/BasicServiceDashboardProps.d.ts +27 -13
- package/lib/basic_observability/props/BasicServiceDashboardProps.js +1 -1
- package/lib/basic_observability/props/BasicServiceMultiAZObservabilityProps.d.ts +10 -38
- package/lib/basic_observability/props/BasicServiceMultiAZObservabilityProps.js +1 -1
- package/lib/basic_observability/props/NatGatewayDetectionProps.d.ts +31 -0
- package/lib/basic_observability/props/NatGatewayDetectionProps.js +3 -0
- package/lib/canaries/CanaryFunction.js +7 -6
- package/lib/canaries/src/canary.zip +0 -0
- package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.d.ts +2 -6
- package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +440 -506
- package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.d.ts +0 -1
- package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +56 -113
- package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.d.ts +3 -66
- package/lib/dashboards/props/OperationAvailabilityAndLatencyDashboardProps.js +1 -1
- package/lib/dashboards/props/OperationAvailabilityWidgetProps.d.ts +7 -2
- package/lib/dashboards/props/OperationAvailabilityWidgetProps.js +1 -1
- package/lib/dashboards/props/OperationLatencyWidgetProps.d.ts +7 -2
- package/lib/dashboards/props/OperationLatencyWidgetProps.js +1 -1
- package/lib/index.d.ts +5 -0
- package/lib/index.js +8 -2
- package/lib/metrics/ApplicationLoadBalancerMetrics.d.ts +72 -4
- package/lib/metrics/ApplicationLoadBalancerMetrics.js +712 -32
- package/lib/metrics/AvailabilityAndLatencyMetrics.d.ts +23 -0
- package/lib/metrics/AvailabilityAndLatencyMetrics.js +117 -24
- package/lib/metrics/NatGatewayMetrics.d.ts +110 -0
- package/lib/metrics/NatGatewayMetrics.js +300 -0
- package/lib/metrics/RegionalLatencyMetrics.d.ts +1 -1
- package/lib/metrics/RegionalLatencyMetrics.js +27 -20
- package/lib/metrics/ZonalAvailabilityMetrics.d.ts +2 -8
- package/lib/metrics/ZonalAvailabilityMetrics.js +10 -25
- package/lib/metrics/ZonalLatencyMetrics.d.ts +2 -1
- package/lib/metrics/ZonalLatencyMetrics.js +33 -23
- package/lib/metrics/props/AvailabilityAndLatencyMetricProps.d.ts +4 -0
- package/lib/metrics/props/AvailabilityAndLatencyMetricProps.js +1 -1
- package/lib/metrics/props/LatencyMetricProps.d.ts +6 -0
- package/lib/metrics/props/LatencyMetricProps.js +1 -1
- package/lib/metrics/props/ZonalAvailabilityMetricProps.d.ts +4 -0
- package/lib/metrics/props/ZonalAvailabilityMetricProps.js +1 -1
- package/lib/metrics/props/ZonalLatencyMetricProps.d.ts +4 -0
- package/lib/metrics/props/ZonalLatencyMetricProps.js +1 -1
- package/lib/monitoring/src/monitoring-layer.zip +0 -0
- package/lib/outlier-detection/ApplicationLoadBalancerAvailabilityOutlierAlgorithm.d.ts +10 -0
- package/lib/outlier-detection/ApplicationLoadBalancerAvailabilityOutlierAlgorithm.js +15 -0
- package/lib/outlier-detection/ApplicationLoadBalancerLatencyOutlierAlgorithm.d.ts +18 -0
- package/lib/outlier-detection/ApplicationLoadBalancerLatencyOutlierAlgorithm.js +23 -0
- package/lib/outlier-detection/OutlierDetectionFunction.js +6 -5
- package/lib/outlier-detection/PacketLossOutlierAlgorithm.d.ts +10 -0
- package/lib/outlier-detection/PacketLossOutlierAlgorithm.js +15 -0
- package/lib/outlier-detection/src/outlier-detection.zip +0 -0
- package/lib/outlier-detection/src/scipy-layer.zip +0 -0
- package/lib/services/CanaryMetrics.js +1 -1
- package/lib/services/CanaryTestMetricsOverride.js +1 -1
- package/lib/services/ContributorInsightRuleDetails.js +1 -1
- package/lib/services/InstrumentedServiceMultiAZObservability.d.ts +10 -0
- package/lib/services/InstrumentedServiceMultiAZObservability.js +188 -194
- package/lib/services/Operation.js +1 -1
- package/lib/services/OperationMetricDetails.js +1 -1
- package/lib/services/Service.js +1 -1
- package/lib/services/ServiceMetricDetails.js +1 -1
- package/lib/services/props/MetricDimensions.js +1 -1
- package/lib/utilities/MetricsHelper.d.ts +15 -10
- package/lib/utilities/MetricsHelper.js +19 -11
- package/package.json +8 -8
package/API.md
CHANGED
|
@@ -788,6 +788,136 @@ The timeout for each individual HTTP request.
|
|
|
788
788
|
|
|
789
789
|
---
|
|
790
790
|
|
|
791
|
+
### ApplicationLoadBalancerDetectionProps <a name="ApplicationLoadBalancerDetectionProps" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps"></a>
|
|
792
|
+
|
|
793
|
+
The properties for performing zonal impact detection with ALB(s).
|
|
794
|
+
|
|
795
|
+
#### Initializer <a name="Initializer" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.Initializer"></a>
|
|
796
|
+
|
|
797
|
+
```typescript
|
|
798
|
+
import { ApplicationLoadBalancerDetectionProps } from '@cdklabs/multi-az-observability'
|
|
799
|
+
|
|
800
|
+
const applicationLoadBalancerDetectionProps: ApplicationLoadBalancerDetectionProps = { ... }
|
|
801
|
+
```
|
|
802
|
+
|
|
803
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
804
|
+
|
|
805
|
+
| **Name** | **Type** | **Description** |
|
|
806
|
+
| --- | --- | --- |
|
|
807
|
+
| <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.applicationLoadBalancers">applicationLoadBalancers</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer[]</code> | The application load balancers to collect metrics from. |
|
|
808
|
+
| <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.faultCountPercentThreshold">faultCountPercentThreshold</a></code> | <code>number</code> | The percentage of faults for a single ALB to consider an AZ to be unhealthy, a number between 0 and 100. |
|
|
809
|
+
| <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.latencyStatistic">latencyStatistic</a></code> | <code>string</code> | The statistic used to measure target response latency, like p99, which can be specified using Stats.percentile(99) or "p99". |
|
|
810
|
+
| <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.latencyThreshold">latencyThreshold</a></code> | <code>number</code> | The threshold in milliseconds for ALB targets whose responses are slower than this value at the specified percentile statistic. |
|
|
811
|
+
| <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.availabilityOutlierAlgorithm">availabilityOutlierAlgorithm</a></code> | <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerAvailabilityOutlierAlgorithm">ApplicationLoadBalancerAvailabilityOutlierAlgorithm</a></code> | The method used to determine if an AZ is an outlier for availability for Application Load Balancer metrics. |
|
|
812
|
+
| <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.availabilityOutlierThreshold">availabilityOutlierThreshold</a></code> | <code>number</code> | The threshold for the outlier detection algorithm. |
|
|
813
|
+
| <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.latencyOutlierAlgorithm">latencyOutlierAlgorithm</a></code> | <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerLatencyOutlierAlgorithm">ApplicationLoadBalancerLatencyOutlierAlgorithm</a></code> | The method used to determine if an AZ is an outlier for latency for Application Load Balancer metrics. |
|
|
814
|
+
| <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.latencyOutlierThreshold">latencyOutlierThreshold</a></code> | <code>number</code> | The threshold for the outlier detection algorithm. |
|
|
815
|
+
|
|
816
|
+
---
|
|
817
|
+
|
|
818
|
+
##### `applicationLoadBalancers`<sup>Required</sup> <a name="applicationLoadBalancers" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.applicationLoadBalancers"></a>
|
|
819
|
+
|
|
820
|
+
```typescript
|
|
821
|
+
public readonly applicationLoadBalancers: IApplicationLoadBalancer[];
|
|
822
|
+
```
|
|
823
|
+
|
|
824
|
+
- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer[]
|
|
825
|
+
|
|
826
|
+
The application load balancers to collect metrics from.
|
|
827
|
+
|
|
828
|
+
---
|
|
829
|
+
|
|
830
|
+
##### `faultCountPercentThreshold`<sup>Required</sup> <a name="faultCountPercentThreshold" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.faultCountPercentThreshold"></a>
|
|
831
|
+
|
|
832
|
+
```typescript
|
|
833
|
+
public readonly faultCountPercentThreshold: number;
|
|
834
|
+
```
|
|
835
|
+
|
|
836
|
+
- *Type:* number
|
|
837
|
+
|
|
838
|
+
The percentage of faults for a single ALB to consider an AZ to be unhealthy, a number between 0 and 100.
|
|
839
|
+
|
|
840
|
+
This should align with your availability goal. For example
|
|
841
|
+
1% or 5%, provided as 1 or 5.
|
|
842
|
+
|
|
843
|
+
---
|
|
844
|
+
|
|
845
|
+
##### `latencyStatistic`<sup>Required</sup> <a name="latencyStatistic" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.latencyStatistic"></a>
|
|
846
|
+
|
|
847
|
+
```typescript
|
|
848
|
+
public readonly latencyStatistic: string;
|
|
849
|
+
```
|
|
850
|
+
|
|
851
|
+
- *Type:* string
|
|
852
|
+
|
|
853
|
+
The statistic used to measure target response latency, like p99, which can be specified using Stats.percentile(99) or "p99".
|
|
854
|
+
|
|
855
|
+
---
|
|
856
|
+
|
|
857
|
+
##### `latencyThreshold`<sup>Required</sup> <a name="latencyThreshold" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.latencyThreshold"></a>
|
|
858
|
+
|
|
859
|
+
```typescript
|
|
860
|
+
public readonly latencyThreshold: number;
|
|
861
|
+
```
|
|
862
|
+
|
|
863
|
+
- *Type:* number
|
|
864
|
+
|
|
865
|
+
The threshold in milliseconds for ALB targets whose responses are slower than this value at the specified percentile statistic.
|
|
866
|
+
|
|
867
|
+
---
|
|
868
|
+
|
|
869
|
+
##### `availabilityOutlierAlgorithm`<sup>Optional</sup> <a name="availabilityOutlierAlgorithm" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.availabilityOutlierAlgorithm"></a>
|
|
870
|
+
|
|
871
|
+
```typescript
|
|
872
|
+
public readonly availabilityOutlierAlgorithm: ApplicationLoadBalancerAvailabilityOutlierAlgorithm;
|
|
873
|
+
```
|
|
874
|
+
|
|
875
|
+
- *Type:* <a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerAvailabilityOutlierAlgorithm">ApplicationLoadBalancerAvailabilityOutlierAlgorithm</a>
|
|
876
|
+
- *Default:* STATIC
|
|
877
|
+
|
|
878
|
+
The method used to determine if an AZ is an outlier for availability for Application Load Balancer metrics.
|
|
879
|
+
|
|
880
|
+
---
|
|
881
|
+
|
|
882
|
+
##### `availabilityOutlierThreshold`<sup>Optional</sup> <a name="availabilityOutlierThreshold" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.availabilityOutlierThreshold"></a>
|
|
883
|
+
|
|
884
|
+
```typescript
|
|
885
|
+
public readonly availabilityOutlierThreshold: number;
|
|
886
|
+
```
|
|
887
|
+
|
|
888
|
+
- *Type:* number
|
|
889
|
+
- *Default:* "This depends on the algorithm used. STATIC: 66"
|
|
890
|
+
|
|
891
|
+
The threshold for the outlier detection algorithm.
|
|
892
|
+
|
|
893
|
+
---
|
|
894
|
+
|
|
895
|
+
##### `latencyOutlierAlgorithm`<sup>Optional</sup> <a name="latencyOutlierAlgorithm" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.latencyOutlierAlgorithm"></a>
|
|
896
|
+
|
|
897
|
+
```typescript
|
|
898
|
+
public readonly latencyOutlierAlgorithm: ApplicationLoadBalancerLatencyOutlierAlgorithm;
|
|
899
|
+
```
|
|
900
|
+
|
|
901
|
+
- *Type:* <a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerLatencyOutlierAlgorithm">ApplicationLoadBalancerLatencyOutlierAlgorithm</a>
|
|
902
|
+
- *Default:* Z_SCORE
|
|
903
|
+
|
|
904
|
+
The method used to determine if an AZ is an outlier for latency for Application Load Balancer metrics.
|
|
905
|
+
|
|
906
|
+
---
|
|
907
|
+
|
|
908
|
+
##### `latencyOutlierThreshold`<sup>Optional</sup> <a name="latencyOutlierThreshold" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.latencyOutlierThreshold"></a>
|
|
909
|
+
|
|
910
|
+
```typescript
|
|
911
|
+
public readonly latencyOutlierThreshold: number;
|
|
912
|
+
```
|
|
913
|
+
|
|
914
|
+
- *Type:* number
|
|
915
|
+
- *Default:* "This depends on the algorithm used. STATIC: 66. Z_SCORE: 3."
|
|
916
|
+
|
|
917
|
+
The threshold for the outlier detection algorithm.
|
|
918
|
+
|
|
919
|
+
---
|
|
920
|
+
|
|
791
921
|
### AvailabilityZoneMapperProps <a name="AvailabilityZoneMapperProps" id="@cdklabs/multi-az-observability.AvailabilityZoneMapperProps"></a>
|
|
792
922
|
|
|
793
923
|
Properties for the AZ mapper.
|
|
@@ -839,17 +969,13 @@ const basicServiceMultiAZObservabilityProps: BasicServiceMultiAZObservabilityPro
|
|
|
839
969
|
| --- | --- | --- |
|
|
840
970
|
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of datapoints to alarm on for latency and availability alarms. |
|
|
841
971
|
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of evaluation periods for latency and availabiltiy alarms. |
|
|
842
|
-
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.faultCountPercentageThreshold">faultCountPercentageThreshold</a></code> | <code>number</code> | The percentage of faults for a single ALB to consider an AZ to be unhealthy, this should align with your availability goal. |
|
|
843
|
-
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.latencyStatistic">latencyStatistic</a></code> | <code>string</code> | The statistic used to measure target response latency, like p99, which can be specified using Stats.percentile(99) or "p99". |
|
|
844
|
-
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.latencyThreshold">latencyThreshold</a></code> | <code>number</code> | The threshold in seconds for ALB targets whose responses are slower than this value at the specified percentile statistic. |
|
|
845
972
|
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.serviceName">serviceName</a></code> | <code>string</code> | The service's name. |
|
|
846
|
-
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.
|
|
973
|
+
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.applicationLoadBalancerProps">applicationLoadBalancerProps</a></code> | <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps">ApplicationLoadBalancerDetectionProps</a></code> | Properties for ALBs to detect single AZ impact. |
|
|
847
974
|
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.assetsBucketParameterName">assetsBucketParameterName</a></code> | <code>string</code> | If you are not using a static bucket to deploy assets, for example you are synthing this and it gets uploaded to a bucket whose name is unknown to you (maybe used as part of a central CI/CD system) and is provided as a parameter to your stack, specify that parameter name here. |
|
|
848
975
|
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.assetsBucketPrefixParameterName">assetsBucketPrefixParameterName</a></code> | <code>string</code> | If you are not using a static bucket to deploy assets, for example you are synthing this and it gets uploaded to a bucket that uses a prefix that is unknown to you (maybe used as part of a central CI/CD system) and is provided as a parameter to your stack, specify that parameter name here. |
|
|
849
976
|
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.createDashboard">createDashboard</a></code> | <code>boolean</code> | Whether to create a dashboard displaying the metrics and alarms. |
|
|
850
977
|
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.interval">interval</a></code> | <code>aws-cdk-lib.Duration</code> | Dashboard interval. |
|
|
851
|
-
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.
|
|
852
|
-
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.packetLossImpactPercentageThreshold">packetLossImpactPercentageThreshold</a></code> | <code>number</code> | The amount of packet loss in a NAT GW to determine if an AZ is actually impacted, recommendation is 0.01%. |
|
|
978
|
+
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.natGatewayProps">natGatewayProps</a></code> | <code><a href="#@cdklabs/multi-az-observability.NatGatewayDetectionProps">NatGatewayDetectionProps</a></code> | Properties for NAT Gateways to detect single AZ impact. |
|
|
853
979
|
| <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period to evaluate metrics. |
|
|
854
980
|
|
|
855
981
|
---
|
|
@@ -878,45 +1004,6 @@ The number of evaluation periods for latency and availabiltiy alarms.
|
|
|
878
1004
|
|
|
879
1005
|
---
|
|
880
1006
|
|
|
881
|
-
##### `faultCountPercentageThreshold`<sup>Required</sup> <a name="faultCountPercentageThreshold" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.faultCountPercentageThreshold"></a>
|
|
882
|
-
|
|
883
|
-
```typescript
|
|
884
|
-
public readonly faultCountPercentageThreshold: number;
|
|
885
|
-
```
|
|
886
|
-
|
|
887
|
-
- *Type:* number
|
|
888
|
-
|
|
889
|
-
The percentage of faults for a single ALB to consider an AZ to be unhealthy, this should align with your availability goal.
|
|
890
|
-
|
|
891
|
-
For example
|
|
892
|
-
1% or 5%, specify as 1 or 5.
|
|
893
|
-
|
|
894
|
-
---
|
|
895
|
-
|
|
896
|
-
##### `latencyStatistic`<sup>Required</sup> <a name="latencyStatistic" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.latencyStatistic"></a>
|
|
897
|
-
|
|
898
|
-
```typescript
|
|
899
|
-
public readonly latencyStatistic: string;
|
|
900
|
-
```
|
|
901
|
-
|
|
902
|
-
- *Type:* string
|
|
903
|
-
|
|
904
|
-
The statistic used to measure target response latency, like p99, which can be specified using Stats.percentile(99) or "p99".
|
|
905
|
-
|
|
906
|
-
---
|
|
907
|
-
|
|
908
|
-
##### `latencyThreshold`<sup>Required</sup> <a name="latencyThreshold" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.latencyThreshold"></a>
|
|
909
|
-
|
|
910
|
-
```typescript
|
|
911
|
-
public readonly latencyThreshold: number;
|
|
912
|
-
```
|
|
913
|
-
|
|
914
|
-
- *Type:* number
|
|
915
|
-
|
|
916
|
-
The threshold in seconds for ALB targets whose responses are slower than this value at the specified percentile statistic.
|
|
917
|
-
|
|
918
|
-
---
|
|
919
|
-
|
|
920
1007
|
##### `serviceName`<sup>Required</sup> <a name="serviceName" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.serviceName"></a>
|
|
921
1008
|
|
|
922
1009
|
```typescript
|
|
@@ -929,20 +1016,19 @@ The service's name.
|
|
|
929
1016
|
|
|
930
1017
|
---
|
|
931
1018
|
|
|
932
|
-
##### `
|
|
1019
|
+
##### `applicationLoadBalancerProps`<sup>Optional</sup> <a name="applicationLoadBalancerProps" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.applicationLoadBalancerProps"></a>
|
|
933
1020
|
|
|
934
1021
|
```typescript
|
|
935
|
-
public readonly
|
|
1022
|
+
public readonly applicationLoadBalancerProps: ApplicationLoadBalancerDetectionProps;
|
|
936
1023
|
```
|
|
937
1024
|
|
|
938
|
-
- *Type:*
|
|
939
|
-
- *Default:* "No
|
|
1025
|
+
- *Type:* <a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps">ApplicationLoadBalancerDetectionProps</a>
|
|
1026
|
+
- *Default:* "No ALBs will be used to calculate impact."
|
|
940
1027
|
|
|
941
|
-
|
|
1028
|
+
Properties for ALBs to detect single AZ impact.
|
|
942
1029
|
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
of all ALBs. You must either specify an ALB or a NAT GW.
|
|
1030
|
+
You must specify this
|
|
1031
|
+
and/or natGatewayProps.
|
|
946
1032
|
|
|
947
1033
|
---
|
|
948
1034
|
|
|
@@ -1011,33 +1097,19 @@ Dashboard interval.
|
|
|
1011
1097
|
|
|
1012
1098
|
---
|
|
1013
1099
|
|
|
1014
|
-
##### `
|
|
1100
|
+
##### `natGatewayProps`<sup>Optional</sup> <a name="natGatewayProps" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.natGatewayProps"></a>
|
|
1015
1101
|
|
|
1016
1102
|
```typescript
|
|
1017
|
-
public readonly
|
|
1103
|
+
public readonly natGatewayProps: NatGatewayDetectionProps;
|
|
1018
1104
|
```
|
|
1019
1105
|
|
|
1020
|
-
- *Type:*
|
|
1021
|
-
- *Default:* "No
|
|
1106
|
+
- *Type:* <a href="#@cdklabs/multi-az-observability.NatGatewayDetectionProps">NatGatewayDetectionProps</a>
|
|
1107
|
+
- *Default:* "No NAT Gateways will be used to calculate impact."
|
|
1022
1108
|
|
|
1023
|
-
|
|
1109
|
+
Properties for NAT Gateways to detect single AZ impact.
|
|
1024
1110
|
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
a composite alarm for the AZ. You must either specify an ALB or a NAT GW.
|
|
1028
|
-
|
|
1029
|
-
---
|
|
1030
|
-
|
|
1031
|
-
##### `packetLossImpactPercentageThreshold`<sup>Optional</sup> <a name="packetLossImpactPercentageThreshold" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.packetLossImpactPercentageThreshold"></a>
|
|
1032
|
-
|
|
1033
|
-
```typescript
|
|
1034
|
-
public readonly packetLossImpactPercentageThreshold: number;
|
|
1035
|
-
```
|
|
1036
|
-
|
|
1037
|
-
- *Type:* number
|
|
1038
|
-
- *Default:* "0.01 (as in 0.01%)"
|
|
1039
|
-
|
|
1040
|
-
The amount of packet loss in a NAT GW to determine if an AZ is actually impacted, recommendation is 0.01%.
|
|
1111
|
+
You must specify
|
|
1112
|
+
this and/or applicationLoadBalancerProps.
|
|
1041
1113
|
|
|
1042
1114
|
---
|
|
1043
1115
|
|
|
@@ -1451,6 +1523,80 @@ MAD: 3
|
|
|
1451
1523
|
|
|
1452
1524
|
---
|
|
1453
1525
|
|
|
1526
|
+
### NatGatewayDetectionProps <a name="NatGatewayDetectionProps" id="@cdklabs/multi-az-observability.NatGatewayDetectionProps"></a>
|
|
1527
|
+
|
|
1528
|
+
The properties for performing zonal impact detection with NAT Gateway(s).
|
|
1529
|
+
|
|
1530
|
+
#### Initializer <a name="Initializer" id="@cdklabs/multi-az-observability.NatGatewayDetectionProps.Initializer"></a>
|
|
1531
|
+
|
|
1532
|
+
```typescript
|
|
1533
|
+
import { NatGatewayDetectionProps } from '@cdklabs/multi-az-observability'
|
|
1534
|
+
|
|
1535
|
+
const natGatewayDetectionProps: NatGatewayDetectionProps = { ... }
|
|
1536
|
+
```
|
|
1537
|
+
|
|
1538
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
1539
|
+
|
|
1540
|
+
| **Name** | **Type** | **Description** |
|
|
1541
|
+
| --- | --- | --- |
|
|
1542
|
+
| <code><a href="#@cdklabs/multi-az-observability.NatGatewayDetectionProps.property.natGateways">natGateways</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_ec2.CfnNatGateway[]}</code> | A list of NAT Gateways per Availability Zone (using the AZ name as the key). |
|
|
1543
|
+
| <code><a href="#@cdklabs/multi-az-observability.NatGatewayDetectionProps.property.packetLossOutlierAlgorithm">packetLossOutlierAlgorithm</a></code> | <code><a href="#@cdklabs/multi-az-observability.PacketLossOutlierAlgorithm">PacketLossOutlierAlgorithm</a></code> | The algorithm to use to calculate an AZ as an outlier for packet loss. |
|
|
1544
|
+
| <code><a href="#@cdklabs/multi-az-observability.NatGatewayDetectionProps.property.packetLossOutlierThreshold">packetLossOutlierThreshold</a></code> | <code>number</code> | The threshold used with the outlier calculation. |
|
|
1545
|
+
| <code><a href="#@cdklabs/multi-az-observability.NatGatewayDetectionProps.property.packetLossPercentThreshold">packetLossPercentThreshold</a></code> | <code>number</code> | The percentage of packet loss at which you consider there to be impact. |
|
|
1546
|
+
|
|
1547
|
+
---
|
|
1548
|
+
|
|
1549
|
+
##### `natGateways`<sup>Required</sup> <a name="natGateways" id="@cdklabs/multi-az-observability.NatGatewayDetectionProps.property.natGateways"></a>
|
|
1550
|
+
|
|
1551
|
+
```typescript
|
|
1552
|
+
public readonly natGateways: {[ key: string ]: CfnNatGateway[]};
|
|
1553
|
+
```
|
|
1554
|
+
|
|
1555
|
+
- *Type:* {[ key: string ]: aws-cdk-lib.aws_ec2.CfnNatGateway[]}
|
|
1556
|
+
|
|
1557
|
+
A list of NAT Gateways per Availability Zone (using the AZ name as the key).
|
|
1558
|
+
|
|
1559
|
+
---
|
|
1560
|
+
|
|
1561
|
+
##### `packetLossOutlierAlgorithm`<sup>Optional</sup> <a name="packetLossOutlierAlgorithm" id="@cdklabs/multi-az-observability.NatGatewayDetectionProps.property.packetLossOutlierAlgorithm"></a>
|
|
1562
|
+
|
|
1563
|
+
```typescript
|
|
1564
|
+
public readonly packetLossOutlierAlgorithm: PacketLossOutlierAlgorithm;
|
|
1565
|
+
```
|
|
1566
|
+
|
|
1567
|
+
- *Type:* <a href="#@cdklabs/multi-az-observability.PacketLossOutlierAlgorithm">PacketLossOutlierAlgorithm</a>
|
|
1568
|
+
- *Default:* PacketLossOutlierAlgorithm.STATIC
|
|
1569
|
+
|
|
1570
|
+
The algorithm to use to calculate an AZ as an outlier for packet loss.
|
|
1571
|
+
|
|
1572
|
+
---
|
|
1573
|
+
|
|
1574
|
+
##### `packetLossOutlierThreshold`<sup>Optional</sup> <a name="packetLossOutlierThreshold" id="@cdklabs/multi-az-observability.NatGatewayDetectionProps.property.packetLossOutlierThreshold"></a>
|
|
1575
|
+
|
|
1576
|
+
```typescript
|
|
1577
|
+
public readonly packetLossOutlierThreshold: number;
|
|
1578
|
+
```
|
|
1579
|
+
|
|
1580
|
+
- *Type:* number
|
|
1581
|
+
- *Default:* "This depends on the outlier algorithm. STATIC: 66. Z-SCORE: 3."
|
|
1582
|
+
|
|
1583
|
+
The threshold used with the outlier calculation.
|
|
1584
|
+
|
|
1585
|
+
---
|
|
1586
|
+
|
|
1587
|
+
##### `packetLossPercentThreshold`<sup>Optional</sup> <a name="packetLossPercentThreshold" id="@cdklabs/multi-az-observability.NatGatewayDetectionProps.property.packetLossPercentThreshold"></a>
|
|
1588
|
+
|
|
1589
|
+
```typescript
|
|
1590
|
+
public readonly packetLossPercentThreshold: number;
|
|
1591
|
+
```
|
|
1592
|
+
|
|
1593
|
+
- *Type:* number
|
|
1594
|
+
- *Default:* 0.01 (as in 0.01%)
|
|
1595
|
+
|
|
1596
|
+
The percentage of packet loss at which you consider there to be impact.
|
|
1597
|
+
|
|
1598
|
+
---
|
|
1599
|
+
|
|
1454
1600
|
### NetworkConfigurationProps <a name="NetworkConfigurationProps" id="@cdklabs/multi-az-observability.NetworkConfigurationProps"></a>
|
|
1455
1601
|
|
|
1456
1602
|
The network configuration for the canary function.
|
|
@@ -4747,8 +4893,6 @@ Service level alarms and rules using critical operations.
|
|
|
4747
4893
|
|
|
4748
4894
|
| **Name** | **Type** | **Description** |
|
|
4749
4895
|
| --- | --- | --- |
|
|
4750
|
-
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityOrLatencyServerSideAlarm">regionalAvailabilityOrLatencyServerSideAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for regional availability or latency impact of any critical operation as measured by the server-side. |
|
|
4751
|
-
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityServerSideAlarm">regionalAvailabilityServerSideAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for regional availability impact of any critical operation as measured by the server-side. |
|
|
4752
4896
|
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalFaultCountServerSideAlarm">regionalFaultCountServerSideAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for fault count exceeding a regional threshold for all critical operations. |
|
|
4753
4897
|
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.service">service</a></code> | <code><a href="#@cdklabs/multi-az-observability.IService">IService</a></code> | The service these alarms and rules are for. |
|
|
4754
4898
|
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalAggregateIsolatedImpactAlarms">zonalAggregateIsolatedImpactAlarms</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm[]</code> | The zonal aggregate isolated impact alarms. |
|
|
@@ -4758,30 +4902,6 @@ Service level alarms and rules using critical operations.
|
|
|
4758
4902
|
|
|
4759
4903
|
---
|
|
4760
4904
|
|
|
4761
|
-
##### `regionalAvailabilityOrLatencyServerSideAlarm`<sup>Required</sup> <a name="regionalAvailabilityOrLatencyServerSideAlarm" id="@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityOrLatencyServerSideAlarm"></a>
|
|
4762
|
-
|
|
4763
|
-
```typescript
|
|
4764
|
-
public readonly regionalAvailabilityOrLatencyServerSideAlarm: IAlarm;
|
|
4765
|
-
```
|
|
4766
|
-
|
|
4767
|
-
- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm
|
|
4768
|
-
|
|
4769
|
-
An alarm for regional availability or latency impact of any critical operation as measured by the server-side.
|
|
4770
|
-
|
|
4771
|
-
---
|
|
4772
|
-
|
|
4773
|
-
##### `regionalAvailabilityServerSideAlarm`<sup>Required</sup> <a name="regionalAvailabilityServerSideAlarm" id="@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityServerSideAlarm"></a>
|
|
4774
|
-
|
|
4775
|
-
```typescript
|
|
4776
|
-
public readonly regionalAvailabilityServerSideAlarm: IAlarm;
|
|
4777
|
-
```
|
|
4778
|
-
|
|
4779
|
-
- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm
|
|
4780
|
-
|
|
4781
|
-
An alarm for regional availability impact of any critical operation as measured by the server-side.
|
|
4782
|
-
|
|
4783
|
-
---
|
|
4784
|
-
|
|
4785
4905
|
##### `regionalFaultCountServerSideAlarm`<sup>Required</sup> <a name="regionalFaultCountServerSideAlarm" id="@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalFaultCountServerSideAlarm"></a>
|
|
4786
4906
|
|
|
4787
4907
|
```typescript
|
|
@@ -5043,6 +5163,59 @@ metrics this will typically just be "Sum".
|
|
|
5043
5163
|
|
|
5044
5164
|
## Enums <a name="Enums" id="Enums"></a>
|
|
5045
5165
|
|
|
5166
|
+
### ApplicationLoadBalancerAvailabilityOutlierAlgorithm <a name="ApplicationLoadBalancerAvailabilityOutlierAlgorithm" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerAvailabilityOutlierAlgorithm"></a>
|
|
5167
|
+
|
|
5168
|
+
The options for calculating if an ALB is an outlier for availability.
|
|
5169
|
+
|
|
5170
|
+
#### Members <a name="Members" id="Members"></a>
|
|
5171
|
+
|
|
5172
|
+
| **Name** | **Description** |
|
|
5173
|
+
| --- | --- |
|
|
5174
|
+
| <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerAvailabilityOutlierAlgorithm.STATIC">STATIC</a></code> | This will take the availability threshold and calculate if one AZ is responsible for that percentage of errors. |
|
|
5175
|
+
|
|
5176
|
+
---
|
|
5177
|
+
|
|
5178
|
+
##### `STATIC` <a name="STATIC" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerAvailabilityOutlierAlgorithm.STATIC"></a>
|
|
5179
|
+
|
|
5180
|
+
This will take the availability threshold and calculate if one AZ is responsible for that percentage of errors.
|
|
5181
|
+
|
|
5182
|
+
---
|
|
5183
|
+
|
|
5184
|
+
|
|
5185
|
+
### ApplicationLoadBalancerLatencyOutlierAlgorithm <a name="ApplicationLoadBalancerLatencyOutlierAlgorithm" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerLatencyOutlierAlgorithm"></a>
|
|
5186
|
+
|
|
5187
|
+
The options for calculating if an AZ is an outlier for latency for ALBs.
|
|
5188
|
+
|
|
5189
|
+
#### Members <a name="Members" id="Members"></a>
|
|
5190
|
+
|
|
5191
|
+
| **Name** | **Description** |
|
|
5192
|
+
| --- | --- |
|
|
5193
|
+
| <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerLatencyOutlierAlgorithm.STATIC">STATIC</a></code> | This will take the latency threshold and count the number of requests per AZ that exceed this threshold and then calculate the percentage of requests exceeding this threshold belong to each AZ. |
|
|
5194
|
+
| <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerLatencyOutlierAlgorithm.Z_SCORE">Z_SCORE</a></code> | This calculates the z score of latency in one AZ against the other AZs. |
|
|
5195
|
+
|
|
5196
|
+
---
|
|
5197
|
+
|
|
5198
|
+
##### `STATIC` <a name="STATIC" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerLatencyOutlierAlgorithm.STATIC"></a>
|
|
5199
|
+
|
|
5200
|
+
This will take the latency threshold and count the number of requests per AZ that exceed this threshold and then calculate the percentage of requests exceeding this threshold belong to each AZ.
|
|
5201
|
+
|
|
5202
|
+
This provides a static comparison
|
|
5203
|
+
of the number of high latency requests in one AZ versus the others
|
|
5204
|
+
|
|
5205
|
+
---
|
|
5206
|
+
|
|
5207
|
+
|
|
5208
|
+
##### `Z_SCORE` <a name="Z_SCORE" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerLatencyOutlierAlgorithm.Z_SCORE"></a>
|
|
5209
|
+
|
|
5210
|
+
This calculates the z score of latency in one AZ against the other AZs.
|
|
5211
|
+
|
|
5212
|
+
It uses
|
|
5213
|
+
the target response time of all requests to calculate the standard deviation and
|
|
5214
|
+
average for all AZs. This is the default.
|
|
5215
|
+
|
|
5216
|
+
---
|
|
5217
|
+
|
|
5218
|
+
|
|
5046
5219
|
### OutlierDetectionAlgorithm <a name="OutlierDetectionAlgorithm" id="@cdklabs/multi-az-observability.OutlierDetectionAlgorithm"></a>
|
|
5047
5220
|
|
|
5048
5221
|
Available algorithms for performing outlier detection.
|
|
@@ -5107,3 +5280,22 @@ A common default value threshold 3
|
|
|
5107
5280
|
|
|
5108
5281
|
---
|
|
5109
5282
|
|
|
5283
|
+
|
|
5284
|
+
### PacketLossOutlierAlgorithm <a name="PacketLossOutlierAlgorithm" id="@cdklabs/multi-az-observability.PacketLossOutlierAlgorithm"></a>
|
|
5285
|
+
|
|
5286
|
+
The options for calculating if a NAT Gateway is an outlier for packet loss.
|
|
5287
|
+
|
|
5288
|
+
#### Members <a name="Members" id="Members"></a>
|
|
5289
|
+
|
|
5290
|
+
| **Name** | **Description** |
|
|
5291
|
+
| --- | --- |
|
|
5292
|
+
| <code><a href="#@cdklabs/multi-az-observability.PacketLossOutlierAlgorithm.STATIC">STATIC</a></code> | This will take the availability threshold and calculate if one AZ is responsible for that percentage of packet loss. |
|
|
5293
|
+
|
|
5294
|
+
---
|
|
5295
|
+
|
|
5296
|
+
##### `STATIC` <a name="STATIC" id="@cdklabs/multi-az-observability.PacketLossOutlierAlgorithm.STATIC"></a>
|
|
5297
|
+
|
|
5298
|
+
This will take the availability threshold and calculate if one AZ is responsible for that percentage of packet loss.
|
|
5299
|
+
|
|
5300
|
+
---
|
|
5301
|
+
|
package/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
 
|
|
2
|
+
|
|
1
3
|
# multi-az-observability
|
|
2
4
|
This is a CDK construct for multi-AZ observability to help detect single-AZ impairments. This is currently an `alpha` version, but is being used in the AWS [Advanced Multi-AZ Resilience Patterns](https://catalog.workshops.aws/multi-az-gray-failures/en-US) workshop.
|
|
3
5
|
|
|
@@ -151,25 +153,30 @@ You define some characteristics of the service, default values for metrics and a
|
|
|
151
153
|
If you don't have service specific logs and custom metrics with per-AZ dimensions, you can still use the construct to evaluate ALB and NAT Gateway metrics to find single AZ faults.
|
|
152
154
|
|
|
153
155
|
```csharp
|
|
154
|
-
BasicServiceMultiAZObservability
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
156
|
+
BasicServiceMultiAZObservability multiAZObservability = new BasicServiceMultiAZObservability(this, "basic-service-", new BasicServiceMultiAZObservabilityProps() {
|
|
157
|
+
ApplicationLoadBalancerProps = new ApplicationLoadBalancerDetectionProps() {
|
|
158
|
+
ApplicationLoadBalancers = [ myALB ],
|
|
159
|
+
LatencyStatistic = Stats.Percentile(99),
|
|
160
|
+
FaultCountPercentThreshold = 1,
|
|
161
|
+
LatencyThreshold = 500
|
|
162
|
+
},
|
|
163
|
+
NatGatewayProps = new NatGatewayDetectionProps() {
|
|
164
|
+
PacketLossPercentThreshold = 0.01,
|
|
165
|
+
NatGateways = {
|
|
166
|
+
{ "us-east-1a", [ natGateway1 ] },
|
|
167
|
+
{ "us-east-1b", [ natGateway2 ] },
|
|
168
|
+
{ "us-east-1c", [ natGateway3 ] }
|
|
169
|
+
},
|
|
160
170
|
},
|
|
161
171
|
CreateDashboard = true,
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
PacketLossImpactPercentageThreshold = 0.01, // The percentage of packet loss to alarm on for the NAT Gateways in the same AZ
|
|
172
|
+
DatapointsToAlarm = 2,
|
|
173
|
+
EvaluationPeriods = 3,
|
|
165
174
|
ServiceName = "WildRydes",
|
|
166
|
-
Period = Duration.Seconds(60),
|
|
167
|
-
Interval = Duration.Minutes(60)
|
|
168
|
-
EvaluationPeriods = 5,
|
|
169
|
-
DatapointsToAlarm = 3
|
|
175
|
+
Period = Duration.Seconds(60),
|
|
176
|
+
Interval = Duration.Minutes(60),
|
|
170
177
|
});
|
|
171
178
|
```
|
|
172
179
|
|
|
173
180
|
If you provide a load balancer, the construct assumes it is deployed in each AZ of the VPC the load balancer is associated with and will look for HTTP metrics using those AZs as dimensions.
|
|
174
181
|
|
|
175
|
-
Both options support running workloads on EC2, ECS, Lambda, and EKS.
|
|
182
|
+
Both options support running workloads on EC2, ECS, Lambda, and EKS.
|
package/cdk.json
CHANGED
|
@@ -22,7 +22,7 @@ export declare class AvailabilityAndLatencyAlarmsAndRules {
|
|
|
22
22
|
* @param counter
|
|
23
23
|
* @returns
|
|
24
24
|
*/
|
|
25
|
-
static createZonalAvailabilityAlarm(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, counter: number, nameSuffix?: string): IAlarm;
|
|
25
|
+
static createZonalAvailabilityAlarm(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZone: string, availabilityZoneId: string, counter: number, nameSuffix?: string): IAlarm;
|
|
26
26
|
/**
|
|
27
27
|
* Creates a zonal latency alarm
|
|
28
28
|
* @param scope
|
|
@@ -32,7 +32,7 @@ export declare class AvailabilityAndLatencyAlarmsAndRules {
|
|
|
32
32
|
* @param counter
|
|
33
33
|
* @returns
|
|
34
34
|
*/
|
|
35
|
-
static createZonalLatencyAlarm(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, counter: number, nameSuffix?: string): IAlarm;
|
|
35
|
+
static createZonalLatencyAlarm(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZone: string, availabilityZoneId: string, counter: number, nameSuffix?: string): IAlarm;
|
|
36
36
|
/**
|
|
37
37
|
* Creates a composite alarm when either latency or availability is breached in the Availabiltiy Zone
|
|
38
38
|
* @param scope
|
|
@@ -55,7 +55,7 @@ export declare class AvailabilityAndLatencyAlarmsAndRules {
|
|
|
55
55
|
* @param outlierThreshold
|
|
56
56
|
* @returns
|
|
57
57
|
*/
|
|
58
|
-
static createZonalFaultRateStaticOutlierAlarm(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
|
|
58
|
+
static createZonalFaultRateStaticOutlierAlarm(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZone: string, availabilityZoneId: string, counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
|
|
59
59
|
/**
|
|
60
60
|
* An alarm that compares error rate in this AZ to the overall region error based only on metric data.
|
|
61
61
|
* This is different for canaries because the metrics they test at the regional level are different
|
|
@@ -69,15 +69,15 @@ export declare class AvailabilityAndLatencyAlarmsAndRules {
|
|
|
69
69
|
* @param outlierThreshold
|
|
70
70
|
* @returns
|
|
71
71
|
*/
|
|
72
|
-
static createZonalFaultRateStaticOutlierAlarmForCanaries(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZoneId: string,
|
|
72
|
+
static createZonalFaultRateStaticOutlierAlarmForCanaries(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZone: string, availabilityZoneId: string, availabilityZoneIds: string[], counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
|
|
73
73
|
static createZonalFaultRateOutlierAlarm(scope: IConstruct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, allAvailabilityZoneIds: string[], outlierThreshold: number, outlierDetectionFunction: IFunction, outlierDetectionAlgorithm: OutlierDetectionAlgorithm, counter: number, nameSuffix?: string): IAlarm;
|
|
74
74
|
static createZonalFaultRateOutlierAlarmForAlb(scope: IConstruct, loadBalancers: IApplicationLoadBalancer[], availabilityZoneId: string, outlierThreshold: number, outlierDetectionFunction: IFunction, outlierDetectionAlgorithm: OutlierDetectionAlgorithm, azMapper: IAvailabilityZoneMapper, counter: number, evaluationPeriods: number, datapointsToAlarm: number, period: Duration, nameSuffix?: string): IAlarm;
|
|
75
75
|
static createZonalFaultRateOutlierAlarmForNatGW(scope: IConstruct, natGateways: {
|
|
76
76
|
[key: string]: CfnNatGateway[];
|
|
77
77
|
}, availabilityZoneId: string, outlierThreshold: number, outlierDetectionFunction: IFunction, outlierDetectionAlgorithm: OutlierDetectionAlgorithm, azMapper: IAvailabilityZoneMapper, counter: number, evaluationPeriods: number, datapointsToAlarm: number, period: Duration, nameSuffix?: string): IAlarm;
|
|
78
78
|
static createZonalHighLatencyOutlierAlarm(scope: IConstruct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, allAvailabilityZoneIds: string[], outlierThreshold: number, outlierDetectionFunction: IFunction, outlierDetectionAlgorithm: OutlierDetectionAlgorithm, counter: number, nameSuffix?: string): IAlarm;
|
|
79
|
-
static createZonalHighLatencyStaticOutlierAlarm(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
|
|
80
|
-
static createZonalHighLatencyStaticOutlierAlarmForCanaries(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, availabilityZones: string[], counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
|
|
79
|
+
static createZonalHighLatencyStaticOutlierAlarm(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZone: string, availabilityZoneId: string, counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
|
|
80
|
+
static createZonalHighLatencyStaticOutlierAlarmForCanaries(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZone: string, availabilityZoneId: string, availabilityZones: string[], counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
|
|
81
81
|
/**
|
|
82
82
|
* An insight rule that calculates how many instances are responding to requests in
|
|
83
83
|
* the specified AZ. Only useful for server-side metrics since the canary doesn't record instance id metrics.
|
|
@@ -224,7 +224,7 @@ export declare class AvailabilityAndLatencyAlarmsAndRules {
|
|
|
224
224
|
* @param regionalLatencyAlarm
|
|
225
225
|
* @returns
|
|
226
226
|
*/
|
|
227
|
-
static
|
|
227
|
+
static createRegionalAvailabilityOrLatencyImpactAlarm(scope: Construct, operationName: string, nameSuffix: string, regionalAvailabilityAlarm: IAlarm, regionalLatencyAlarm: IAlarm): IAlarm;
|
|
228
228
|
static createRegionalInstanceContributorsToHighLatency(scope: Construct, metricDetails: IOperationMetricDetails, ruleDetails: IContributorInsightRuleDetails): CfnInsightRule;
|
|
229
229
|
static createRegionalInstanceContributorsToFaults(scope: Construct, metricDetails: IOperationMetricDetails, ruleDetails: IContributorInsightRuleDetails): CfnInsightRule;
|
|
230
230
|
}
|