@cdklabs/multi-az-observability 0.0.1-alpha.55 → 0.0.1-alpha.56

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 +158 -32
  2. package/API.md +93 -5
  3. package/lib/azmapper/AvailabilityZoneMapper.js +1 -1
  4. package/lib/basic_observability/BasicServiceDashboard.js +2 -2
  5. package/lib/basic_observability/BasicServiceMultiAZObservability.js +3 -3
  6. package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.d.ts +18 -3
  7. package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.js +1 -1
  8. package/lib/canaries/src/canary.zip +0 -0
  9. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +4 -2
  10. package/lib/index.d.ts +1 -1
  11. package/lib/index.js +1 -1
  12. package/lib/metrics/ApplicationLoadBalancerMetrics.d.ts +6 -2
  13. package/lib/metrics/ApplicationLoadBalancerMetrics.js +219 -2
  14. package/lib/monitoring/src/monitoring-layer.zip +0 -0
  15. package/lib/outlier-detection/src/outlier-detection.zip +0 -0
  16. package/lib/outlier-detection/src/scipy-layer.zip +0 -0
  17. package/lib/services/CanaryMetrics.js +1 -1
  18. package/lib/services/CanaryTestAvailabilityMetricsOverride.js +1 -1
  19. package/lib/services/CanaryTestLatencyMetricsOverride.js +1 -1
  20. package/lib/services/CanaryTestMetricsOverride.js +1 -1
  21. package/lib/services/ContributorInsightRuleDetails.js +1 -1
  22. package/lib/services/IService.d.ts +7 -1
  23. package/lib/services/IService.js +1 -1
  24. package/lib/services/InstrumentedServiceMultiAZObservability.js +1 -1
  25. package/lib/services/Operation.js +1 -1
  26. package/lib/services/OperationAvailabilityMetricDetails.js +1 -1
  27. package/lib/services/OperationLatencyMetricDetails.js +1 -1
  28. package/lib/services/OperationMetricDetails.js +1 -1
  29. package/lib/services/Service.d.ts +7 -1
  30. package/lib/services/Service.js +2 -2
  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/MetricDimensions.js +1 -1
  35. package/lib/services/props/ServiceProps.d.ts +7 -1
  36. package/lib/services/props/ServiceProps.js +1 -1
  37. package/package.json +1 -1
package/.jsii CHANGED
@@ -4207,6 +4207,63 @@
4207
4207
  ],
4208
4208
  "symbolId": "src/canaries/props/AddCanaryTestProps:AddCanaryTestProps"
4209
4209
  },
