@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
package/API.md CHANGED
@@ -823,7 +823,7 @@ The currently in use Availability Zone names which constrains the list of AZ IDs
823
823
 
824
824
  ### BasicServiceMultiAZObservabilityProps <a name="BasicServiceMultiAZObservabilityProps" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps"></a>
825
825
 
826
- Properties for creating a basic service.
826
+ Properties for creating basic multi-AZ observability.
827
827
 
828
828
  #### Initializer <a name="Initializer" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.Initializer"></a>
829
829
 
@@ -837,80 +837,83 @@ const basicServiceMultiAZObservabilityProps: BasicServiceMultiAZObservabilityPro
837
837
 
838
838
  | **Name** | **Type** | **Description** |
839
839
  | --- | --- | --- |
840
- | <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. |
841
840
  | <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. |
842
841
  | <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. |
843
- | <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.outlierDetectionAlgorithm">outlierDetectionAlgorithm</a></code> | <code><a href="#@cdklabs/multi-az-observability.OutlierDetectionAlgorithm">OutlierDetectionAlgorithm</a></code> | The algorithm to use for performing outlier detection. |
844
- | <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period to evaluate metrics. |
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
845
  | <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.serviceName">serviceName</a></code> | <code>string</code> | The service's name. |
846
846
  | <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.applicationLoadBalancers">applicationLoadBalancers</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer[]</code> | The application load balancers being used by the service. |
847
847
  | <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
848
  | <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
- | <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. |
849
+ | <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
850
  | <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.interval">interval</a></code> | <code>aws-cdk-lib.Duration</code> | Dashboard interval. |
851
851
  | <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.natGateways">natGateways</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_ec2.CfnNatGateway[]}</code> | (Optional) A map of Availability Zone name to the NAT Gateways in that AZ. |
852
- | <code><a href="#@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.outlierThreshold">outlierThreshold</a></code> | <code>number</code> | The outlier threshold for determining if an AZ is an outlier for latency or faults. |
853
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%. |
853
+ | <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
854
 
855
855
  ---
856
856
 
857
- ##### `createDashboard`<sup>Required</sup> <a name="createDashboard" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.createDashboard"></a>
857
+ ##### `datapointsToAlarm`<sup>Required</sup> <a name="datapointsToAlarm" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.datapointsToAlarm"></a>
858
858
 
859
859
  ```typescript
860
- public readonly createDashboard: boolean;
860
+ public readonly datapointsToAlarm: number;
861
861
  ```
862
862
 
863
- - *Type:* boolean
863
+ - *Type:* number
864
864
 
865
- Whether to create a dashboard displaying the metrics and alarms.
865
+ The number of datapoints to alarm on for latency and availability alarms.
866
866
 
867
867
  ---
868
868
 
869
- ##### `datapointsToAlarm`<sup>Required</sup> <a name="datapointsToAlarm" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.datapointsToAlarm"></a>
869
+ ##### `evaluationPeriods`<sup>Required</sup> <a name="evaluationPeriods" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.evaluationPeriods"></a>
870
870
 
871
871
  ```typescript
872
- public readonly datapointsToAlarm: number;
872
+ public readonly evaluationPeriods: number;
873
873
  ```
874
874
 
875
875
  - *Type:* number
876
876
 
877
- The number of datapoints to alarm on for latency and availability alarms.
877
+ The number of evaluation periods for latency and availabiltiy alarms.
878
878
 
879
879
  ---
880
880
 
881
- ##### `evaluationPeriods`<sup>Required</sup> <a name="evaluationPeriods" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.evaluationPeriods"></a>
881
+ ##### `faultCountPercentageThreshold`<sup>Required</sup> <a name="faultCountPercentageThreshold" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.faultCountPercentageThreshold"></a>
882
882
 
883
883
  ```typescript
884
- public readonly evaluationPeriods: number;
884
+ public readonly faultCountPercentageThreshold: number;
885
885
  ```
886
886
 
887
887
  - *Type:* number
888
888
 
889
- The number of evaluation periods for latency and availabiltiy alarms.
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.
890
893
 
891
894
  ---
892
895
 
893
- ##### `outlierDetectionAlgorithm`<sup>Required</sup> <a name="outlierDetectionAlgorithm" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.outlierDetectionAlgorithm"></a>
896
+ ##### `latencyStatistic`<sup>Required</sup> <a name="latencyStatistic" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.latencyStatistic"></a>
894
897
 
895
898
  ```typescript
896
- public readonly outlierDetectionAlgorithm: OutlierDetectionAlgorithm;
899
+ public readonly latencyStatistic: string;
897
900
  ```
898
901
 
899
- - *Type:* <a href="#@cdklabs/multi-az-observability.OutlierDetectionAlgorithm">OutlierDetectionAlgorithm</a>
902
+ - *Type:* string
900
903
 
901
- The algorithm to use for performing outlier detection.
904
+ The statistic used to measure target response latency, like p99, which can be specified using Stats.percentile(99) or "p99".
902
905
 
903
906
  ---
904
907
 
