@cdklabs/multi-az-observability 0.0.1-alpha.41 → 0.0.1-alpha.43

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 (37) hide show
  1. package/.jsii +155 -37
  2. package/API.md +120 -17
  3. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.d.ts +2 -1
  4. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.js +4 -3
  5. package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.js +3 -2
  6. package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.js +3 -2
  7. package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.d.ts +10 -0
  8. package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.js +1 -1
  9. package/lib/azmapper/AvailabilityZoneMapper.js +1 -1
  10. package/lib/basic_observability/BasicServiceMultiAZObservability.js +1 -1
  11. package/lib/canaries/src/canary.zip +0 -0
  12. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +85 -13
  13. package/lib/index.d.ts +1 -0
  14. package/lib/index.js +4 -2
  15. package/lib/monitoring/src/monitoring-layer.zip +0 -0
  16. package/lib/outlier-detection/LatencyOutlierMetricAggregation.d.ts +22 -0
  17. package/lib/outlier-detection/LatencyOutlierMetricAggregation.js +27 -0
  18. package/lib/outlier-detection/src/outlier-detection.zip +0 -0
  19. package/lib/outlier-detection/src/scipy-layer.zip +0 -0
  20. package/lib/services/CanaryMetrics.js +1 -1
  21. package/lib/services/CanaryTestAvailabilityMetricsOverride.js +1 -1
  22. package/lib/services/CanaryTestLatencyMetricsOverride.js +1 -1
  23. package/lib/services/CanaryTestMetricsOverride.js +1 -1
  24. package/lib/services/ContributorInsightRuleDetails.js +1 -1
  25. package/lib/services/InstrumentedServiceMultiAZObservability.js +63 -29
  26. package/lib/services/Operation.js +1 -1
  27. package/lib/services/OperationAvailabilityMetricDetails.js +1 -1
  28. package/lib/services/OperationLatencyMetricDetails.js +1 -1
  29. package/lib/services/OperationMetricDetails.js +1 -1
  30. package/lib/services/Service.js +1 -1
  31. package/lib/services/ServiceAvailabilityMetricDetails.js +1 -1
  32. package/lib/services/ServiceLatencyMetricDetails.js +1 -1
  33. package/lib/services/ServiceMetricDetails.js +1 -1
  34. package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.d.ts +49 -4
  35. package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.js +1 -1
  36. package/lib/services/props/MetricDimensions.js +1 -1
  37. package/package.json +8 -8
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  ]
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.184.0",
11
+ "aws-cdk-lib": "^2.187.0",
12
12
  "constructs": "^10.0.5"
13
13
  },
14
14
  "dependencyClosure": {
@@ -942,6 +942,19 @@
942
942
  }
943
943
  }
944
944
  },
945
+ "aws-cdk-lib.aws_cognito_identitypool": {
946
+ "targets": {
947
+ "dotnet": {
948
+ "namespace": "Amazon.CDK.AWS.Cognito.Identitypool"
949
+ },
950
+ "java": {
951
+ "package": "software.amazon.awscdk.services.cognito.identitypool"
952
+ },
953
+ "python": {
954
+ "module": "aws_cdk.aws_cognito_identitypool"
955
+ }
956
+ }
957
+ },
945
958
  "aws-cdk-lib.aws_comprehend": {
946
959
  "targets": {
947
960
  "dotnet": {
@@ -3256,6 +3269,19 @@
3256
3269
  }
3257
3270
  }
3258
3271
  },