4210
+ "@cdklabs/multi-az-observability.AlbTargetGroupMap": {
4211
+ "assembly": "@cdklabs/multi-az-observability",
4212
+ "datatype": true,
4213
+ "docs": {
4214
+ "stability": "experimental",
4215
+ "summary": "An object to map an ALB to its target groups."
4216
+ },
4217
+ "fqn": "@cdklabs/multi-az-observability.AlbTargetGroupMap",
4218
+ "kind": "interface",
4219
+ "locationInModule": {
4220
+ "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4221
+ "line": 9
4222
+ },
4223
+ "name": "AlbTargetGroupMap",
4224
+ "properties": [
4225
+ {
4226
+ "abstract": true,
4227
+ "docs": {
4228
+ "stability": "experimental",
4229
+ "summary": "The application load balancer."
4230
+ },
4231
+ "immutable": true,
4232
+ "locationInModule": {
4233
+ "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4234
+ "line": 13
4235
+ },
4236
+ "name": "applicationLoadBalancer",
4237
+ "type": {
4238
+ "fqn": "aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer"
4239
+ }
4240
+ },
4241
+ {
4242
+ "abstract": true,
4243
+ "docs": {
4244
+ "default": "No target groups are associated and will not display anomalous hosts or mitigated hosts on the dashboard",
4245
+ "stability": "experimental",
4246
+ "summary": "The target groups associated with the ALB."
4247
+ },
4248
+ "immutable": true,
4249
+ "locationInModule": {
4250
+ "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4251
+ "line": 20
4252
+ },
4253
+ "name": "targetGroups",
4254
+ "optional": true,
4255
+ "type": {
4256
+ "collection": {
4257
+ "elementtype": {
4258
+ "fqn": "aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup"
4259
+ },
4260
+ "kind": "array"
4261
+ }
4262
+ }
4263
+ }
4264
+ ],
4265
+ "symbolId": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps:AlbTargetGroupMap"
4266
+ },
4210
4267
  "@cdklabs/multi-az-observability.ApplicationLoadBalancerAvailabilityOutlierAlgorithm": {
4211
4268
  "assembly": "@cdklabs/multi-az-observability",
4212
4269
  "docs": {
@@ -4242,7 +4299,7 @@
4242
4299
  "kind": "interface",
4243
4300
  "locationInModule": {
4244
4301
  "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4245
- "line": 9
4302
+ "line": 26
4246
4303
  },
4247
4304
  "name": "ApplicationLoadBalancerDetectionProps",
4248
4305
  "properties": [
@@ -4250,18 +4307,18 @@
4250
4307
  "abstract": true,
4251
4308
  "docs": {
4252
4309
  "stability": "experimental",
4253
- "summary": "The application load balancers to collect metrics from."
4310
+ "summary": "Map of target groups per ALB to collect metrics from."
4254
4311
  },
4255
4312
  "immutable": true,
4256
4313
  "locationInModule": {
4257
4314
  "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4258
- "line": 14
4315
+ "line": 31
4259
4316
  },
4260
- "name": "applicationLoadBalancers",
4317
+ "name": "albTargetGroupMap",
4261
4318
  "type": {
4262
4319
  "collection": {
4263
4320
  "elementtype": {
4264
- "fqn": "aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer"
4321
+ "fqn": "@cdklabs/multi-az-observability.AlbTargetGroupMap"
4265
4322
  },
4266
4323
  "kind": "array"
4267
4324
  }
@@ -4277,7 +4334,7 @@
4277
4334
  "immutable": true,
4278
4335
  "locationInModule": {
4279
4336
  "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4280
- "line": 21
4337
+ "line": 38
4281
4338
  },
4282
4339
  "name": "faultCountPercentThreshold",
4283
4340
  "type": {
@@ -4293,7 +4350,7 @@
4293
4350
  "immutable": true,
4294
4351
  "locationInModule": {
4295
4352
  "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4296
- "line": 33
4353
+ "line": 50
4297
4354
  },
4298
4355
  "name": "latencyStatistic",
4299
4356
  "type": {
@@ -4309,7 +4366,7 @@
4309
4366
  "immutable": true,
4310
4367
  "locationInModule": {
4311
4368
  "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4312
- "line": 27
4369
+ "line": 44
4313
4370
  },
4314
4371
  "name": "latencyThreshold",
4315
4372
  "type": {
@@ -4326,7 +4383,7 @@
4326
4383
  "immutable": true,
4327
4384
  "locationInModule": {
4328
4385
  "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4329
- "line": 45
4386
+ "line": 62
4330
4387
  },
4331
4388
  "name": "availabilityOutlierAlgorithm",
4332
4389
  "optional": true,
@@ -4344,7 +4401,7 @@
4344
4401
  "immutable": true,
4345
4402
  "locationInModule": {
4346
4403
  "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4347
- "line": 52
4404
+ "line": 69
4348
4405
  },
4349
4406
  "name": "availabilityOutlierThreshold",
4350
4407
  "optional": true,
@@ -4362,7 +4419,7 @@
4362
4419
  "immutable": true,
4363
4420
  "locationInModule": {
4364
4421
  "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4365
- "line": 39
4422
+ "line": 56
4366
4423
  },
4367
4424
  "name": "latencyOutlierAlgorithm",
4368
4425
  "optional": true,
@@ -4380,7 +4437,7 @@
4380
4437
  "immutable": true,
4381
4438
  "locationInModule": {
4382
4439
  "filename": "src/basic_observability/props/ApplicationLoadBalancerDetectionProps.ts",
4383
- "line": 59
4440
+ "line": 76
4384
4441
  },
4385
4442
  "name": "latencyOutlierThreshold",
4386
4443
  "optional": true,
@@ -8017,7 +8074,7 @@
8017
8074
  },
8018
8075
  "locationInModule": {
8019
8076
  "filename": "src/services/IService.ts",
8020
- "line": 98
8077
+ "line": 105
8021
8078
  },
8022
8079
  "name": "addOperation",
8023
8080
  "parameters": [
@@ -8078,7 +8135,7 @@
8078
8135
  "immutable": true,
8079
8136
  "locationInModule": {
8080
8137
  "filename": "src/services/IService.ts",
8081
- "line": 71
8138
+ "line": 78
8082
8139
  },
8083
8140
  "name": "defaultAvailabilityMetricDetails",
8084
8141
  "type": {
@@ -8094,7 +8151,7 @@
8094
8151
  "immutable": true,
8095
8152
  "locationInModule": {
8096
8153
  "filename": "src/services/IService.ts",
8097
- "line": 78
8154
+ "line": 85
8098
8155
  },
8099
8156
  "name": "defaultLatencyMetricDetails",
8100
8157
  "type": {
@@ -8182,7 +8239,7 @@
8182
8239
  "immutable": true,
8183
8240
  "locationInModule": {
8184
8241
  "filename": "src/services/IService.ts",
8185
- "line": 64
8242
+ "line": 71
8186
8243
  },
8187
8244
  "name": "canaryTestProps",
8188
8245
  "optional": true,
@@ -8200,7 +8257,7 @@
8200
8257
  "immutable": true,
8201
8258
  "locationInModule": {
8202
8259
  "filename": "src/services/IService.ts",
8203
- "line": 86
8260
+ "line": 93
8204
8261
  },
8205
8262
  "name": "defaultContributorInsightRuleDetails",
8206
8263
  "optional": true,
@@ -8236,13 +8293,36 @@
8236
8293
  "immutable": true,
8237
8294
  "locationInModule": {
8238
8295
  "filename": "src/services/IService.ts",
8239
- "line": 93
8296
+ "line": 100
8240
8297
  },
8241
8298
  "name": "minimumUnhealthyTargets",
8242
8299
  "optional": true,
8243
8300
  "type": {
8244
8301
  "fqn": "@cdklabs/multi-az-observability.MinimumUnhealthyTargets"
8245
8302
  }
8303
+ },
8304
+ {
8305
+ "abstract": true,
8306
+ "docs": {
8307
+ "default": "Anomalous and mitigated host metrics will not be included on dashboards",
8308
+ "stability": "experimental",
8309
+ "summary": "The target groups registered with the load balancer."
8310
+ },
8311
+ "immutable": true,
8312
+ "locationInModule": {
8313
+ "filename": "src/services/IService.ts",
8314
+ "line": 61
8315
+ },
8316
+ "name": "targetGroups",
8317
+ "optional": true,
8318
+ "type": {
8319
+ "collection": {
8320
+ "elementtype": {
8321
+ "fqn": "aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup"
8322
+ },
8323
+ "kind": "array"
8324
+ }
8325
+ }
8246
8326
  }
8247
8327
  ],
8248
8328
  "symbolId": "src/services/IService:IService"
@@ -10793,7 +10873,7 @@
10793
10873
  },
10794
10874
  "locationInModule": {
10795
10875
  "filename": "src/services/Service.ts",
10796
- "line": 97
10876
+ "line": 104
10797
10877
  },
10798
10878
  "parameters": [
10799
10879
  {
@@ -10820,7 +10900,7 @@
10820
10900
  },
10821
10901
  "locationInModule": {
10822
10902
  "filename": "src/services/Service.ts",
10823
- "line": 118
10903
+ "line": 125
10824
10904
  },
10825
10905
  "name": "addOperation",
10826
10906
  "overrides": "@cdklabs/multi-az-observability.IService",
@@ -10881,7 +10961,7 @@
10881
10961
  "immutable": true,
10882
10962
  "locationInModule": {
10883
10963
  "filename": "src/services/Service.ts",
10884
- "line": 73
10964
+ "line": 80
10885
10965
  },
10886
10966
  "name": "defaultAvailabilityMetricDetails",
10887
10967
  "overrides": "@cdklabs/multi-az-observability.IService",
@@ -10897,7 +10977,7 @@
10897
10977
  "immutable": true,
10898
10978
  "locationInModule": {
10899
10979
  "filename": "src/services/Service.ts",
10900
- "line": 80
10980
+ "line": 87
10901
10981
  },
10902
10982
  "name": "defaultLatencyMetricDetails",
10903
10983
  "overrides": "@cdklabs/multi-az-observability.IService",
@@ -10985,7 +11065,7 @@
10985
11065
  "immutable": true,
10986
11066
  "locationInModule": {
10987
11067
  "filename": "src/services/Service.ts",
10988
- "line": 66
11068
+ "line": 73
10989
11069
  },
10990
11070
  "name": "canaryTestProps",
10991
11071
  "optional": true,
@@ -11003,7 +11083,7 @@
11003
11083
  "immutable": true,
11004
11084
  "locationInModule": {
11005
11085
  "filename": "src/services/Service.ts",
11006
- "line": 88
11086
+ "line": 95
11007
11087
  },
11008
11088
  "name": "defaultContributorInsightRuleDetails",
11009
11089
  "optional": true,
@@ -11039,7 +11119,7 @@
11039
11119
  "immutable": true,
11040
11120
  "locationInModule": {
11041
11121
  "filename": "src/services/Service.ts",
11042
- "line": 95
11122
+ "line": 102
11043
11123
  },
11044
11124
  "name": "minimumUnhealthyTargets",
11045
11125
  "optional": true,
@@ -11047,6 +11127,29 @@
11047
11127
  "type": {
11048
11128
  "fqn": "@cdklabs/multi-az-observability.MinimumUnhealthyTargets"
11049
11129
  }
11130
+ },
11131
+ {
11132
+ "docs": {
11133
+ "default": "Anomalous and mitigated host metrics will not be included on dashboards",
11134
+ "stability": "experimental",
11135
+ "summary": "The target groups registered with the load balancer."
11136
+ },
11137
+ "immutable": true,
11138
+ "locationInModule": {
11139
+ "filename": "src/services/Service.ts",
11140
+ "line": 63
11141
+ },
11142
+ "name": "targetGroups",
11143
+ "optional": true,
11144
+ "overrides": "@cdklabs/multi-az-observability.IService",
11145
+ "type": {
11146
+ "collection": {
11147
+ "elementtype": {
11148
+ "fqn": "aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup"
11149
+ },
11150
+ "kind": "array"
11151
+ }
11152
+ }
11050
11153
  }
11051
11154
  ],
11052
11155
  "symbolId": "src/services/Service:Service"
@@ -11754,7 +11857,7 @@
11754
11857
  "immutable": true,
11755
11858
  "locationInModule": {
11756
11859
  "filename": "src/services/props/ServiceProps.ts",
11757
- "line": 66
11860
+ "line": 73
11758
11861
  },
11759
11862
  "name": "defaultAvailabilityMetricDetails",
11760
11863
  "type": {
@@ -11770,7 +11873,7 @@
11770
11873
  "immutable": true,
11771
11874
  "locationInModule": {
11772
11875
  "filename": "src/services/props/ServiceProps.ts",
11773
- "line": 73
11876
+ "line": 80
11774
11877
  },
11775
11878
  "name": "defaultLatencyMetricDetails",
11776
11879
  "type": {
@@ -11837,7 +11940,7 @@
11837
11940
  "immutable": true,
11838
11941
  "locationInModule": {
11839
11942
  "filename": "src/services/props/ServiceProps.ts",
11840
- "line": 59
11943
+ "line": 66
11841
11944
  },
11842
11945
  "name": "canaryTestProps",
11843
11946
  "optional": true,
@@ -11855,7 +11958,7 @@
11855
11958
  "immutable": true,
11856
11959
  "locationInModule": {
11857
11960
  "filename": "src/services/props/ServiceProps.ts",
11858
- "line": 82
11961
+ "line": 89
11859
11962
  },
11860
11963
  "name": "defaultContributorInsightRuleDetails",
11861
11964
  "optional": true,
@@ -11891,18 +11994,41 @@
11891
11994
  "immutable": true,
11892
11995
  "locationInModule": {
11893
11996
  "filename": "src/services/props/ServiceProps.ts",
11894
- "line": 89
11997
+ "line": 96
11895
11998
  },
11896
11999
  "name": "minimumUnhealthyTargets",
11897
12000
  "optional": true,
11898
12001
  "type": {
11899
12002
  "fqn": "@cdklabs/multi-az-observability.MinimumUnhealthyTargets"
11900
12003
  }
12004
+ },
12005
+ {
12006
+ "abstract": true,
12007
+ "docs": {
12008
+ "default": "Anomalous and mitigated host metrics will not be included on dashboards",
12009
+ "stability": "experimental",
12010
+ "summary": "The target groups registered with the load balancer."
12011
+ },
12012
+ "immutable": true,
12013
+ "locationInModule": {
12014
+ "filename": "src/services/props/ServiceProps.ts",
12015
+ "line": 56
12016
+ },
12017
+ "name": "targetGroups",
12018
+ "optional": true,
12019
+ "type": {
12020
+ "collection": {
12021
+ "elementtype": {
12022
+ "fqn": "aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup"
12023
+ },
12024
+ "kind": "array"
12025
+ }
12026
+ }
11901
12027
  }
11902
12028
  ],
11903
12029
  "symbolId": "src/services/props/ServiceProps:ServiceProps"
11904
12030
  }
11905
12031
  },
11906
- "version": "0.0.1-alpha.55",
11907
- "fingerprint": "v24lWVtV7tUG7q21WcgBxH1m0fEvanPBprHV5LJ0mUc="
12032
+ "version": "0.0.1-alpha.56",
12033
+ "fingerprint": "0tACJj/KMSRwxnFyP3m+1412/lIJ3GdH6/eX1IXKopc="
11908
12034
  }
package/API.md CHANGED
@@ -801,6 +801,52 @@ The timeout for each individual HTTP request.
801
801
 
802
802
  ---
803
803
 
804
+ ### AlbTargetGroupMap <a name="AlbTargetGroupMap" id="@cdklabs/multi-az-observability.AlbTargetGroupMap"></a>
805
+
806
+ An object to map an ALB to its target groups.
807
+
808
+ #### Initializer <a name="Initializer" id="@cdklabs/multi-az-observability.AlbTargetGroupMap.Initializer"></a>
809
+
810
+ ```typescript
811
+ import { AlbTargetGroupMap } from '@cdklabs/multi-az-observability'
812
+
813
+ const albTargetGroupMap: AlbTargetGroupMap = { ... }
814
+ ```
815
+
816
+ #### Properties <a name="Properties" id="Properties"></a>
817
+
818
+ | **Name** | **Type** | **Description** |
819
+ | --- | --- | --- |
820
+ | <code><a href="#@cdklabs/multi-az-observability.AlbTargetGroupMap.property.applicationLoadBalancer">applicationLoadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer</code> | The application load balancer. |
821
+ | <code><a href="#@cdklabs/multi-az-observability.AlbTargetGroupMap.property.targetGroups">targetGroups</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup[]</code> | The target groups associated with the ALB. |
822
+
823
+ ---
824
+
825
+ ##### `applicationLoadBalancer`<sup>Required</sup> <a name="applicationLoadBalancer" id="@cdklabs/multi-az-observability.AlbTargetGroupMap.property.applicationLoadBalancer"></a>
826
+
827
+ ```typescript
828
+ public readonly applicationLoadBalancer: IApplicationLoadBalancer;
829
+ ```
830
+
831
+ - *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer
832
+
833
+ The application load balancer.
834
+
835
+ ---
836
+
837
+ ##### `targetGroups`<sup>Optional</sup> <a name="targetGroups" id="@cdklabs/multi-az-observability.AlbTargetGroupMap.property.targetGroups"></a>
838
+
839
+ ```typescript
840
+ public readonly targetGroups: ITargetGroup[];
841
+ ```
842
+
843
+ - *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup[]
844
+ - *Default:* No target groups are associated and will not display anomalous hosts or mitigated hosts on the dashboard
845
+
846
+ The target groups associated with the ALB.
847
+
848
+ ---
849
+
804
850
  ### ApplicationLoadBalancerDetectionProps <a name="ApplicationLoadBalancerDetectionProps" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps"></a>
805
851
 
806
852
  The properties for performing zonal impact detection with ALB(s).
@@ -817,7 +863,7 @@ const applicationLoadBalancerDetectionProps: ApplicationLoadBalancerDetectionPro
817
863
 
818
864
  | **Name** | **Type** | **Description** |
819
865
  | --- | --- | --- |
820
- | <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. |
866
+ | <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.albTargetGroupMap">albTargetGroupMap</a></code> | <code><a href="#@cdklabs/multi-az-observability.AlbTargetGroupMap">AlbTargetGroupMap</a>[]</code> | Map of target groups per ALB to collect metrics from. |
821
867
  | <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. |
822
868
  | <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". |
823
869
  | <code><a href="#@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.latencyThreshold">latencyThreshold</a></code> | <code>aws-cdk-lib.Duration</code> | The threshold in milliseconds for ALB targets whose responses are slower than this value at the specified percentile statistic. |
@@ -828,15 +874,15 @@ const applicationLoadBalancerDetectionProps: ApplicationLoadBalancerDetectionPro
828
874
 
829
875
  ---
830
876
 
831
- ##### `applicationLoadBalancers`<sup>Required</sup> <a name="applicationLoadBalancers" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.applicationLoadBalancers"></a>
877
+ ##### `albTargetGroupMap`<sup>Required</sup> <a name="albTargetGroupMap" id="@cdklabs/multi-az-observability.ApplicationLoadBalancerDetectionProps.property.albTargetGroupMap"></a>
832
878
 
833
879
  ```typescript
834
- public readonly applicationLoadBalancers: IApplicationLoadBalancer[];
880
+ public readonly albTargetGroupMap: AlbTargetGroupMap[];
835
881
  ```
836
882
 
837
- - *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer[]
883
+ - *Type:* <a href="#@cdklabs/multi-az-observability.AlbTargetGroupMap">AlbTargetGroupMap</a>[]
838
884
 
839
- The application load balancers to collect metrics from.
885
+ Map of target groups per ALB to collect metrics from.
840
886
 
841
887
  ---
842
888
 
@@ -3294,6 +3340,7 @@ const serviceProps: ServiceProps = { ... }
3294
3340
  | <code><a href="#@cdklabs/multi-az-observability.ServiceProps.property.defaultContributorInsightRuleDetails">defaultContributorInsightRuleDetails</a></code> | <code><a href="#@cdklabs/multi-az-observability.IContributorInsightRuleDetails">IContributorInsightRuleDetails</a></code> | The default settings that are used for contributor insight rules. |
3295
3341
  | <code><a href="#@cdklabs/multi-az-observability.ServiceProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ILoadBalancerV2</code> | The load balancer this service sits behind. |
3296
3342
  | <code><a href="#@cdklabs/multi-az-observability.ServiceProps.property.minimumUnhealthyTargets">minimumUnhealthyTargets</a></code> | <code><a href="#@cdklabs/multi-az-observability.MinimumUnhealthyTargets">MinimumUnhealthyTargets</a></code> | The minimum number of unhealthy targets for an AZ to be considered unhealthy. |
3343
+ | <code><a href="#@cdklabs/multi-az-observability.ServiceProps.property.targetGroups">targetGroups</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup[]</code> | The target groups registered with the load balancer. |
3297
3344
 
3298
3345
  ---
3299
3346
 
@@ -3439,6 +3486,19 @@ The minimum number of unhealthy targets for an AZ to be considered unhealthy.
3439
3486
 
3440
3487
  ---
3441
3488
 
3489
+ ##### `targetGroups`<sup>Optional</sup> <a name="targetGroups" id="@cdklabs/multi-az-observability.ServiceProps.property.targetGroups"></a>
3490
+
3491
+ ```typescript
3492
+ public readonly targetGroups: ITargetGroup[];
3493
+ ```
3494
+
3495
+ - *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup[]
3496
+ - *Default:* Anomalous and mitigated host metrics will not be included on dashboards
3497
+
3498
+ The target groups registered with the load balancer.
3499
+
3500
+ ---
3501
+
3442
3502
  ## Classes <a name="Classes" id="Classes"></a>
3443
3503
 
3444
3504
  ### CanaryMetrics <a name="CanaryMetrics" id="@cdklabs/multi-az-observability.CanaryMetrics"></a>
@@ -4983,6 +5043,7 @@ Adds an operation to this service and sets the operation's service property.
4983
5043
  | <code><a href="#@cdklabs/multi-az-observability.Service.property.defaultContributorInsightRuleDetails">defaultContributorInsightRuleDetails</a></code> | <code><a href="#@cdklabs/multi-az-observability.IContributorInsightRuleDetails">IContributorInsightRuleDetails</a></code> | The default settings that are used for contributor insight rules. |
4984
5044
  | <code><a href="#@cdklabs/multi-az-observability.Service.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ILoadBalancerV2</code> | The load balancer this service sits behind. |
4985
5045
  | <code><a href="#@cdklabs/multi-az-observability.Service.property.minimumUnhealthyTargets">minimumUnhealthyTargets</a></code> | <code><a href="#@cdklabs/multi-az-observability.MinimumUnhealthyTargets">MinimumUnhealthyTargets</a></code> | The minimum number of unhealthy targets to consider an AZ impaired. |
5046
+ | <code><a href="#@cdklabs/multi-az-observability.Service.property.targetGroups">targetGroups</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup[]</code> | The target groups registered with the load balancer. |
4986
5047
 
4987
5048
  ---
4988
5049
 
@@ -5140,6 +5201,19 @@ The minimum number of unhealthy targets to consider an AZ impaired.
5140
5201
 
5141
5202
  ---
5142
5203
 
5204
+ ##### `targetGroups`<sup>Optional</sup> <a name="targetGroups" id="@cdklabs/multi-az-observability.Service.property.targetGroups"></a>
5205
+
5206
+ ```typescript
5207
+ public readonly targetGroups: ITargetGroup[];
5208
+ ```
5209
+
5210
+ - *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup[]
5211
+ - *Default:* Anomalous and mitigated host metrics will not be included on dashboards
5212
+
5213
+ The target groups registered with the load balancer.
5214
+
5215
+ ---
5216
+
5143
5217
 
5144
5218
  ### ServiceAvailabilityMetricDetails <a name="ServiceAvailabilityMetricDetails" id="@cdklabs/multi-az-observability.ServiceAvailabilityMetricDetails"></a>
5145
5219
 
@@ -7939,6 +8013,7 @@ Adds an operation to this service.
7939
8013
  | <code><a href="#@cdklabs/multi-az-observability.IService.property.defaultContributorInsightRuleDetails">defaultContributorInsightRuleDetails</a></code> | <code><a href="#@cdklabs/multi-az-observability.IContributorInsightRuleDetails">IContributorInsightRuleDetails</a></code> | The default settings that are used for contributor insight rules. |
7940
8014
  | <code><a href="#@cdklabs/multi-az-observability.IService.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ILoadBalancerV2</code> | The load balancer this service sits behind. |
7941
8015
  | <code><a href="#@cdklabs/multi-az-observability.IService.property.minimumUnhealthyTargets">minimumUnhealthyTargets</a></code> | <code><a href="#@cdklabs/multi-az-observability.MinimumUnhealthyTargets">MinimumUnhealthyTargets</a></code> | The minimum number of unhealthy targets to consider an AZ impaired. |
8016
+ | <code><a href="#@cdklabs/multi-az-observability.IService.property.targetGroups">targetGroups</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup[]</code> | The target groups registered with the load balancer. |
7942
8017
 
7943
8018
  ---
7944
8019
 
@@ -8096,6 +8171,19 @@ The minimum number of unhealthy targets to consider an AZ impaired.
8096
8171
 
8097
8172
  ---
8098
8173
 
8174
+ ##### `targetGroups`<sup>Optional</sup> <a name="targetGroups" id="@cdklabs/multi-az-observability.IService.property.targetGroups"></a>
8175
+
8176
+ ```typescript
8177
+ public readonly targetGroups: ITargetGroup[];
8178
+ ```
8179
+
8180
+ - *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ITargetGroup[]
8181
+ - *Default:* Anomalous and mitigated host metrics will not be included on dashboards
8182
+
8183
+ The target groups registered with the load balancer.
8184
+
8185
+ ---
8186
+
8099
8187
  ### IServiceAlarmsAndRules <a name="IServiceAlarmsAndRules" id="@cdklabs/multi-az-observability.IServiceAlarmsAndRules"></a>
8100
8188
 
8101
8189
  - *Implemented By:* <a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules">IServiceAlarmsAndRules</a>
@@ -195,5 +195,5 @@ class AvailabilityZoneMapper extends constructs_1.Construct {
195
195
  }
196
196
  exports.AvailabilityZoneMapper = AvailabilityZoneMapper;
197
197
  _a = JSII_RTTI_SYMBOL_1;
198
- AvailabilityZoneMapper[_a] = { fqn: "@cdklabs/multi-az-observability.AvailabilityZoneMapper", version: "0.0.1-alpha.55" };
198
+ AvailabilityZoneMapper[_a] = { fqn: "@cdklabs/multi-az-observability.AvailabilityZoneMapper", version: "0.0.1-alpha.56" };
199
199
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXZhaWxhYmlsaXR5Wm9uZU1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hem1hcHBlci9BdmFpbGFiaWxpdHlab25lTWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0Qyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZDQU1xQjtBQUNyQixpREFRNkI7QUFDN0IsdURBTWdDO0FBQ2hDLG1EQUEwRTtBQUMxRSwyQ0FBdUM7QUFHdkMsOERBQTJEO0FBRTNEOztHQUVHO0FBQ0gsTUFBYSxzQkFDWCxTQUFRLHNCQUFTO0lBbUJqQixZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFtQztRQUVuQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCOzs7Ozs7Ozs7O1VBVUU7UUFFRixJQUFJLGlCQUFpQixHQUFtQixJQUFJLHVCQUFhLENBQ3ZELElBQUksRUFDSixtQkFBbUIsRUFDbkI7WUFDRSxJQUFJLEVBQUUsWUFBWTtZQUNsQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixvQ0FBb0M7cUJBQ3JDO29CQUNELE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQzthQUNIO1NBQ0YsQ0FDRixDQUFDO1FBRUYsSUFBSSxnQkFBZ0IsR0FBbUIsSUFBSSx1QkFBYSxDQUN0RCxJQUFJLEVBQ0osa0JBQWtCLEVBQ2xCO1lBQ0UsSUFBSSxFQUFFLFlBQVk7WUFDbEIsVUFBVSxFQUFFO2dCQUNWLElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7b0JBQzFDLE1BQU0sRUFB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WSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCw2QkFBNkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDRDQUE0QyxDQUFDLE1BQWM7UUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0Q0FBNEM7UUFDMUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzlELENBQUM7O0FBMU9ILHdEQTJPQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge1xuICBBd3MsXG4gIEN1c3RvbVJlc291cmNlLFxuICBEdXJhdGlvbixcbiAgUmVmZXJlbmNlLFxuICBSZW1vdmFsUG9saWN5LFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBFZmZlY3QsXG4gIElNYW5hZ2VkUG9saWN5LFxuICBJUm9sZSxcbiAgTWFuYWdlZFBvbGljeSxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBSb2xlLFxuICBTZXJ2aWNlUHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7XG4gIEFyY2hpdGVjdHVyZSxcbiAgQ29kZSxcbiAgRnVuY3Rpb24sXG4gIElGdW5jdGlvbixcbiAgVHJhY2luZyxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBJTG9nR3JvdXAsIExvZ0dyb3VwLCBSZXRlbnRpb25EYXlzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlciB9IGZyb20gJy4vSUF2YWlsYWJpbGl0eVpvbmVNYXBwZXInO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlclByb3BzIH0gZnJvbSAnLi9wcm9wcy9BdmFpbGFiaWxpdHlab25lTWFwcGVyUHJvcHMnO1xuaW1wb3J0IHsgTWV0cmljc0hlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9NZXRyaWNzSGVscGVyJztcblxuLyoqXG4gKiBBIGNvbnN0cnVjdCB0aGF0IGFsbG93cyB5b3UgdG8gbWFwIEFaIG5hbWVzIHRvIGlkcyBhbmQgYmFja1xuICovXG5leHBvcnQgY2xhc3MgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlclxuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElBdmFpbGFiaWxpdHlab25lTWFwcGVyIHtcbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIG1hcHBpbmdcbiAgICovXG4gIGZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2cgZ3JvdXAgZm9yIHRoZSBmdW5jdGlvbidzIGxvZ3NcbiAgICovXG4gIGxvZ0dyb3VwOiBJTG9nR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gcmVzb3VyY2UgdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCB0byB1c2VcbiAgICogRm46OkdldEF0dCBmdW5jdGlvbnMgb24gdG8gcmV0cmlldmUgYXZhaWxhYmlsaXR5IHpvbmVcbiAgICogbmFtZXMgYW5kIGlkc1xuICAgKi9cbiAgbWFwcGVyOiBDdXN0b21SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM/OiBBdmFpbGFiaWxpdHlab25lTWFwcGVyUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvKlxuICAgIGxldCBjdXJyZW50Tm9kZTogQ29uc3RydWN0IHwgdW5kZWZpbmVkID0gdGhpcy5ub2RlLnNjb3BlO1xuXG4gICAgd2hpbGUgKGN1cnJlbnROb2RlICE9PSB1bmRlZmluZWQgJiYgIShjdXJyZW50Tm9kZSBpbnN0YW5jZW9mIFN0YWNrKSkge1xuICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5ub2RlLnNjb3BlO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50Tm9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAoY3VycmVudE5vZGUgYXMgU3RhY2spLmFkZFRyYW5zZm9ybSgnQVdTOjpMYW5ndWFnZUV4dGVuc2lvbnMnKTtcbiAgICB9XG4gICAgKi9cblxuICAgIGxldCB4cmF5TWFuYWdlZFBvbGljeTogSU1hbmFnZWRQb2xpY3kgPSBuZXcgTWFuYWdlZFBvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICAnWHJheU1hbmFnZWRQb2xpY3knLFxuICAgICAge1xuICAgICAgICBwYXRoOiAnL2F6bWFwcGVyLycsXG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgJ3hyYXk6UHV0VHJhY2VTZWdtZW50cycsXG4gICAgICAgICAgICAgICd4cmF5OlB1dFRlbGVtZXRyeVJlY29yZHMnLFxuICAgICAgICAgICAgICAneHJheTpHZXRTYW1wbGluZ1J1bGVzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdUYXJnZXRzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdTdGF0aXN0aWNTdW1tYXJpZXMnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGxldCBlYzJNYW5hZ2VkUG9saWN5OiBJTWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgICdFQzJNYW5hZ2VkUG9saWN5JyxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJy9hem1hcHBlci8nLFxuICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBhY3Rpb25zOiBbJ2VjMjpEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzJ10sXG4gICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBsZXQgZXhlY3V0aW9uUm9sZTogSVJvbGUgPSBuZXcgUm9sZSh0aGlzLCAnZXhlY3V0aW9uUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBwYXRoOiAnL2F6bWFwcGVyLycsXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFt4cmF5TWFuYWdlZFBvbGljeSwgZWMyTWFuYWdlZFBvbGljeV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBmaWxlOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8uLi9hem1hcHBlci9zcmMvaW5kZXgucHknKSxcbiAgICAgICd1dGYtOCcsXG4gICAgKTtcblxuICAgIHRoaXMuZnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgJ0F2YWlsYWJpbGl0eVpvbmVNYXBwZXJGdW5jdGlvbicsIHtcbiAgICAgIHJ1bnRpbWU6IE1ldHJpY3NIZWxwZXIuUHl0aG9uUnVudGltZSxcbiAgICAgIGNvZGU6IENvZGUuZnJvbUlubGluZShmaWxlKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIHJvbGU6IGV4ZWN1dGlvblJvbGUsXG4gICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICB0cmFjaW5nOiBUcmFjaW5nLkFDVElWRSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMjApLFxuICAgICAgbWVtb3J5U2l6ZTogNTEyLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgUkVHSU9OOiBBd3MuUkVHSU9OLFxuICAgICAgICBQQVJUSVRJT046IEF3cy5QQVJUSVRJT05cbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvZ0dyb3VwID0gbmV3IExvZ0dyb3VwKHRoaXMsICdMb2dHcm91cCcsIHtcbiAgICAgIGxvZ0dyb3VwTmFtZTogYC9hd3MvbGFtYmRhLyR7dGhpcy5mdW5jdGlvbi5mdW5jdGlvbk5hbWV9YCxcbiAgICAgIHJldGVudGlvbjogUmV0ZW50aW9uRGF5cy5PTkVfREFZLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIH0pO1xuXG4gICAgbmV3IE1hbmFnZWRQb2xpY3kodGhpcywgJ0Nsb3VkV2F0Y2hNYW5hZ2VkUG9saWN5Jywge1xuICAgICAgcGF0aDogJy9hem1hcHBlci8nLFxuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbJ2Nsb3Vkd2F0Y2g6UHV0TWV0cmljRGF0YSddLFxuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbJ2xvZ3M6Q3JlYXRlTG9nU3RyZWFtJywgJ2xvZ3M6UHV0TG9nRXZlbnRzJ10sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgYXJuOiR7QXdzLlBBUlRJVElPTn06bG9nczoke0F3cy5SRUdJT059OiR7QXdzLkFDQ09VTlRfSUR9OmxvZy1ncm91cDoke3RoaXMubG9nR3JvdXAubG9nR3JvdXBOYW1lfToqYFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICAgIHJvbGVzOiBbZXhlY3V0aW9uUm9sZV0sXG4gICAgfSk7XG5cbiAgICB0aGlzLm1hcHBlciA9IG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCAnQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcicsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogdGhpcy5mdW5jdGlvbi5mdW5jdGlvbkFybixcbiAgICAgIHByb3BlcnRpZXM6XG4gICAgICAgIHByb3BzPy5hdmFpbGFiaWxpdHlab25lTmFtZXMgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8geyBBdmFpbGFiaWxpdHlab25lczogcHJvcHMuYXZhaWxhYmlsaXR5Wm9uZU5hbWVzIH1cbiAgICAgICAgICA6IHt9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEF2YWlsYWJpbGl0eSBab25lIElkIGZvciB0aGUgZ2l2ZW4gQXZhaWxhYmlsaXR5IFpvbmUgTmFtZSBpbiB0aGlzIGFjY291bnRcbiAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmVOYW1lXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBhdmFpbGFiaWxpdHlab25lSWQoYXZhaWxhYmlsaXR5Wm9uZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWFwcGVyLmdldEF0dFN0cmluZyhhdmFpbGFiaWxpdHlab25lTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQXZhaWxhYmlsaXR5IFpvbmUgTmFtZSBmb3IgdGhlIGdpdmVuIEF2YWlsYWJpbGl0eSBab25lIElkIGluIHRoaXMgYWNjb3VudFxuICAgKiBAcGFyYW0gYXZhaWxhYmlsaXR5Wm9uZUlkXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBhdmFpbGFiaWxpdHlab25lTmFtZShhdmFpbGFiaWxpdHlab25lSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWFwcGVyLmdldEF0dFN0cmluZyhhdmFpbGFiaWxpdHlab25lSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHByZWZpeCBmb3IgdGhlIHJlZ2lvbiB1c2VkIHdpdGggQXZhaWxhYmlsaXR5IFpvbmUgSWRzLCBmb3IgZXhhbXBsZVxuICAgKiBpbiB1cy1lYXN0LTEsIHRoaXMgcmV0dXJucyBcInVzZTFcIlxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcmVnaW9uUHJlZml4Rm9yQXZhaWxhYmlsaXR5Wm9uZUlkcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1hcHBlci5nZXRBdHRTdHJpbmcoQXdzLlJFR0lPTik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBmb3IgQXZhaWxhYmlsaXR5IFpvbmUgSWRzIGZvciB0aGUgc3VwcGxpZWQgQXZhaWxhYmlsaXR5IFpvbmUgbmFtZXMsXG4gICAqIHRoZXkgYXJlIHJldHVybmVkIGluIHRoZSBzYW1lIG9yZGVyIHRoZSBuYW1lcyB3ZXJlIHByb3ZpZGVkXG4gICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lTmFtZXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGF2YWlsYWJpbGl0eVpvbmVJZHNBc0FycmF5KGF2YWlsYWJpbGl0eVpvbmVOYW1lczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgbGV0IGlkczogc3RyaW5nW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXZhaWxhYmlsaXR5Wm9uZU5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZHMucHVzaCh0aGlzLmF2YWlsYWJpbGl0eVpvbmVJZChhdmFpbGFiaWxpdHlab25lTmFtZXNbaV0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb21tYSBkZWxpbWl0ZWQgbGlzdCBvZiBBdmFpbGFiaWxpdHkgWm9uZSBJZHMgZm9yIHRoZSBzdXBwbGllZFxuICAgKiBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lcy4gWW91IGNhbiB1c2UgdGhpcyBzdHJpbmcgd2l0aCBGbi5TZWxlY3QoeCwgRm4uU3BsaXQoXCIsXCIsIGF6cykpIHRvXG4gICAqIGdldCBhIHNwZWNpZmljIEF2YWlsYWJpbGl0eSBab25lIElkXG4gICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lTmFtZXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGF2YWlsYWJpbGl0eVpvbmVJZHNBc0NvbW1hRGVsaW1pdGVkTGlzdChcbiAgICBhdmFpbGFiaWxpdHlab25lTmFtZXM6IHN0cmluZ1tdLFxuICApOiBzdHJpbmcge1xuICAgIGxldCBpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGF2YWlsYWJpbGl0eVpvbmVOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWRzLnB1c2godGhpcy5hdmFpbGFiaWxpdHlab25lSWQoYXZhaWxhYmlsaXR5Wm9uZU5hbWVzW2ldKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlkcy5qb2luKCcsJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNvbW1hIGRlbGltaXRlZCBsaXN0IG9mIEF2YWlsYWJpbGl0eSBab25lIElkcyBmb3IgdGhlIHN1cHBsaWVkXG4gICAqIEF2YWlsYWJpbGl0eSBab25lIG5hbWVzLiBZb3UgY2FuIHVzZSB0aGlzIHN0cmluZyB3aXRoIEZuLlNlbGVjdCh4LCBGbi5TcGxpdChcIixcIiwgYXpzKSkgdG9cbiAgICogZ2V0IGEgc3BlY2lmaWMgQXZhaWxhYmlsaXR5IFpvbmUgSWRcbiAgICogQHJldHVybnNcbiAgICovXG4gIGFsbEF2YWlsYWJpbGl0eVpvbmVJZHNBc0NvbW1hRGVsaW1pdGVkTGlzdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1hcHBlci5nZXRBdHRTdHJpbmcoJ0FsbEF2YWlsYWJpbGl0eVpvbmVJZHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRoYXQgY2FuIGJlIGNhc3QgdG8gYSBzdHJpbmcgYXJyYXkgd2l0aCBhbGwgb2YgdGhlXG4gICAqIEF2YWlsYWJpbGl0eSBab25lIElkc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYWxsQXZhaWxhYmlsaXR5Wm9uZUlkc0FzQXJyYXkoKTogUmVmZXJlbmNlIHtcbiAgICByZXR1cm4gdGhpcy5tYXBwZXIuZ2V0QXR0KCdBbGxBdmFpbGFiaWxpdHlab25lSWRzQXJyYXknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIGxldHRlciBsaWtlIFwiZlwiIG9yIFwiYVwiLCByZXR1cm5zIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBJZCBmb3IgdGhhdFxuICAgKiBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lIGluIHRoaXMgYWNjb3VudFxuICAgKiBAcGFyYW0gbGV0dGVyXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBhdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihsZXR0ZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWFwcGVyLmdldEF0dFN0cmluZyhsZXR0ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIG9mIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lcyBpbiB0aGlzIFJlZ2lvbiBhcyBhIGNvbW1hIGRlbGltaXRlZFxuICAgKiBsaXN0LiBZb3UgY2FuIHVzZSB0aGlzIHN0cmluZyB3aXRoIEZuLlNlbGVjdCh4LCBGbi5TcGxpdChcIixcIiwgYXpzKSkgdG9cbiAgICogZ2V0IGEgc3BlY2lmaWMgQXZhaWxhYmlsaXR5IFpvbmUgTmFtZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYWxsQXZhaWxhYmlsaXR5Wm9uZU5hbWVzQXNDb21tYURlbGltaXRlZExpc3QoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tYXBwZXIuZ2V0QXR0U3RyaW5nKCdBbGxBdmFpbGFiaWxpdHlab25lTmFtZXMnKTtcbiAgfVxufVxuIl19
@@ -31,7 +31,7 @@ class BasicServiceDashboard extends constructs_1.Construct {
31
31
  background: aws_cloudwatch_1.TextWidgetBackground.TRANSPARENT,
32
32
  height: 1,
33
33
  width: 24
34
- }), ...ApplicationLoadBalancerMetrics_1.ApplicationLoadBalancerMetrics.generateLoadBalancerWidgets(props.albs.applicationLoadBalancers, props.azMapper, props.period, props.albs.latencyStatistic, props.albs.latencyThreshold, props.albs.faultCountPercentThreshold));
34
+ }), ...ApplicationLoadBalancerMetrics_1.ApplicationLoadBalancerMetrics.generateLoadBalancerWidgets(new Map(props.albs.albTargetGroupMap.map(entry => [entry.applicationLoadBalancer, entry.targetGroups ? entry.targetGroups : []])), props.azMapper, props.period, props.albs.latencyStatistic, props.albs.latencyThreshold, props.albs.faultCountPercentThreshold));
35
35
  }