905
- ##### `period`<sup>Required</sup> <a name="period" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.period"></a>
908
+ ##### `latencyThreshold`<sup>Required</sup> <a name="latencyThreshold" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.latencyThreshold"></a>
906
909
 
907
910
  ```typescript
908
- public readonly period: Duration;
911
+ public readonly latencyThreshold: number;
909
912
  ```
910
913
 
911
- - *Type:* aws-cdk-lib.Duration
914
+ - *Type:* number
912
915
 
913
- The period to evaluate metrics.
916
+ The threshold in seconds for ALB targets whose responses are slower than this value at the specified percentile statistic.
914
917
 
915
918
  ---
916
919
 
@@ -933,10 +936,14 @@ public readonly applicationLoadBalancers: IApplicationLoadBalancer[];
933
936
  ```
934
937
 
935
938
  - *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer[]
936
- - *Default:* No alarms for ALBs will be created
939
+ - *Default:* "No alarms for ALBs will be created"
937
940
 
938
941
  The application load balancers being used by the service.
939
942
 
943
+ There will be an alarm created for
944
+ each AZ for each ALB. Then, there will be a composite alarm for AZ created from the input
945
+ of all ALBs. You must either specify an ALB or a NAT GW.
946
+
940
947
  ---
941
948
 
942
949
  ##### `assetsBucketParameterName`<sup>Optional</sup> <a name="assetsBucketParameterName" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.assetsBucketParameterName"></a>
@@ -946,7 +953,7 @@ public readonly assetsBucketParameterName: string;
946
953
  ```
947
954
 
948
955
  - *Type:* string
949
- - *Default:* The assets will be uploaded to the default defined asset location.
956
+ - *Default:* "The assets will be uploaded to the default defined asset location."
950
957
 
951
958
  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.
952
959
 
@@ -965,7 +972,7 @@ public readonly assetsBucketPrefixParameterName: string;
965
972
  ```
966
973
 
967
974
  - *Type:* string
968
- - *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.
975
+ - *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."
969
976
 
970
977
  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.
971
978
 
@@ -978,19 +985,16 @@ value for this property.
978
985
 
979
986
  ---
980
987
 
981
- ##### `faultCountPercentageThreshold`<sup>Optional</sup> <a name="faultCountPercentageThreshold" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.faultCountPercentageThreshold"></a>
988
+ ##### `createDashboard`<sup>Optional</sup> <a name="createDashboard" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.createDashboard"></a>
982
989
 
983
990
  ```typescript
984
- public readonly faultCountPercentageThreshold: number;
991
+ public readonly createDashboard: boolean;
985
992
  ```
986
993
 
987
- - *Type:* number
988
- - *Default:* 5 (as in 5%)
989
-
990
- The percentage of faults for a single ALB to consider an AZ to be unhealthy, this should align with your availability goal.
994
+ - *Type:* boolean
995
+ - *Default:* false
991
996
 
992
- For example
993
- 1% or 5%.
997
+ Whether to create a dashboard displaying the metrics and alarms.
994
998
 
995
999
  ---
996
1000
 
@@ -1001,7 +1005,7 @@ public readonly interval: Duration;
1001
1005
  ```
1002
1006
 
1003
1007
  - *Type:* aws-cdk-lib.Duration
1004
- - *Default:* 1 hour
1008
+ - *Default:* Duration.hours(1)
1005
1009
 
1006
1010
  Dashboard interval.
1007
1011
 
@@ -1014,53 +1018,39 @@ public readonly natGateways: {[ key: string ]: CfnNatGateway[]};
1014
1018
  ```
1015
1019
 
1016
1020
  - *Type:* {[ key: string ]: aws-cdk-lib.aws_ec2.CfnNatGateway[]}
1017
- - *Default:* No alarms for NAT Gateways will be created
1021
+ - *Default:* "No alarms for NAT Gateways will be created"
1018
1022
 
1019
1023
  (Optional) A map of Availability Zone name to the NAT Gateways in that AZ.
1020
1024
 
1025
+ One alarm per NAT GW will be created. If multiple NAT GWs
1026
+ are provided for a single AZ, those alarms will be aggregated into
1027
+ a composite alarm for the AZ. You must either specify an ALB or a NAT GW.
1028
+
1021
1029
  ---
1022
1030
 
1023
- ##### `outlierThreshold`<sup>Optional</sup> <a name="outlierThreshold" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.outlierThreshold"></a>
1031
+ ##### `packetLossImpactPercentageThreshold`<sup>Optional</sup> <a name="packetLossImpactPercentageThreshold" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.packetLossImpactPercentageThreshold"></a>
1024
1032
 
1025
1033
  ```typescript
