@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.
- package/.jsii +158 -32
- package/API.md +93 -5
- package/lib/azmapper/AvailabilityZoneMapper.js +1 -1
- package/lib/basic_observability/BasicServiceDashboard.js +2 -2
- package/lib/basic_observability/BasicServiceMultiAZObservability.js +3 -3
- package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.d.ts +18 -3
- package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.js +1 -1
- package/lib/canaries/src/canary.zip +0 -0
- package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +4 -2
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/metrics/ApplicationLoadBalancerMetrics.d.ts +6 -2
- package/lib/metrics/ApplicationLoadBalancerMetrics.js +219 -2
- package/lib/monitoring/src/monitoring-layer.zip +0 -0
- package/lib/outlier-detection/src/outlier-detection.zip +0 -0
- package/lib/outlier-detection/src/scipy-layer.zip +0 -0
- package/lib/services/CanaryMetrics.js +1 -1
- package/lib/services/CanaryTestAvailabilityMetricsOverride.js +1 -1
- package/lib/services/CanaryTestLatencyMetricsOverride.js +1 -1
- package/lib/services/CanaryTestMetricsOverride.js +1 -1
- package/lib/services/ContributorInsightRuleDetails.js +1 -1
- package/lib/services/IService.d.ts +7 -1
- package/lib/services/IService.js +1 -1
- package/lib/services/InstrumentedServiceMultiAZObservability.js +1 -1
- package/lib/services/Operation.js +1 -1
- package/lib/services/OperationAvailabilityMetricDetails.js +1 -1
- package/lib/services/OperationLatencyMetricDetails.js +1 -1
- package/lib/services/OperationMetricDetails.js +1 -1
- package/lib/services/Service.d.ts +7 -1
- package/lib/services/Service.js +2 -2
- package/lib/services/ServiceAvailabilityMetricDetails.js +1 -1
- package/lib/services/ServiceLatencyMetricDetails.js +1 -1
- package/lib/services/ServiceMetricDetails.js +1 -1
- package/lib/services/props/MetricDimensions.js +1 -1
- package/lib/services/props/ServiceProps.d.ts +7 -1
- package/lib/services/props/ServiceProps.js +1 -1
- 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":
|
|
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": "
|
|
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":
|
|
4315
|
+
"line": 31
|
|
4259
4316
|
},
|
|
4260
|
-
"name": "
|
|
4317
|
+
"name": "albTargetGroupMap",
|
|
4261
4318
|
"type": {
|
|
4262
4319
|
"collection": {
|
|
4263
4320
|
"elementtype": {
|
|
4264
|
-
"fqn": "
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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.
|
|
11907
|
-
"fingerprint": "
|
|
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.
|
|
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
|
-
##### `
|
|
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
|
|
880
|
+
public readonly albTargetGroupMap: AlbTargetGroupMap[];
|
|
835
881
|
```
|
|
836
882
|
|
|
837
|
-
- *Type:*
|
|
883
|
+
- *Type:* <a href="#@cdklabs/multi-az-observability.AlbTargetGroupMap">AlbTargetGroupMap</a>[]
|
|
838
884
|
|
|
839
|
-
|
|
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.
|
|
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.
|
|
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,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljX29ic2VydmFiaWxpdHkvQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQWtDO0FBQ2xDLCtEQU1vQztBQUNwQywyQ0FBdUM7QUFFdkMsOEZBQTJGO0FBQzNGLG9FQUFpRTtBQUVqRSxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBSWxELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLDBCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzVELGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLGtCQUFrQixpQkFBRyxDQUFDLE1BQU0sRUFBRTtZQUMvRSxlQUFlLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDL0IsY0FBYyxFQUFFLCtCQUFjLENBQUMsSUFBSTtTQUNwQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLGtDQUFpQixDQUFDO1lBQzlDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQztZQUMvRCxNQUFNLEVBQUUsQ0FBQztZQUNULEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLHFCQUFxQjtTQUM3QixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBRXpCLElBQUksMkJBQVUsQ0FBQztnQkFDYixRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxVQUFVLEVBQUUscUNBQW9CLENBQUMsV0FBVztnQkFDNUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDLEVBQ0YsR0FBRywrREFBOEIsQ0FBQywyQkFBMkIsQ0FDekQsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ2pJLEtBQUssQ0FBQyxRQUFRLEVBQ2QsS0FBSyxDQUFDLE1BQU0sRUFDWixLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUN0QyxDQUNGLENBQUE7UUFDSCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQ3ZCLEdBQUcscUNBQWlCLENBQUMseUJBQXlCLENBQzVDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUN4QixLQUFLLENBQUMsUUFBUSxFQUNkLEtBQUssQ0FBQyxNQUFNLEVBQ1osS0FBSyxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN6RixDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdkRELHNEQXVEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IEF3cyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIEFsYXJtU3RhdHVzV2lkZ2V0LFxuICBEYXNoYm9hcmQsXG4gIFBlcmlvZE92ZXJyaWRlLFxuICBUZXh0V2lkZ2V0LFxuICBUZXh0V2lkZ2V0QmFja2dyb3VuZCxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBCYXNpY1NlcnZpY2VEYXNoYm9hcmRQcm9wcyB9IGZyb20gJy4vcHJvcHMvQmFzaWNTZXJ2aWNlRGFzaGJvYXJkUHJvcHMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNzIH0gZnJvbSAnLi4vbWV0cmljcy9BcHBsaWNhdGlvbkxvYWRCYWxhbmNlck1ldHJpY3MnO1xuaW1wb3J0IHsgTmF0R2F0ZXdheU1ldHJpY3MgfSBmcm9tICcuLi9tZXRyaWNzL05hdEdhdGV3YXlNZXRyaWNzJztcblxuZXhwb3J0IGNsYXNzIEJhc2ljU2VydmljZURhc2hib2FyZCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgZGFzaGJvYXJkOiBEYXNoYm9hcmQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJhc2ljU2VydmljZURhc2hib2FyZFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmICghKHByb3BzLmFsYnMpICYmICEocHJvcHMubmF0Z3dzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IG11c3QgZGVmaW5lIGVpdGhlciBBTEJzIG9yIE5BVCBHYXRld2F5cyBmb3IgdGhpcyBzZXJ2aWNlIGluIG9yZGVyIHRvIGNyZWF0ZSBhIGRhc2hib2FyZC5cIik7XG4gICAgfVxuXG4gICAgdGhpcy5kYXNoYm9hcmQgPSBuZXcgRGFzaGJvYXJkKHRoaXMsICdCYXNpY1NlcnZpY2VEYXNoYm9hcmQnLCB7XG4gICAgICBkYXNoYm9hcmROYW1lOiBgJHtwcm9wcy5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpfS1wZXItYXotaGVhbHRoLSR7QXdzLlJFR0lPTn1gLFxuICAgICAgZGVmYXVsdEludGVydmFsOiBwcm9wcy5pbnRlcnZhbCxcbiAgICAgIHBlcmlvZE92ZXJyaWRlOiBQZXJpb2RPdmVycmlkZS5BVVRPXG4gICAgfSk7XG5cbiAgICB0aGlzLmRhc2hib2FyZC5hZGRXaWRnZXRzKG5ldyBBbGFybVN0YXR1c1dpZGdldCh7XG4gICAgICBhbGFybXM6IE9iamVjdC52YWx1ZXMocHJvcHMuem9uYWxBZ2dyZWdhdGVJc29sYXRlZEltcGFjdEFsYXJtcyksXG4gICAgICBoZWlnaHQ6IDIsXG4gICAgICB3aWR0aDogMjQsXG4gICAgICB0aXRsZTogJ1pvbmFsIEltcGFjdCBBbGFybXMnLFxuICAgIH0pKTtcblxuICAgIGlmIChwcm9wcy5hbGJzKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZC5hZGRXaWRnZXRzKFxuXG4gICAgICBuZXcgVGV4dFdpZGdldCh7XG4gICAgICAgIG1hcmtkb3duOiBcIiMjICoqTG9hZCBCYWxhbmNlciBNZXRyaWNzKipcIixcbiAgICAgICAgYmFja2dyb3VuZDogVGV4dFdpZGdldEJhY2tncm91bmQuVFJBTlNQQVJFTlQsXG4gICAgICAgIGhlaWdodDogMSxcbiAgICAgICAgd2lkdGg6IDI0XG4gICAgICB9KSxcbiAgICAgIC4uLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcy5nZW5lcmF0ZUxvYWRCYWxhbmNlcldpZGdldHMoXG4gICAgICAgICAgbmV3IE1hcChwcm9wcy5hbGJzLmFsYlRhcmdldEdyb3VwTWFwLm1hcChlbnRyeSA9PiBbZW50cnkuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXIsIGVudHJ5LnRhcmdldEdyb3VwcyA/IGVudHJ5LnRhcmdldEdyb3VwcyA6IFtdXSkpLFxuICAgICAgICAgIHByb3BzLmF6TWFwcGVyLFxuICAgICAgICAgIHByb3BzLnBlcmlvZCxcbiAgICAgICAgICBwcm9wcy5hbGJzLmxhdGVuY3lTdGF0aXN0aWMsXG4gICAgICAgICAgcHJvcHMuYWxicy5sYXRlbmN5VGhyZXNob2xkLFxuICAgICAgICAgIHByb3BzLmFsYnMuZmF1bHRDb3VudFBlcmNlbnRUaHJlc2hvbGRcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5uYXRnd3MpIHtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmFkZFdpZGdldHMoXG4gICAgICAgIC4uLk5hdEdhdGV3YXlNZXRyaWNzLmdlbmVyYXRlTmF0R2F0ZXdheVdpZGdldHMoXG4gICAgICAgICAgcHJvcHMubmF0Z3dzLm5hdEdhdGV3YXlzLFxuICAgICAgICAgIHByb3BzLmF6TWFwcGVyLFxuICAgICAgICAgIHByb3BzLnBlcmlvZCxcbiAgICAgICAgICBwcm9wcy5uYXRnd3MucGFja2V0TG9zc1BlcmNlbnRUaHJlc2hvbGQgPyBwcm9wcy5uYXRnd3MucGFja2V0TG9zc1BlcmNlbnRUaHJlc2hvbGQgOiAwLjAxXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|