36
36
  if (props.natgws) {
37
37
  this.dashboard.addWidgets(...NatGatewayMetrics_1.NatGatewayMetrics.generateNatGatewayWidgets(props.natgws.natGateways, props.azMapper, props.period, props.natgws.packetLossPercentThreshold ? props.natgws.packetLossPercentThreshold : 0.01));
@@ -39,4 +39,4 @@ class BasicServiceDashboard extends constructs_1.Construct {
39
39
  }
40
40
  }
41
41
  exports.BasicServiceDashboard = BasicServiceDashboard;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljX29ic2VydmFiaWxpdHkvQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQWtDO0FBQ2xDLCtEQU1vQztBQUNwQywyQ0FBdUM7QUFFdkMsOEZBQTJGO0FBQzNGLG9FQUFpRTtBQUVqRSxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBSWxELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLDBCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzVELGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLGtCQUFrQixpQkFBRyxDQUFDLE1BQU0sRUFBRTtZQUMvRSxlQUFlLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDL0IsY0FBYyxFQUFFLCtCQUFjLENBQUMsSUFBSTtTQUNwQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLGtDQUFpQixDQUFDO1lBQzlDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQztZQUMvRCxNQUFNLEVBQUUsQ0FBQztZQUNULEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLHFCQUFxQjtTQUM3QixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBRXpCLElBQUksMkJBQVUsQ0FBQztnQkFDYixRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxVQUFVLEVBQUUscUNBQW9CLENBQUMsV0FBVztnQkFDNUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDLEVBQ0YsR0FBRywrREFBOEIsQ0FBQywyQkFBMkIsQ0FDekQsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFDbkMsS0FBSyxDQUFDLFFBQVEsRUFDZCxLQUFLLENBQUMsTUFBTSxFQUNaLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQ3RDLENBQ0YsQ0FBQTtRQUNILENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FDdkIsR0FBRyxxQ0FBaUIsQ0FBQyx5QkFBeUIsQ0FDNUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQ3hCLEtBQUssQ0FBQyxRQUFRLEVBQ2QsS0FBSyxDQUFDLE1BQU0sRUFDWixLQUFLLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3pGLENBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF2REQsc0RBdURDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgQXdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgQWxhcm1TdGF0dXNXaWRnZXQsXG4gIERhc2hib2FyZCxcbiAgUGVyaW9kT3ZlcnJpZGUsXG4gIFRleHRXaWRnZXQsXG4gIFRleHRXaWRnZXRCYWNrZ3JvdW5kLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJhc2ljU2VydmljZURhc2hib2FyZFByb3BzIH0gZnJvbSAnLi9wcm9wcy9CYXNpY1NlcnZpY2VEYXNoYm9hcmRQcm9wcyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlck1ldHJpY3MgfSBmcm9tICcuLi9tZXRyaWNzL0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcyc7XG5pbXBvcnQgeyBOYXRHYXRld2F5TWV0cmljcyB9IGZyb20gJy4uL21ldHJpY3MvTmF0R2F0ZXdheU1ldHJpY3MnO1xuXG5leHBvcnQgY2xhc3MgQmFzaWNTZXJ2aWNlRGFzaGJvYXJkIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBkYXNoYm9hcmQ6IERhc2hib2FyZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzaWNTZXJ2aWNlRGFzaGJvYXJkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKCEocHJvcHMuYWxicykgJiYgIShwcm9wcy5uYXRnd3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgbXVzdCBkZWZpbmUgZWl0aGVyIEFMQnMgb3IgTkFUIEdhdGV3YXlzIGZvciB0aGlzIHNlcnZpY2UgaW4gb3JkZXIgdG8gY3JlYXRlIGEgZGFzaGJvYXJkLlwiKTtcbiAgICB9XG5cbiAgICB0aGlzLmRhc2hib2FyZCA9IG5ldyBEYXNoYm9hcmQodGhpcywgJ0Jhc2ljU2VydmljZURhc2hib2FyZCcsIHtcbiAgICAgIGRhc2hib2FyZE5hbWU6IGAke3Byb3BzLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCl9LXBlci1hei1oZWFsdGgtJHtBd3MuUkVHSU9OfWAsXG4gICAgICBkZWZhdWx0SW50ZXJ2YWw6IHByb3BzLmludGVydmFsLFxuICAgICAgcGVyaW9kT3ZlcnJpZGU6IFBlcmlvZE92ZXJyaWRlLkFVVE9cbiAgICB9KTtcblxuICAgIHRoaXMuZGFzaGJvYXJkLmFkZFdpZGdldHMobmV3IEFsYXJtU3RhdHVzV2lkZ2V0KHtcbiAgICAgIGFsYXJtczogT2JqZWN0LnZhbHVlcyhwcm9wcy56b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zKSxcbiAgICAgIGhlaWdodDogMixcbiAgICAgIHdpZHRoOiAyNCxcbiAgICAgIHRpdGxlOiAnWm9uYWwgSW1wYWN0IEFsYXJtcycsXG4gICAgfSkpO1xuXG4gICAgaWYgKHByb3BzLmFsYnMpIHtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmFkZFdpZGdldHMoXG5cbiAgICAgIG5ldyBUZXh0V2lkZ2V0KHtcbiAgICAgICAgbWFya2Rvd246IFwiIyMgKipMb2FkIEJhbGFuY2VyIE1ldHJpY3MqKlwiLFxuICAgICAgICBiYWNrZ3JvdW5kOiBUZXh0V2lkZ2V0QmFja2dyb3VuZC5UUkFOU1BBUkVOVCxcbiAgICAgICAgaGVpZ2h0OiAxLFxuICAgICAgICB3aWR0aDogMjRcbiAgICAgIH0pLFxuICAgICAgLi4uQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNzLmdlbmVyYXRlTG9hZEJhbGFuY2VyV2lkZ2V0cyhcbiAgICAgICAgICBwcm9wcy5hbGJzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VycyxcbiAgICAgICAgICBwcm9wcy5hek1hcHBlcixcbiAgICAgICAgICBwcm9wcy5wZXJpb2QsXG4gICAgICAgICAgcHJvcHMuYWxicy5sYXRlbmN5U3RhdGlzdGljLFxuICAgICAgICAgIHByb3BzLmFsYnMubGF0ZW5jeVRocmVzaG9sZCxcbiAgICAgICAgICBwcm9wcy5hbGJzLmZhdWx0Q291bnRQZXJjZW50VGhyZXNob2xkXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAocHJvcHMubmF0Z3dzKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZC5hZGRXaWRnZXRzKFxuICAgICAgICAuLi5OYXRHYXRld2F5TWV0cmljcy5nZW5lcmF0ZU5hdEdhdGV3YXlXaWRnZXRzKFxuICAgICAgICAgIHByb3BzLm5hdGd3cy5uYXRHYXRld2F5cyxcbiAgICAgICAgICBwcm9wcy5hek1hcHBlcixcbiAgICAgICAgICBwcm9wcy5wZXJpb2QsXG4gICAgICAgICAgcHJvcHMubmF0Z3dzLnBhY2tldExvc3NQZXJjZW50VGhyZXNob2xkID8gcHJvcHMubmF0Z3dzLnBhY2tldExvc3NQZXJjZW50VGhyZXNob2xkIDogMC4wMVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljX29ic2VydmFiaWxpdHkvQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQWtDO0FBQ2xDLCtEQU1vQztBQUNwQywyQ0FBdUM7QUFFdkMsOEZBQTJGO0FBQzNGLG9FQUFpRTtBQUVqRSxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBSWxELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLDBCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzVELGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLGtCQUFrQixpQkFBRyxDQUFDLE1BQU0sRUFBRTtZQUMvRSxlQUFlLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDL0IsY0FBYyxFQUFFLCtCQUFjLENBQUMsSUFBSTtTQUNwQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLGtDQUFpQixDQUFDO1lBQzlDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQztZQUMvRCxNQUFNLEVBQUUsQ0FBQztZQUNULEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLHFCQUFxQjtTQUM3QixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBRXpCLElBQUksMkJBQVUsQ0FBQztnQkFDYixRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxVQUFVLEVBQUUscUNBQW9CLENBQUMsV0FBVztnQkFDNUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDLEVBQ0YsR0FBRywrREFBOEIsQ0FBQywyQkFBMkIsQ0FDekQsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ2pJLEtBQUssQ0FBQyxRQUFRLEVBQ2QsS0FBSyxDQUFDLE1BQU0sRUFDWixLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUN0QyxDQUNGLENBQUE7UUFDSCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQ3ZCLEdBQUcscUNBQWlCLENBQUMseUJBQXlCLENBQzVDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUN4QixLQUFLLENBQUMsUUFBUSxFQUNkLEtBQUssQ0FBQyxNQUFNLEVBQ1osS0FBSyxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN6RixDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdkRELHNEQXVEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IEF3cyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIEFsYXJtU3RhdHVzV2lkZ2V0LFxuICBEYXNoYm9hcmQsXG4gIFBlcmlvZE92ZXJyaWRlLFxuICBUZXh0V2lkZ2V0LFxuICBUZXh0V2lkZ2V0QmFja2dyb3VuZCxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBCYXNpY1NlcnZpY2VEYXNoYm9hcmRQcm9wcyB9IGZyb20gJy4vcHJvcHMvQmFzaWNTZXJ2aWNlRGFzaGJvYXJkUHJvcHMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNzIH0gZnJvbSAnLi4vbWV0cmljcy9BcHBsaWNhdGlvbkxvYWRCYWxhbmNlck1ldHJpY3MnO1xuaW1wb3J0IHsgTmF0R2F0ZXdheU1ldHJpY3MgfSBmcm9tICcuLi9tZXRyaWNzL05hdEdhdGV3YXlNZXRyaWNzJztcblxuZXhwb3J0IGNsYXNzIEJhc2ljU2VydmljZURhc2hib2FyZCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgZGFzaGJvYXJkOiBEYXNoYm9hcmQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJhc2ljU2VydmljZURhc2hib2FyZFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmICghKHByb3BzLmFsYnMpICYmICEocHJvcHMubmF0Z3dzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IG11c3QgZGVmaW5lIGVpdGhlciBBTEJzIG9yIE5BVCBHYXRld2F5cyBmb3IgdGhpcyBzZXJ2aWNlIGluIG9yZGVyIHRvIGNyZWF0ZSBhIGRhc2hib2FyZC5cIik7XG4gICAgfVxuXG4gICAgdGhpcy5kYXNoYm9hcmQgPSBuZXcgRGFzaGJvYXJkKHRoaXMsICdCYXNpY1NlcnZpY2VEYXNoYm9hcmQnLCB7XG4gICAgICBkYXNoYm9hcmROYW1lOiBgJHtwcm9wcy5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpfS1wZXItYXotaGVhbHRoLSR7QXdzLlJFR0lPTn1gLFxuICAgICAgZGVmYXVsdEludGVydmFsOiBwcm9wcy5pbnRlcnZhbCxcbiAgICAgIHBlcmlvZE92ZXJyaWRlOiBQZXJpb2RPdmVycmlkZS5BVVRPXG4gICAgfSk7XG5cbiAgICB0aGlzLmRhc2hib2FyZC5hZGRXaWRnZXRzKG5ldyBBbGFybVN0YXR1c1dpZGdldCh7XG4gICAgICBhbGFybXM6IE9iamVjdC52YWx1ZXMocHJvcHMuem9uYWxBZ2dyZWdhdGVJc29sYXRlZEltcGFjdEFsYXJtcyksXG4gICAgICBoZWlnaHQ6IDIsXG4gICAgICB3aWR0aDogMjQsXG4gICAgICB0aXRsZTogJ1pvbmFsIEltcGFjdCBBbGFybXMnLFxuICAgIH0pKTtcblxuICAgIGlmIChwcm9wcy5hbGJzKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZC5hZGRXaWRnZXRzKFxuXG4gICAgICBuZXcgVGV4dFdpZGdldCh7XG4gICAgICAgIG1hcmtkb3duOiBcIiMjICoqTG9hZCBCYWxhbmNlciBNZXRyaWNzKipcIixcbiAgICAgICAgYmFja2dyb3VuZDogVGV4dFdpZGdldEJhY2tncm91bmQuVFJBTlNQQVJFTlQsXG4gICAgICAgIGhlaWdodDogMSxcbiAgICAgICAgd2lkdGg6IDI0XG4gICAgICB9KSxcbiAgICAgIC4uLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcy5nZW5lcmF0ZUxvYWRCYWxhbmNlcldpZGdldHMoXG4gICAgICAgICAgbmV3IE1hcChwcm9wcy5hbGJzLmFsYlRhcmdldEdyb3VwTWFwLm1hcChlbnRyeSA9PiBbZW50cnkuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXIsIGVudHJ5LnRhcmdldEdyb3VwcyA/IGVudHJ5LnRhcmdldEdyb3VwcyA6IFtdXSkpLFxuICAgICAgICAgIHByb3BzLmF6TWFwcGVyLFxuICAgICAgICAgIHByb3BzLnBlcmlvZCxcbiAgICAgICAgICBwcm9wcy5hbGJzLmxhdGVuY3lTdGF0aXN0aWMsXG4gICAgICAgICAgcHJvcHMuYWxicy5sYXRlbmN5VGhyZXNob2xkLFxuICAgICAgICAgIHByb3BzLmFsYnMuZmF1bHRDb3VudFBlcmNlbnRUaHJlc2hvbGRcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5uYXRnd3MpIHtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmFkZFdpZGdldHMoXG4gICAgICAgIC4uLk5hdEdhdGV3YXlNZXRyaWNzLmdlbmVyYXRlTmF0R2F0ZXdheVdpZGdldHMoXG4gICAgICAgICAgcHJvcHMubmF0Z3dzLm5hdEdhdGV3YXlzLFxuICAgICAgICAgIHByb3BzLmF6TWFwcGVyLFxuICAgICAgICAgIHByb3BzLnBlcmlvZCxcbiAgICAgICAgICBwcm9wcy5uYXRnd3MucGFja2V0TG9zc1BlcmNlbnRUaHJlc2hvbGQgPyBwcm9wcy5uYXRnd3MucGFja2V0TG9zc1BlcmNlbnRUaHJlc2hvbGQgOiAwLjAxXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=