1026
- public readonly outlierThreshold: number;
1034
+ public readonly packetLossImpactPercentageThreshold: number;
1027
1035
  ```
1028
1036
 
1029
1037
  - *Type:* number
1030
- - *Default:* Depends on the outlier detection algorithm selected
1038
+ - *Default:* "0.01 (as in 0.01%)"
1031
1039
 
1032
- The outlier threshold for determining if an AZ is an outlier for latency or faults.
1033
-
1034
- This number is interpreted
1035
- differently for different outlier algorithms. When used with
1036
- STATIC, the number should be between 0 and 1 to represent the
1037
- percentage of errors (like .7) that an AZ must be responsible
1038
- for to be considered an outlier. When used with CHI_SQUARED, it
1039
- represents the p value that indicates statistical significance, like
1040
- 0.05 which means the skew has less than or equal to a 5% chance of
1041
- occuring. When used with Z_SCORE it indicates how many standard
1042
- deviations to evaluate for an AZ being an outlier, typically 3 is
1043
- standard for Z_SCORE.
1044
-
1045
- Standard defaults based on the outlier detection algorithm:
1046
- STATIC: 0.7
1047
- CHI_SQUARED: 0.05
1048
- Z_SCORE: 2
1049
- IQR: 1.5
1050
- MAD: 3
1040
+ The amount of packet loss in a NAT GW to determine if an AZ is actually impacted, recommendation is 0.01%.
1051
1041
 
1052
1042
  ---
1053
1043
 
1054
- ##### `packetLossImpactPercentageThreshold`<sup>Optional</sup> <a name="packetLossImpactPercentageThreshold" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.packetLossImpactPercentageThreshold"></a>
1044
+ ##### `period`<sup>Optional</sup> <a name="period" id="@cdklabs/multi-az-observability.BasicServiceMultiAZObservabilityProps.property.period"></a>
1055
1045
 
1056
1046
  ```typescript
1057
- public readonly packetLossImpactPercentageThreshold: number;
1047
+ public readonly period: Duration;
1058
1048
  ```
1059
1049
 
1060
- - *Type:* number
1061
- - *Default:* 0.01 (as in 0.01%)
1050
+ - *Type:* aws-cdk-lib.Duration
1051
+ - *Default:* Duration.minutes(1)
1062
1052
 
1063
- The amount of packet loss in a NAT GW to determine if an AZ is actually impacted, recommendation is 0.01%.
1053
+ The period to evaluate metrics.
1064
1054
 
1065
1055
  ---
1066
1056
 
@@ -55,6 +55,20 @@ export declare class AvailabilityAndLatencyAlarmsAndRules {
55
55
  * @returns
56
56
  */
57
57
  static createZonalFaultRateStaticOutlierAlarm(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
58
+ /**
59
+ * An alarm that compares error rate in this AZ to the overall region error based only on metric data.
60
+ * This is different for canaries because the metrics they test at the regional level are different
61
+ * requests than the ones sent to the zonal endpoints. So you have to add all of the zonal requests together
62
+ * to compare one AZ to the others (you can't compare a zone to the regional metrics).
63
+ * @param scope
64
+ * @param metricDetails
65
+ * @param availabilityZoneId
66
+ * @param nameSuffix
67
+ * @param counter
68
+ * @param outlierThreshold
69
+ * @returns
70
+ */
71
+ static createZonalFaultRateStaticOutlierAlarmForCanaries(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, availabilityZones: string[], counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
58
72
  static createZonalFaultRateOutlierAlarm(scope: IConstruct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, allAvailabilityZoneIds: string[], outlierThreshold: number, outlierDetectionFunction: IFunction, outlierDetectionAlgorithm: OutlierDetectionAlgorithm, counter: number, nameSuffix?: string): IAlarm;
59
73
  static createZonalFaultRateOutlierAlarmForAlb(scope: IConstruct, loadBalancers: IApplicationLoadBalancer[], availabilityZoneId: string, outlierThreshold: number, outlierDetectionFunction: IFunction, outlierDetectionAlgorithm: OutlierDetectionAlgorithm, azMapper: IAvailabilityZoneMapper, counter: number, evaluationPeriods: number, datapointsToAlarm: number, nameSuffix?: string): IAlarm;
60
74
  static createZonalFaultRateOutlierAlarmForNatGW(scope: IConstruct, natGateways: {
@@ -62,6 +76,7 @@ export declare class AvailabilityAndLatencyAlarmsAndRules {
62
76
  }, availabilityZoneId: string, outlierThreshold: number, outlierDetectionFunction: IFunction, outlierDetectionAlgorithm: OutlierDetectionAlgorithm, azMapper: IAvailabilityZoneMapper, counter: number, evaluationPeriods: number, datapointsToAlarm: number, nameSuffix?: string): IAlarm;
63
77
  static createZonalHighLatencyOutlierAlarm(scope: IConstruct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, allAvailabilityZoneIds: string[], outlierThreshold: number, outlierDetectionFunction: IFunction, outlierDetectionAlgorithm: OutlierDetectionAlgorithm, counter: number, nameSuffix?: string): IAlarm;
64
78
  static createZonalHighLatencyStaticOutlierAlarm(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
79
+ static createZonalHighLatencyStaticOutlierAlarmForCanaries(scope: Construct, metricDetails: IOperationMetricDetails, availabilityZoneId: string, availabilityZones: string[], counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
65
80
  /**
66
81
  * An insight rule that calculates how many instances are responding to requests in
67
82
  * the specified AZ. Only useful for server-side metrics since the canary doesn't record instance id metrics.