3272
+ "aws-cdk-lib.aws_scheduler_targets": {
3273
+ "targets": {
3274
+ "dotnet": {
3275
+ "namespace": "Amazon.CDK.AWS.Scheduler.Targets"
3276
+ },
3277
+ "java": {
3278
+ "package": "software.amazon.awscdk.services.scheduler.targets"
3279
+ },
3280
+ "python": {
3281
+ "module": "aws_cdk.aws_scheduler_targets"
3282
+ }
3283
+ }
3284
+ },
3259
3285
  "aws-cdk-lib.aws_sdb": {
3260
3286
  "targets": {
3261
3287
  "dotnet": {
@@ -3913,7 +3939,7 @@
3913
3939
  "stability": "experimental"
3914
3940
  },
3915
3941
  "homepage": "https://github.com/cdklabs/cdk-multi-az-observability",
3916
- "jsiiVersion": "5.5.26 (build adcbaf3)",
3942
+ "jsiiVersion": "5.5.27 (build f682ef9)",
3917
3943
  "keywords": [
3918
3944
  "aws-cdk",
3919
3945
  "cdk",
@@ -8598,7 +8624,7 @@
8598
8624
  },
8599
8625
  "locationInModule": {
8600
8626
  "filename": "src/services/InstrumentedServiceMultiAZObservability.ts",
8601
- "line": 351
8627
+ "line": 352
8602
8628
  },
8603
8629
  "parameters": [
8604
8630
  {
@@ -8627,7 +8653,7 @@
8627
8653
  "kind": "class",
8628
8654
  "locationInModule": {
8629
8655
  "filename": "src/services/InstrumentedServiceMultiAZObservability.ts",
8630
- "line": 37
8656
+ "line": 38
8631
8657
  },
8632
8658
  "name": "InstrumentedServiceMultiAZObservability",
8633
8659
  "properties": [
@@ -8639,7 +8665,7 @@
8639
8665
  "immutable": true,
8640
8666
  "locationInModule": {
8641
8667
  "filename": "src/services/InstrumentedServiceMultiAZObservability.ts",
8642
- "line": 45
8668
+ "line": 46
8643
8669
  },
8644
8670
  "name": "perOperationAlarmsAndRules",
8645
8671
  "overrides": "@cdklabs/multi-az-observability.IInstrumentedServiceMultiAZObservability",
@@ -8661,7 +8687,7 @@
8661
8687
  "immutable": true,
8662
8688
  "locationInModule": {
8663
8689
  "filename": "src/services/InstrumentedServiceMultiAZObservability.ts",
8664
- "line": 55
8690
+ "line": 56
8665
8691
  },
8666
8692
  "name": "perOperationZonalImpactAlarms",
8667
8693
  "overrides": "@cdklabs/multi-az-observability.IInstrumentedServiceMultiAZObservability",
@@ -8687,7 +8713,7 @@
8687
8713
  "immutable": true,
8688
8714
  "locationInModule": {
8689
8715
  "filename": "src/services/InstrumentedServiceMultiAZObservability.ts",
8690
- "line": 62
8716
+ "line": 63
8691
8717
  },
8692
8718
  "name": "serviceAlarms",
8693
8719
  "overrides": "@cdklabs/multi-az-observability.IInstrumentedServiceMultiAZObservability",
@@ -8704,7 +8730,7 @@
8704
8730
  "immutable": true,
8705
8731
  "locationInModule": {
8706
8732
  "filename": "src/services/InstrumentedServiceMultiAZObservability.ts",
8707
- "line": 85
8733
+ "line": 86
8708
8734
  },
8709
8735
  "name": "canaryLogGroup",
8710
8736
  "optional": true,
@@ -8721,7 +8747,7 @@
8721
8747
  "immutable": true,
8722
8748
  "locationInModule": {
8723
8749
  "filename": "src/services/InstrumentedServiceMultiAZObservability.ts",
8724
- "line": 67
8750
+ "line": 68
8725
8751
  },
8726
8752
  "name": "operationDashboards",
8727
8753
  "optional": true,
@@ -8743,7 +8769,7 @@
8743
8769
  "immutable": true,
8744
8770
  "locationInModule": {
8745
8771
  "filename": "src/services/InstrumentedServiceMultiAZObservability.ts",
8746
- "line": 72
8772
+ "line": 73
8747
8773
  },
8748
8774
  "name": "serviceDashboard",
8749
8775
  "optional": true,
@@ -8766,26 +8792,10 @@
8766
8792
  "kind": "interface",
8767
8793
  "locationInModule": {
8768
8794
  "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8769
- "line": 11
8795
+ "line": 12
8770
8796
  },
8771
8797
  "name": "InstrumentedServiceMultiAZObservabilityProps",
8772
8798
  "properties": [
8773
- {
8774
- "abstract": true,
8775
- "docs": {
8776
- "stability": "experimental",
8777
- "summary": "The algorithm to use for performing outlier detection."
8778
- },
8779
- "immutable": true,
8780
- "locationInModule": {
8781
- "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8782
- "line": 52
8783
- },
8784
- "name": "outlierDetectionAlgorithm",
8785
- "type": {
8786
- "fqn": "@cdklabs/multi-az-observability.OutlierDetectionAlgorithm"
8787
- }
8788
- },
8789
8799
  {
8790
8800
  "abstract": true,
8791
8801
  "docs": {
@@ -8795,7 +8805,7 @@
8795
8805
  "immutable": true,
8796
8806
  "locationInModule": {
8797
8807
  "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8798
- "line": 15
8808
+ "line": 16
8799
8809
  },
8800
8810
  "name": "service",
8801
8811
  "type": {
@@ -8813,7 +8823,7 @@
8813
8823
  "immutable": true,
8814
8824
  "locationInModule": {
8815
8825
  "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8816
- "line": 76
8826
+ "line": 124
8817
8827
  },
8818
8828
  "name": "assetsBucketParameterName",
8819
8829
  "optional": true,
@@ -8832,7 +8842,7 @@
8832
8842
  "immutable": true,
8833
8843
  "locationInModule": {
8834
8844
  "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8835
- "line": 96
8845
+ "line": 144
8836
8846
  },
8837
8847
  "name": "assetsBucketPrefixParameterName",
8838
8848
  "optional": true,
@@ -8840,6 +8850,44 @@
8840
8850
  "primitive": "string"
8841
8851
  }
8842
8852
  },
8853
+ {
8854
+ "abstract": true,
8855
+ "docs": {
8856
+ "default": "OutlierDetectionAlgorithm.STATIC",
8857
+ "remarks": "** Currently only STATIC is supported **",
8858
+ "stability": "experimental",
8859
+ "summary": "The algorithm to use for performing outlier detection for availability metrics."
8860
+ },
8861
+ "immutable": true,
8862
+ "locationInModule": {
8863
+ "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8864
+ "line": 57
8865
+ },
8866
+ "name": "availabilityOutlierDetectionAlgorithm",
8867
+ "optional": true,
8868
+ "type": {
8869
+ "fqn": "@cdklabs/multi-az-observability.OutlierDetectionAlgorithm"
8870
+ }
8871
+ },
8872
+ {
8873
+ "abstract": true,
8874
+ "docs": {
8875
+ "default": "- Depends on the outlier detection algorithm selected",
8876
+ "remarks": "This number is interpreted\ndifferently for different outlier algorithms. When used with\nSTATIC, the number should be between 0 and 1 to represent the\npercentage of errors (like .7) that an AZ must be responsible\nfor to be considered an outlier. When used with CHI_SQUARED, it\nrepresents the p value that indicates statistical significance, like\n0.05 which means the skew has less than or equal to a 5% chance of\noccuring. When used with Z_SCORE it indicates how many standard\ndeviations to evaluate for an AZ being an outlier, typically 3 is\nstandard for Z_SCORE.\n\nStandard defaults based on the outlier detection algorithm:\nSTATIC: 0.7\nCHI_SQUARED: 0.05\nZ_SCORE: 3\nIQR: 1.5\nMAD: 3",
8877
+ "stability": "experimental",
8878
+ "summary": "The outlier threshold for determining if an AZ is an outlier for faults."
8879
+ },
8880
+ "immutable": true,
8881
+ "locationInModule": {
8882
+ "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8883
+ "line": 48
8884
+ },
8885
+ "name": "availabilityOutlierThreshold",
8886
+ "optional": true,
8887
+ "type": {
8888
+ "primitive": "number"
8889
+ }
8890
+ },
8843
8891
  {
8844
8892
  "abstract": true,
8845
8893
  "docs": {
@@ -8850,7 +8898,7 @@
8850
8898
  "immutable": true,
8851
8899
  "locationInModule": {
8852
8900
  "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8853
- "line": 23
8901
+ "line": 24
8854
8902
  },
8855
8903
  "name": "createDashboards",
8856
8904
  "optional": true,
@@ -8868,7 +8916,7 @@
8868
8916
  "immutable": true,
8869
8917
  "locationInModule": {
8870
8918
  "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8871
- "line": 60
8919
+ "line": 108
8872
8920
  },
8873
8921
  "name": "interval",
8874
8922
  "optional": true,
@@ -8876,20 +8924,57 @@
8876
8924
  "fqn": "aws-cdk-lib.Duration"
8877
8925
  }
8878
8926
  },
8927
+ {
8928
+ "abstract": true,
8929
+ "docs": {
8930
+ "default": "OutlierDetectionAlgorithm.STATIC",
8931
+ "remarks": "** Currently only STATIC is supported **",
8932
+ "stability": "experimental",
8933
+ "summary": "The algorithm to use for performing outlier detection for latency metrics."
8934
+ },
8935
+ "immutable": true,
8936
+ "locationInModule": {
8937
+ "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8938
+ "line": 90
8939
+ },
8940
+ "name": "latencyOutlierDetectionAlgorithm",
8941
+ "optional": true,
8942
+ "type": {
8943
+ "fqn": "@cdklabs/multi-az-observability.OutlierDetectionAlgorithm"
8944
+ }
8945
+ },
8946
+ {
8947
+ "abstract": true,
8948
+ "docs": {
8949
+ "default": "LatencyOutlierMetric.COUNT",
8950
+ "stability": "experimental",
8951
+ "summary": "The metric for latency to use in outlier detection, which means whether the algorithm uses a count of requests exceeding your latency threshold or whether it uses the actual latency values at your latency alarm threshold statistic."
8952
+ },
8953
+ "immutable": true,
8954
+ "locationInModule": {
8955
+ "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8956
+ "line": 100
8957
+ },
8958
+ "name": "latencyOutlierMetricAggregation",
8959
+ "optional": true,
8960
+ "type": {
8961
+ "fqn": "@cdklabs/multi-az-observability.LatencyOutlierMetricAggregation"
8962
+ }
8963
+ },
8879
8964
  {
8880
8965
  "abstract": true,
8881
8966
  "docs": {
8882
8967
  "default": "- Depends on the outlier detection algorithm selected",
8883
8968
  "remarks": "This number is interpreted\ndifferently for different outlier algorithms. When used with\nSTATIC, the number should be between 0 and 1 to represent the\npercentage of errors (like .7) that an AZ must be responsible\nfor to be considered an outlier. When used with CHI_SQUARED, it\nrepresents the p value that indicates statistical significance, like\n0.05 which means the skew has less than or equal to a 5% chance of\noccuring. When used with Z_SCORE it indicates how many standard\ndeviations to evaluate for an AZ being an outlier, typically 3 is\nstandard for Z_SCORE.\n\nStandard defaults based on the outlier detection algorithm:\nSTATIC: 0.7\nCHI_SQUARED: 0.05\nZ_SCORE: 3\nIQR: 1.5\nMAD: 3",
8884
8969
  "stability": "experimental",
8885
- "summary": "The outlier threshold for determining if an AZ is an outlier for latency or faults."
8970
+ "summary": "The outlier threshold for determining if an AZ is an outlier for latency."
8886
8971
  },
8887
8972
  "immutable": true,
8888
8973
  "locationInModule": {
8889
8974
  "filename": "src/services/props/InstrumentedServiceMultiAZObservabilityProps.ts",
8890
- "line": 47
8975
+ "line": 81
8891
8976
  },
8892
- "name": "outlierThreshold",
8977
+ "name": "latencyOutlierThreshold",
8893
8978
  "optional": true,
8894
8979
  "type": {
8895
8980
  "primitive": "number"
@@ -8898,6 +8983,39 @@
8898
8983
  ],
8899
8984
  "symbolId": "src/services/props/InstrumentedServiceMultiAZObservabilityProps:InstrumentedServiceMultiAZObservabilityProps"
8900
8985
  },
8986
+ "@cdklabs/multi-az-observability.LatencyOutlierMetricAggregation": {
8987
+ "assembly": "@cdklabs/multi-az-observability",
8988
+ "docs": {
8989
+ "stability": "experimental",
8990
+ "summary": "The latency metric aggregation to use for latency outlier detection."
8991
+ },
8992
+ "fqn": "@cdklabs/multi-az-observability.LatencyOutlierMetricAggregation",
8993
+ "kind": "enum",
8994
+ "locationInModule": {
8995
+ "filename": "src/outlier-detection/LatencyOutlierMetricAggregation.ts",
8996
+ "line": 4
8997
+ },
8998
+ "members": [
8999
+ {
9000
+ "docs": {
9001
+ "remarks": "This option works\nwith all outlier detection algorithms",
9002
+ "stability": "experimental",
9003
+ "summary": "This option will use the count of the number of requests exceeding a latency threshold to make an outlier comparison."
9004
+ },
9005
+ "name": "COUNT"
9006
+ },
9007
+ {
9008
+ "docs": {
9009
+ "remarks": "For example,\nAZ1: p99 = 125ms\nAZ2: p99 = 130ms\nAZ3: p99 = 250ms\n\nThese values will be compared using the provided outlier detection algorithm. This\noption is not compatible with the STATIC outlier detection algorithm.",
9010
+ "stability": "experimental",
9011
+ "summary": "This option will use the value of your provided latency statistic, like p99, and the value of the latency in each AZ will be compared."
9012
+ },
9013
+ "name": "VALUE"
9014
+ }
9015
+ ],
9016
+ "name": "LatencyOutlierMetricAggregation",
9017
+ "symbolId": "src/outlier-detection/LatencyOutlierMetricAggregation:LatencyOutlierMetricAggregation"
9018
+ },
8901
9019
  "@cdklabs/multi-az-observability.MetricDimensions": {
8902
9020
  "assembly": "@cdklabs/multi-az-observability",
8903
9021
  "docs": {
@@ -11628,6 +11746,6 @@
11628
11746
  "symbolId": "src/services/props/ServiceProps:ServiceProps"
11629
11747
  }
11630
11748
  },
11631
- "version": "0.0.1-alpha.41",
11632
- "fingerprint": "Vxj8ZrNtuSp+kaHwEZQ+5UtmgvKeKlCCSKgTrD1ZnQ4="
11749
+ "version": "0.0.1-alpha.43",
11750
+ "fingerprint": "6DGDr/sgSWsgfrdimRlKhEYUrbBIi5u9dYQI5OgLtiM="
11633
11751
  }
package/API.md CHANGED
@@ -1570,25 +1570,16 @@ const instrumentedServiceMultiAZObservabilityProps: InstrumentedServiceMultiAZOb
1570
1570
 
1571
1571
  | **Name** | **Type** | **Description** |
1572
1572
  | --- | --- | --- |
1573
- | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.outlierDetectionAlgorithm">outlierDetectionAlgorithm</a></code> | <code><a href="#@cdklabs/multi-az-observability.OutlierDetectionAlgorithm">OutlierDetectionAlgorithm</a></code> | The algorithm to use for performing outlier detection. |
1574
1573
  | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.service">service</a></code> | <code><a href="#@cdklabs/multi-az-observability.IService">IService</a></code> | The service that the alarms and dashboards are being crated for. |
1575
1574
  | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.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. |
1576
1575
  | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.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. |
1576
+ | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.availabilityOutlierDetectionAlgorithm">availabilityOutlierDetectionAlgorithm</a></code> | <code><a href="#@cdklabs/multi-az-observability.OutlierDetectionAlgorithm">OutlierDetectionAlgorithm</a></code> | The algorithm to use for performing outlier detection for availability metrics. |
1577
+ | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.availabilityOutlierThreshold">availabilityOutlierThreshold</a></code> | <code>number</code> | The outlier threshold for determining if an AZ is an outlier for faults. |
1577
1578
  | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.createDashboards">createDashboards</a></code> | <code>boolean</code> | Indicates whether to create per operation and overall service dashboards. |
1578
1579
  | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.interval">interval</a></code> | <code>aws-cdk-lib.Duration</code> | The interval used in the dashboard, defaults to 60 minutes. |
1579
- | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.outlierThreshold">outlierThreshold</a></code> | <code>number</code> | The outlier threshold for determining if an AZ is an outlier for latency or faults. |
1580
-
1581
- ---
1582
-
1583
- ##### `outlierDetectionAlgorithm`<sup>Required</sup> <a name="outlierDetectionAlgorithm" id="@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.outlierDetectionAlgorithm"></a>
1584
-
1585
- ```typescript
1586
- public readonly outlierDetectionAlgorithm: OutlierDetectionAlgorithm;
1587
- ```
1588
-
1589
- - *Type:* <a href="#@cdklabs/multi-az-observability.OutlierDetectionAlgorithm">OutlierDetectionAlgorithm</a>
1590
-
1591
- The algorithm to use for performing outlier detection.
1580
+ | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.latencyOutlierDetectionAlgorithm">latencyOutlierDetectionAlgorithm</a></code> | <code><a href="#@cdklabs/multi-az-observability.OutlierDetectionAlgorithm">OutlierDetectionAlgorithm</a></code> | The algorithm to use for performing outlier detection for latency metrics. |
1581
+ | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.latencyOutlierMetricAggregation">latencyOutlierMetricAggregation</a></code> | <code><a href="#@cdklabs/multi-az-observability.LatencyOutlierMetricAggregation">LatencyOutlierMetricAggregation</a></code> | The metric for latency to use in outlier detection, which means whether the algorithm uses a count of requests exceeding your latency threshold or whether it uses the actual latency values at your latency alarm threshold statistic. |
1582
+ | <code><a href="#@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.latencyOutlierThreshold">latencyOutlierThreshold</a></code> | <code>number</code> | The outlier threshold for determining if an AZ is an outlier for latency. |
1592
1583
 
1593
1584
  ---
1594
1585
 
@@ -1643,6 +1634,52 @@ value for this property.
1643
1634
 
1644
1635
  ---
1645
1636
 
1637
+ ##### `availabilityOutlierDetectionAlgorithm`<sup>Optional</sup> <a name="availabilityOutlierDetectionAlgorithm" id="@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.availabilityOutlierDetectionAlgorithm"></a>
1638
+
1639
+ ```typescript
1640
+ public readonly availabilityOutlierDetectionAlgorithm: OutlierDetectionAlgorithm;
1641
+ ```
1642
+
1643
+ - *Type:* <a href="#@cdklabs/multi-az-observability.OutlierDetectionAlgorithm">OutlierDetectionAlgorithm</a>
1644
+ - *Default:* OutlierDetectionAlgorithm.STATIC
1645
+
1646
+ The algorithm to use for performing outlier detection for availability metrics.
1647
+
1648
+ ** Currently only STATIC is supported **
1649
+
1650
+ ---
1651
+
1652
+ ##### `availabilityOutlierThreshold`<sup>Optional</sup> <a name="availabilityOutlierThreshold" id="@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.availabilityOutlierThreshold"></a>
1653
+
1654
+ ```typescript
1655
+ public readonly availabilityOutlierThreshold: number;
1656
+ ```
1657
+
1658
+ - *Type:* number
1659
+ - *Default:* Depends on the outlier detection algorithm selected
1660
+
1661
+ The outlier threshold for determining if an AZ is an outlier for faults.
1662
+
1663
+ This number is interpreted
1664
+ differently for different outlier algorithms. When used with
1665
+ STATIC, the number should be between 0 and 1 to represent the
1666
+ percentage of errors (like .7) that an AZ must be responsible
1667
+ for to be considered an outlier. When used with CHI_SQUARED, it
1668
+ represents the p value that indicates statistical significance, like
1669
+ 0.05 which means the skew has less than or equal to a 5% chance of
1670
+ occuring. When used with Z_SCORE it indicates how many standard
1671
+ deviations to evaluate for an AZ being an outlier, typically 3 is
1672
+ standard for Z_SCORE.
1673
+
1674
+ Standard defaults based on the outlier detection algorithm:
1675
+ STATIC: 0.7
1676
+ CHI_SQUARED: 0.05
1677
+ Z_SCORE: 3
1678
+ IQR: 1.5
1679
+ MAD: 3
1680
+
1681
+ ---
1682
+
1646
1683
  ##### `createDashboards`<sup>Optional</sup> <a name="createDashboards" id="@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.createDashboards"></a>
1647
1684
 
1648
1685
  ```typescript
@@ -1669,16 +1706,44 @@ The interval used in the dashboard, defaults to 60 minutes.
1669
1706
 
1670
1707
  ---
1671
1708
 
1672
- ##### `outlierThreshold`<sup>Optional</sup> <a name="outlierThreshold" id="@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.outlierThreshold"></a>
1709
+ ##### `latencyOutlierDetectionAlgorithm`<sup>Optional</sup> <a name="latencyOutlierDetectionAlgorithm" id="@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.latencyOutlierDetectionAlgorithm"></a>
1710
+
1711
+ ```typescript
1712
+ public readonly latencyOutlierDetectionAlgorithm: OutlierDetectionAlgorithm;
1713
+ ```
1714
+
1715
+ - *Type:* <a href="#@cdklabs/multi-az-observability.OutlierDetectionAlgorithm">OutlierDetectionAlgorithm</a>
1716
+ - *Default:* OutlierDetectionAlgorithm.STATIC
1717
+
1718
+ The algorithm to use for performing outlier detection for latency metrics.
1719
+
1720
+ ** Currently only STATIC is supported **
1721
+
1722
+ ---
1723
+
1724
+ ##### `latencyOutlierMetricAggregation`<sup>Optional</sup> <a name="latencyOutlierMetricAggregation" id="@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.latencyOutlierMetricAggregation"></a>
1673
1725
 
1674
1726
  ```typescript
1675
- public readonly outlierThreshold: number;
1727
+ public readonly latencyOutlierMetricAggregation: LatencyOutlierMetricAggregation;
1728
+ ```
1729
+
1730
+ - *Type:* <a href="#@cdklabs/multi-az-observability.LatencyOutlierMetricAggregation">LatencyOutlierMetricAggregation</a>
1731
+ - *Default:* LatencyOutlierMetric.COUNT
1732
+
1733
+ The metric for latency to use in outlier detection, which means whether the algorithm uses a count of requests exceeding your latency threshold or whether it uses the actual latency values at your latency alarm threshold statistic.
1734
+
1735
+ ---
1736
+
1737
+ ##### `latencyOutlierThreshold`<sup>Optional</sup> <a name="latencyOutlierThreshold" id="@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservabilityProps.property.latencyOutlierThreshold"></a>
1738
+
1739
+ ```typescript
1740
+ public readonly latencyOutlierThreshold: number;
1676
1741
  ```
1677
1742
 
1678
1743
  - *Type:* number
1679
1744
  - *Default:* Depends on the outlier detection algorithm selected
1680
1745
 
1681
- The outlier threshold for determining if an AZ is an outlier for latency or faults.
1746
+ The outlier threshold for determining if an AZ is an outlier for latency.
1682
1747
 
1683
1748
  This number is interpreted
1684
1749
  differently for different outlier algorithms. When used with
@@ -8574,6 +8639,44 @@ average for all AZs. This is the default.
8574
8639
  ---
8575
8640
 
8576
8641
 
8642
+ ### LatencyOutlierMetricAggregation <a name="LatencyOutlierMetricAggregation" id="@cdklabs/multi-az-observability.LatencyOutlierMetricAggregation"></a>
8643
+
8644
+ The latency metric aggregation to use for latency outlier detection.
8645
+
8646
+ #### Members <a name="Members" id="Members"></a>
8647
+
8648
+ | **Name** | **Description** |
8649
+ | --- | --- |
8650
+ | <code><a href="#@cdklabs/multi-az-observability.LatencyOutlierMetricAggregation.COUNT">COUNT</a></code> | This option will use the count of the number of requests exceeding a latency threshold to make an outlier comparison. |
8651
+ | <code><a href="#@cdklabs/multi-az-observability.LatencyOutlierMetricAggregation.VALUE">VALUE</a></code> | This option will use the value of your provided latency statistic, like p99, and the value of the latency in each AZ will be compared. |
8652
+
8653
+ ---
8654
+
8655
+ ##### `COUNT` <a name="COUNT" id="@cdklabs/multi-az-observability.LatencyOutlierMetricAggregation.COUNT"></a>
8656
+
8657
+ This option will use the count of the number of requests exceeding a latency threshold to make an outlier comparison.
8658
+
8659
+ This option works
8660
+ with all outlier detection algorithms
8661
+
8662
+ ---
8663
+
8664
+
8665
+ ##### `VALUE` <a name="VALUE" id="@cdklabs/multi-az-observability.LatencyOutlierMetricAggregation.VALUE"></a>
8666
+
8667
+ This option will use the value of your provided latency statistic, like p99, and the value of the latency in each AZ will be compared.
8668
+
8669
+ For example,
8670
+ AZ1: p99 = 125ms
8671
+ AZ2: p99 = 130ms
8672
+ AZ3: p99 = 250ms
8673
+
8674
+ These values will be compared using the provided outlier detection algorithm. This
8675
+ option is not compatible with the STATIC outlier detection algorithm.
8676
+
8677
+ ---
8678
+
8679
+
8577
8680
  ### OutlierDetectionAlgorithm <a name="OutlierDetectionAlgorithm" id="@cdklabs/multi-az-observability.OutlierDetectionAlgorithm"></a>
8578
8681
 
8579
8682
  Available algorithms for performing outlier detection.
@@ -11,6 +11,7 @@ import { IOperationMetricDetails } from '../services/IOperationMetricDetails';
11
11
  import { OutlierDetectionAlgorithm } from '../utilities/OutlierDetectionAlgorithm';
12
12
  import { IOperationAvailabilityMetricDetails } from '../services/IOperationAvailabilityMetricDetails';
13
13
  import { IOperationLatencyMetricDetails } from '../services/IOperationLatencyMetricDetails';
14
+ import { LatencyOutlierMetricAggregation } from '../outlier-detection/LatencyOutlierMetricAggregation';
14
15
  /**
15
16
  * Class used to create availability and latency alarms and Contributor Insight rules
16
17
  */
@@ -77,7 +78,7 @@ export declare class AvailabilityAndLatencyAlarmsAndRules {
77
78
  static createZonalFaultRateOutlierAlarmForNatGW(scope: IConstruct, natGateways: {
78
79
  [key: string]: CfnNatGateway[];
79
80
  }, availabilityZoneId: string, outlierThreshold: number, outlierDetectionFunction: IFunction, outlierDetectionAlgorithm: OutlierDetectionAlgorithm, azMapper: IAvailabilityZoneMapper, counter: number, evaluationPeriods: number, datapointsToAlarm: number, period: Duration, nameSuffix?: string): IAlarm;
80
- static createZonalHighLatencyOutlierAlarm(scope: IConstruct, metricDetails: IOperationLatencyMetricDetails, availabilityZoneId: string, allAvailabilityZoneIds: string[], outlierThreshold: number, outlierDetectionFunction: IFunction, outlierDetectionAlgorithm: OutlierDetectionAlgorithm, counter: number, nameSuffix?: string): IAlarm;
81
+ static createZonalHighLatencyOutlierAlarm(scope: IConstruct, metricDetails: IOperationLatencyMetricDetails, availabilityZoneId: string, allAvailabilityZoneIds: string[], outlierThreshold: number, outlierDetectionFunction: IFunction, outlierMetric: LatencyOutlierMetricAggregation, outlierDetectionAlgorithm: OutlierDetectionAlgorithm, counter: number, nameSuffix?: string): IAlarm;
81
82
  static createZonalHighLatencyStaticOutlierAlarm(scope: Construct, metricDetails: IOperationLatencyMetricDetails, availabilityZone: string, availabilityZoneId: string, counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
82
83
  static createZonalHighLatencyStaticOutlierAlarmForCanaries(scope: Construct, metricDetails: IOperationLatencyMetricDetails, availabilityZone: string, availabilityZoneId: string, availabilityZones: string[], counter: number, outlierThreshold: number, nameSuffix?: string): IAlarm;
83
84
  /**