@rio-cloud/cdk-v2-constructs 4.18.0 → 4.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +551 -136
- package/CHANGELOG.md +8 -0
- package/README.md +16 -0
- package/lib/datadogv2/datadog-monitor.d.ts +17 -0
- package/lib/datadogv2/datadog-monitor.js +15 -2
- package/lib/watchful/alb.js +4 -3
- package/lib/watchful/cloudfront.js +4 -3
- package/lib/watchful/docdb.js +6 -5
- package/lib/watchful/dynamodb.js +5 -4
- package/lib/watchful/ecs.js +4 -4
- package/lib/watchful/index.d.ts +1 -0
- package/lib/watchful/index.js +2 -1
- package/lib/watchful/lambda.js +6 -5
- package/lib/watchful/monitor-type.d.ts +66 -0
- package/lib/watchful/monitor-type.js +71 -0
- package/lib/watchful/rds.js +4 -3
- package/lib/watchful/targetgroup.js +4 -3
- package/lib/watchful/watchful.d.ts +37 -8
- package/lib/watchful/watchful.js +30 -4
- package/lib/watchfulv2/watchful.d.ts +3 -3
- package/lib/watchfulv2/watchful.js +5 -3
- package/package.json +1 -1
- package/version.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [4.19.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.18.0&sourceBranch=refs%2Ftags%2Fv4.19.0) (2023-10-27)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* :sparkles: Watcful override threshold interface has been updated. Because of refactoring of monitor ID's, the following monitors (if present) will be recreated. ([321fe7f](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/321fe7fe41adad55e2f22fcfe62384896fdc45f1))
|
|
11
|
+
* :sparkles: Watchful monitor thresholds can be updated using overrideAlarmThreshold function. Read the FAQ's for details. ([6257861](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/6257861ad2a413afadd721f0a649e4c637cd72ad))
|
|
12
|
+
|
|
5
13
|
## [4.18.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.17.1&sourceBranch=refs%2Ftags%2Fv4.18.0) (2023-09-19)
|
|
6
14
|
|
|
7
15
|
|
package/README.md
CHANGED
|
@@ -21,3 +21,19 @@ $ npm install --save @rio-cloud/cdk-v2-constructs
|
|
|
21
21
|
* [How to contribut](./CONTRIBUTION.md)
|
|
22
22
|
* [Changelog](./CHANGELOG.md)
|
|
23
23
|
* [brief API desciption](./API.md)
|
|
24
|
+
|
|
25
|
+
## FAQ's
|
|
26
|
+
- How can I udpate the thresholds of monitors created by watchful?
|
|
27
|
+
|
|
28
|
+
There is an `overrideAlarmThreshold` method which can be used to override the default watchful thresholds. Please make aure to use the method before the `watchscope` function.
|
|
29
|
+
Eg -
|
|
30
|
+
```
|
|
31
|
+
...
|
|
32
|
+
const dw = new Watchful(stack, 'Watchful', {});
|
|
33
|
+
dw.overrideAlarmThreshold({
|
|
34
|
+
monitoredResourceScope: lambdaA,
|
|
35
|
+
monitorType: MonitorType.ERRORS,
|
|
36
|
+
threshold: 5,
|
|
37
|
+
});
|
|
38
|
+
dw.watchScope(stack);
|
|
39
|
+
```
|
|
@@ -90,6 +90,17 @@ export declare enum RenotifyStatuses {
|
|
|
90
90
|
NO_DATA = "no data",
|
|
91
91
|
WARN = "warn"
|
|
92
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Well known notification presets supported by Datadog.
|
|
95
|
+
*
|
|
96
|
+
* @see https://github.com/DataDog/datadog-cloudformation-resources/blob/master/datadog-monitors-monitor-handler/datadog-monitors-monitor.json
|
|
97
|
+
*/
|
|
98
|
+
export declare enum MonitorNotificationPreset {
|
|
99
|
+
SHOW_ALL = "show_all",
|
|
100
|
+
HIDE_QUERY = "hide_query",
|
|
101
|
+
HIDE_HANDLES = "hide_handles",
|
|
102
|
+
HIDE_ALL = "hide_all"
|
|
103
|
+
}
|
|
93
104
|
/**
|
|
94
105
|
* Options to override for Datadog monitors in case more specific settings are required.
|
|
95
106
|
*
|
|
@@ -174,6 +185,12 @@ export interface CfnDatadogMonitorOptions {
|
|
|
174
185
|
* How long the test should be in failure before alerting (integer, number of seconds, max 7200).
|
|
175
186
|
*/
|
|
176
187
|
readonly minFailureDuration?: number;
|
|
188
|
+
/**
|
|
189
|
+
* Controls which information should be added/lett out from the notification.
|
|
190
|
+
*
|
|
191
|
+
* @defaultValue {@link MonitorNotificationPreset.SHOW_ALL}
|
|
192
|
+
*/
|
|
193
|
+
readonly monitorNotificationPresetName?: MonitorNotificationPreset;
|
|
177
194
|
/**
|
|
178
195
|
* Time (in seconds) to skip evaluations for new groups. For example, this option can be used to skip evaluations for new hosts while they initialize. Must be a non negative integer.
|
|
179
196
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.DatadogMonitor = exports.RenotifyStatuses = exports.DatadogMonitorQueryAlertType = void 0;
|
|
4
|
+
exports.DatadogMonitor = exports.MonitorNotificationPreset = exports.RenotifyStatuses = exports.DatadogMonitorQueryAlertType = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const cdk = require("aws-cdk-lib");
|
|
7
7
|
const constructs_1 = require("constructs");
|
|
@@ -42,6 +42,18 @@ var RenotifyStatuses;
|
|
|
42
42
|
RenotifyStatuses["NO_DATA"] = "no data";
|
|
43
43
|
RenotifyStatuses["WARN"] = "warn";
|
|
44
44
|
})(RenotifyStatuses = exports.RenotifyStatuses || (exports.RenotifyStatuses = {}));
|
|
45
|
+
/**
|
|
46
|
+
* Well known notification presets supported by Datadog.
|
|
47
|
+
*
|
|
48
|
+
* @see https://github.com/DataDog/datadog-cloudformation-resources/blob/master/datadog-monitors-monitor-handler/datadog-monitors-monitor.json
|
|
49
|
+
*/
|
|
50
|
+
var MonitorNotificationPreset;
|
|
51
|
+
(function (MonitorNotificationPreset) {
|
|
52
|
+
MonitorNotificationPreset["SHOW_ALL"] = "show_all";
|
|
53
|
+
MonitorNotificationPreset["HIDE_QUERY"] = "hide_query";
|
|
54
|
+
MonitorNotificationPreset["HIDE_HANDLES"] = "hide_handles";
|
|
55
|
+
MonitorNotificationPreset["HIDE_ALL"] = "hide_all";
|
|
56
|
+
})(MonitorNotificationPreset = exports.MonitorNotificationPreset || (exports.MonitorNotificationPreset = {}));
|
|
45
57
|
/**
|
|
46
58
|
* Wrapper around Datadog's CloudFormation `Datadog::Monitors::Monitor` with some RIO defaults applied.
|
|
47
59
|
*
|
|
@@ -107,6 +119,7 @@ function mapMonitorOptions(source) {
|
|
|
107
119
|
SyntheticsCheckID: source?.syntheticsCheckID,
|
|
108
120
|
Thresholds: mapThresholdsProperties(source?.thresholds),
|
|
109
121
|
ThresholdWindows: mapThresholdWindowsProperties(source?.thresholdWindows),
|
|
122
|
+
MonitorNotificationPresetName: source?.monitorNotificationPresetName,
|
|
110
123
|
TimeoutH: source?.timeoutH,
|
|
111
124
|
RenotifyOccurrences: source?.renotifyOccurrences,
|
|
112
125
|
RenotifyStatuses: source?.renotifyStatuses,
|
|
@@ -131,4 +144,4 @@ function mapThresholdWindowsProperties(source) {
|
|
|
131
144
|
RecoveryWindow: source.recoveryWindow,
|
|
132
145
|
} : undefined;
|
|
133
146
|
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQXVDO0FBQ3ZDLDBEQUFxRDtBQUNyRCxpRUFBaUY7QUFFakY7Ozs7R0FJRztBQUNILElBQVksNEJBaUJYO0FBakJELFdBQVksNEJBQTRCO0lBQ3RDLDJEQUEyQixDQUFBO0lBQzNCLHVEQUF1QixDQUFBO0lBQ3ZCLDJEQUEyQixDQUFBO0lBQzNCLGtFQUFrQyxDQUFBO0lBQ2xDLHVEQUF1QixDQUFBO0lBQ3ZCLDZEQUE2QixDQUFBO0lBQzdCLCtEQUErQixDQUFBO0lBQy9CLDJEQUEyQixDQUFBO0lBQzNCLCtEQUErQixDQUFBO0lBQy9CLHFFQUFxQyxDQUFBO0lBQ3JDLCtFQUErQyxDQUFBO0lBQy9DLHVEQUF1QixDQUFBO0lBQ3ZCLHVEQUF1QixDQUFBO0lBQ3ZCLHlFQUF5QyxDQUFBO0lBQ3pDLDZFQUE2QyxDQUFBO0lBQzdDLGlFQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFqQlcsNEJBQTRCLEdBQTVCLG9DQUE0QixLQUE1QixvQ0FBNEIsUUFpQnZDO0FBcUVEOzs7O0dBSUc7QUFDSCxJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFJM0I7QUE4SkQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFTM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFB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QUN2RCxnQkFBZ0IsRUFBRSw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7UUFDekUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRO1FBQzFCLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxtQkFBbUI7UUFDaEQsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGdCQUFnQjtRQUMxQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsa0JBQWtCO1FBQzlDLGFBQWEsRUFBRSxNQUFNLEVBQUUsYUFBYTtRQUNwQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVM7S0FDN0IsQ0FBQztBQUNKLENBQUM7QUFBQSxDQUFDO0FBR0YsU0FBUyx1QkFBdUIsQ0FBQyxNQUErQztJQUM5RSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDZCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtRQUN6QyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDYixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDdkIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO0tBQ3hDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyw2QkFBNkIsQ0FBQyxNQUFxRDtJQUMxRixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDZCxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7UUFDbkMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjO0tBQ3RDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUmlvTGFuZGluZ1pvbmUgfSBmcm9tICcuLi9yaW8tbGFuZGluZy16b25lJztcbmltcG9ydCB7IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbiwgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4vZGF0YWRvZy1ub3RpZmljYXRpb24nO1xuXG4vKipcbiAqIFdlbGwga25vd24gbW9uaXRvciB0eXBlcyBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL3R5cGVzL1xuICovXG5leHBvcnQgZW51bSBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlIHtcbiAgQVVESVRfQUxFUlQgPSAnYXVkaXQgYWxlcnQnLFxuICBDT01QT1NJVEUgPSAnY29tcG9zaXRlJyxcbiAgRVZFTlRfQUxFUlQgPSAnZXZlbnQgYWxlcnQnLFxuICBFVkVOVF9WXzJfQUxFUlQgPSAnZXZlbnQtdjIgYWxlcnQnLFxuICBMT0dfQUxFUlQgPSAnbG9nIGFsZXJ0JyxcbiAgTUVUUklDX0FMRVJUID0gJ21ldHJpYyBhbGVydCcsXG4gIFBST0NFU1NfQUxFUlQgPSAncHJvY2VzcyBhbGVydCcsXG4gIFFVRVJZX0FMRVJUID0gJ3F1ZXJ5IGFsZXJ0JyxcbiAgU0VSVklDRV9DSEVDSyA9ICdzZXJ2aWNlIGNoZWNrJyxcbiAgU1lOVEhFVElDU19BTEVSVCA9ICdzeW50aGV0aWNzIGFsZXJ0JyxcbiAgVFJBQ0VfQU5BTFlUSUNTX0FMRVJUID0gJ3RyYWNlLWFuYWx5dGljcyBhbGVydCcsXG4gIFNMT19BTEVSVCA9ICdzbG8gYWxlcnQnLFxuICBSVU1fQUxFUlQgPSAncnVtIGFsZXJ0JyxcbiAgQ0lfUElQRUxJTkVTX0FMRVJUID0gJ2NpLXBpcGVsaW5lcyBhbGVydCcsXG4gIEVSUk9SX1RSQUNLSU5HX0FMRVJUID0gJ2Vycm9yLXRyYWNraW5nIGFsZXJ0JyxcbiAgQ0lfVEVTVFNfQUxFUlQgPSAnY2ktdGVzdHMgYWxlcnQnLFxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgb2Yge0BsaW5rIERhdGFkb2dNb25pdG9yfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dNb25pdG9yUHJvcHMge1xuXG4gIC8qKlxuICAgKiBBIG5hbWUgc3VmZml4IHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBtb25pdG9ycyBuYW1lLlxuICAgKlxuICAgKiBUaGUgbW9uaXRvciBuYW1lIGlzIGNvbmNhdGVuYXRlZCBmb3JtIGA8VGVhbU5hbWU+IDxzZXJ2aWNlTmFtZSBwcm9wZXJ0eT4gPG5hbWUgcHJvcGVydHk+YFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmljZSB0byB3aGljaCB0aGUgbW9uaXRvciBiZWxvbmdzLlxuICAgKlxuICAgKiBVc2VkIHRvIGdlbmVyYXRlIHRoZSBtb25pdG9yIG5hbWUgYXMgd2VsbCBhIGFwcGx5IHRoZSBgc2VydmljZWAgdGFnLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1vbml0b3JzIHR5cGVcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy90eXBlcy9cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JUeXBlOiBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9uaXRvcnMgc2VhcmNoIHF1ZXJ5XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvY29uZmlndXJhdGlvbi8jZGVmaW5lLXRoZS1zZWFyY2gtcXVlcnlcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIHBhdHRlcm4gZm9yIHRoZSBtb25pdG9yXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvY29uZmlndXJhdGlvbi8jbWVzc2FnZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyBleHBsaWNpdGx5IGRpc2FibGUgbm90aWZpY2F0aW9ucyB1c2Uge0BsaW5rIE5vTm90aWZpY2F0aW9ufS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB7QGxpbmsgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9ufVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL25vdGlmeVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uPzogSU5vdGlmaWNhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGFsZXJ0IHByaW9yaXR5IG9mIHRoZSBtb25pdG9yXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgNFxuICAgKi9cbiAgcmVhZG9ubHkgcHJpb3JpdHk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmljIG9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbW9uaXRvciBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgb3B0aW9uT3ZlcnJpZGVzPzogQ2ZuRGF0YWRvZ01vbml0b3JPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUYWdzIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBtb25pdG9yIGluIGFkZGl0aW9uIHRvIHRoZSBSSU8gZGVmYXVsdCB0YWdzXG4gICAqL1xuICByZWFkb25seSBleHRyYVRhZ3M/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBXZWxsIGtub3duIHJlbm90aWZpY2F0aW9uIHNldHRpbmdzIHN1cHBvcnRlZCBieSBEYXRhZG9nLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvbm90aWZ5LyNyZW5vdGlmeVxuICovXG5leHBvcnQgZW51bSBSZW5vdGlmeVN0YXR1c2VzIHtcbiAgQUxFUlQgPSAnYWxlcnQnLFxuICBOT19EQVRBID0gJ25vIGRhdGEnLFxuICBXQVJOID0gJ3dhcm4nXG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBvdmVycmlkZSBmb3IgRGF0YWRvZyBtb25pdG9ycyBpbiBjYXNlIG1vcmUgc3BlY2lmaWMgc2V0dGluZ3MgYXJlIHJlcXVpcmVkLlxuICpcbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGF0YURvZy9kYXRhZG9nLWNsb3VkZm9ybWF0aW9uLXJlc291cmNlcy9ibG9iL21hc3Rlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3ItaGFuZGxlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3IuanNvbn1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZm5EYXRhZG9nTW9uaXRvck9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgc2FtcGxlIG9mIHRoZSBsb2dzXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb2dzU2FtcGxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTWVzc2FnZSB0byBpbmNsdWRlIHdpdGggYSByZS1ub3RpZmljYXRpb24gd2hlbiByZW5vdGlmeV9pbnRlcnZhbCBpcyBzZXRcbiAgICovXG4gIHJlYWRvbmx5IGVzY2FsYXRpb25NZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaW1lIGluIHNlY29uZHMgdG8gZGVsYXkgZXZhbHVhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIDkwMFxuICAgKi9cbiAgcmVhZG9ubHkgZXZhbHVhdGlvbkRlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRyaWdnZXJpbmcgdGFncyBpbnRvIG5vdGlmaWNhdGlvbiB0aXRsZSdcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlVGFncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGNoYW5nZXMgdG8gdGhpcyBtb25pdG9yIHNob3VsZCBiZSByZXN0cmljdGVkIHRvIHRoZSBjcmVhdG9yIG9yIGFkbWluc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9ja2VkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGxvY2F0aW9ucyBhbGxvd2VkIHRvIGZhaWwgYmVmb3JlIHRyaWdnZXJpbmcgYWxlcnRcbiAgICovXG4gIHJlYWRvbmx5IG1pbkxvY2F0aW9uRmFpbGVkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaW1lIGluIHNlY29uZHMgdG8gYWxsb3cgYSBob3N0IHRvIHN0YXJ0IHJlcG9ydGluZyBkYXRhIGJlZm9yZSBzdGFydGluZyB0aGUgZXZhbHVhdGlvbiBvZiBtb25pdG9yIHJlc3VsdHNcbiAgICovXG4gIHJlYWRvbmx5IG5ld0hvc3REZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIG1pbnV0ZXMgZGF0YSBzdG9wcGVkIHJlcG9ydGluZyBiZWZvcmUgbm90aWZ5aW5nXG4gICAqL1xuICByZWFkb25seSBub0RhdGFUaW1lZnJhbWU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIG5vdGlmeSB0YWdnZWQgdXNlcnMgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlIHRvIHRoZSBtb25pdG9yXG4gICAqL1xuICByZWFkb25seSBub3RpZnlBdWRpdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIG5vdGlmeSB3aGVuIGRhdGEgc3RvcHMgcmVwb3J0aW5nXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmeU5vRGF0YT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtaW51dGVzIGFmdGVyIHRoZSBsYXN0IG5vdGlmaWNhdGlvbiBiZWZvcmUgdGhlIG1vbml0b3IgcmUtbm90aWZpZXMgb24gdGhlIGN1cnJlbnQgc3RhdHVzXG4gICAqL1xuICByZWFkb25seSByZW5vdGlmeUludGVydmFsPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgbW9uaXRvciByZXF1aXJlcyBhIGZ1bGwgd2luZG93IG9mIGRhdGEgYmVmb3JlIGl0IGlzIGV2YWx1YXRlZFxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlRnVsbFdpbmRvdz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElEIG9mIHRoZSBjb3JyZXNwb25kaW5nIHN5bnRoZXRpY3MgY2hlY2tcbiAgICovXG4gIHJlYWRvbmx5IHN5bnRoZXRpY3NDaGVja0lEPzogbnVtYmVyO1xuXG4gIHJlYWRvbmx5IHRocmVzaG9sZHM/OiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZHM7XG5cbiAgcmVhZG9ubHkgdGhyZXNob2xkV2luZG93cz86IENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkV2luZG93cztcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGhvdXJzIG9mIHRoZSBtb25pdG9yIG5vdCByZXBvcnRpbmcgZGF0YSBiZWZvcmUgaXQgYXV0b21hdGljYWxseSByZXNvbHZlc1xuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGltZXMgcmUtbm90aWZpY2F0aW9uIG1lc3NhZ2VzIHNob3VsZCBiZSBzZW50IG9uIHRoZSBjdXJyZW50IHN0YXR1cyBhdCB0aGUgcHJvdmlkZWQgcmUtbm90aWZpY2F0aW9uIGludGVydmFsLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVub3RpZnlPY2N1cnJlbmNlcz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHR5cGVzIG9mIG1vbml0b3Igc3RhdHVzZXMgZm9yIHdoaWNoIHJlLW5vdGlmaWNhdGlvbiBtZXNzYWdlcyBhcmUgc2VudC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbm90aWZ5U3RhdHVzZXM/OiBSZW5vdGlmeVN0YXR1c2VzO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyB0aGUgdGVzdCBzaG91bGQgYmUgaW4gZmFpbHVyZSBiZWZvcmUgYWxlcnRpbmcgKGludGVnZXIsIG51bWJlciBvZiBzZWNvbmRzLCBtYXggNzIwMCkuXG4gICAqL1xuICByZWFkb25seSBtaW5GYWlsdXJlRHVyYXRpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRpbWUgKGluIHNlY29uZHMpIHRvIHNraXAgZXZhbHVhdGlvbnMgZm9yIG5ldyBncm91cHMuIEZvciBleGFtcGxlLCB0aGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBza2lwIGV2YWx1YXRpb25zIGZvciBuZXcgaG9zdHMgd2hpbGUgdGhleSBpbml0aWFsaXplLiBNdXN0IGJlIGEgbm9uIG5lZ2F0aXZlIGludGVnZXIuXG4gICAqL1xuICByZWFkb25seSBuZXdHcm91cERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHJlcXVlc3RzIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIG1vbml0b3IgcXVlcnkuXG4gICAqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBvYmplY3RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZHMge1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgdHJpZ2dlcmluZyBhbiBhbGVydFxuICAgKi9cbiAgcmVhZG9ubHkgY3JpdGljYWw/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IGNyaXRpY2FsUmVjb3Zlcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IG9rPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgdHJpZ2dlcmluZyBhIHdhcm5pbmdcbiAgICovXG4gIHJlYWRvbmx5IHdhcm5pbmc/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGEgd2FybmluZyBzdGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd2FybmluZ1JlY292ZXJ5PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkV2luZG93cyB7XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIGEgbWV0cmljIG11c3QgYmUgYW5vbWFsb3VzIGJlZm9yZSB0cmlnZ2VyaW5nIGFuIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyV2luZG93Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhbiBhbm9tYWxvdXMgbWV0cmljIG11c3QgYmUgbm9ybWFsIGJlZm9yZSByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IHJlY292ZXJ5V2luZG93Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgYXJvdW5kIERhdGFkb2cncyBDbG91ZEZvcm1hdGlvbiBgRGF0YWRvZzo6TW9uaXRvcnM6Ok1vbml0b3JgIHdpdGggc29tZSBSSU8gZGVmYXVsdHMgYXBwbGllZC5cbiAqXG4gKiBUbyB1c2UgdGhpcyB0aGUgRGF0YWRvZyByZXNvdXJjZXMgaGF2ZSB0byBiZSB7QGxpbmsgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2d1aWRlL2FtYXpvbl9jbG91ZGZvcm1hdGlvbi9cbiAqIHxlbmFibGVkIGluIHRoZSBDbG91ZEZvcm1hdGlvbiByZWdpc3RyeX0gb2YgdGhlIGNvcnJlc3BvbmRpbmcgQVdTIGFjY291bnQuIFVzdWFsbHkgdGhpcyBpcyBkb25lXG4gKiBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBEYXRhZG9nIEludGVncmF0aW9ucyAoYWNjb3VudCBtb2R1bGUgQU5EIFNlcnZpY2VDYXRhbG9nKSBwcm92aWRlZCBieSBDTEFJRC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dNb25pdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIERlZmF1bHQgcHJpb3JpdHkgb2YgYSBtb25pdG9yXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9QUklPUklUWSA9IDQ7XG5cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nTW9uaXRvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByaW9yaXR5ID0gcHJvcHMucHJpb3JpdHkgPz8gRGF0YWRvZ01vbml0b3IuREVGQVVMVF9QUklPUklUWTtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuXG4gICAgY29uc3QgdGVhbU5hbWUgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtTmFtZVBhcmFtZXRlcih0aGlzKTtcbiAgICBjb25zdCB0ZWFtSWRlbnRpZmllciA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1JZGVudGlmaWVyUGFyYW1ldGVyKHRoaXMpO1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcyk7XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBwcm9wcy5ub3RpZmljYXRpb24gPyBwcm9wcy5ub3RpZmljYXRpb24gOiBuZXcgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uKCk7XG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vRGF0YURvZy9kYXRhZG9nLWNsb3VkZm9ybWF0aW9uLXJlc291cmNlcy9ibG9iL21hc3Rlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3ItaGFuZGxlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3IuanNvblxuICAgIG5ldyBjZGsuQ2ZuUmVzb3VyY2UodGhpcywgJ01vbml0b3InLCB7XG4gICAgICB0eXBlOiAnRGF0YWRvZzo6TW9uaXRvcnM6Ok1vbml0b3InLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBUeXBlOiBwcm9wcy5tb25pdG9yVHlwZSxcbiAgICAgICAgUXVlcnk6IHByb3BzLnF1ZXJ5LFxuICAgICAgICBOYW1lOiBgJHt0ZWFtTmFtZS5zdHJpbmdWYWx1ZX0gJHtwcm9wcy5zZXJ2aWNlTmFtZX0gJHtwcm9wcy5uYW1lfWAsXG4gICAgICAgIE1lc3NhZ2U6IHRoaXMuY29uY2F0ZW5hdGVNZXNzYWdlKHsgbWVzc2FnZTogcHJvcHMubWVzc2FnZSwgbm90aWZpY2F0aW9uIH0pLFxuICAgICAgICBQcmlvcml0eTogdGhpcy5wcmlvcml0eSxcbiAgICAgICAgT3B0aW9uczogbWFwTW9uaXRvck9wdGlvbnMocHJvcHMub3B0aW9uT3ZlcnJpZGVzKSxcbiAgICAgICAgVGFnczogW1xuICAgICAgICAgIC4uLihwcm9wcy5leHRyYVRhZ3MgPz8gW10pLFxuICAgICAgICAgIGBhY2NvdW50X2lkOiR7Y2RrLlN0YWNrLm9mKHRoaXMpLmFjY291bnR9YCxcbiAgICAgICAgICBgYWNjb3VudF9uYW1lOiR7YWNjb3VudE5hbWUuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgICBgc2VydmljZToke3Byb3BzLnNlcnZpY2VOYW1lfWAsXG4gICAgICAgICAgYHRlYW06JHt0ZWFtTmFtZS5zdHJpbmdWYWx1ZX1gLFxuICAgICAgICAgIGB0ZWFtX2lkZW50aWZpZXI6JHt0ZWFtSWRlbnRpZmllci5zdHJpbmdWYWx1ZX1gLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0ZW5hdGVNZXNzYWdlKHByb3BzOiB7bWVzc2FnZTogc3RyaW5nOyBub3RpZmljYXRpb246IElOb3RpZmljYXRpb259KSB7XG4gICAgcmV0dXJuIGAke3Byb3BzLm1lc3NhZ2V9XFxuXFxuJHtwcm9wcy5ub3RpZmljYXRpb24uZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbih0aGlzKX1gO1xuICB9XG5cbn1cblxuZnVuY3Rpb24gbWFwTW9uaXRvck9wdGlvbnMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvck9wdGlvbnMgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHtcbiAgICBFbmFibGVMb2dzU2FtcGxlOiBzb3VyY2U/LmVuYWJsZUxvZ3NTYW1wbGUsXG4gICAgRXNjYWxhdGlvbk1lc3NhZ2U6IHNvdXJjZT8uZXNjYWxhdGlvbk1lc3NhZ2UsXG4gICAgRXZhbHVhdGlvbkRlbGF5OiBzb3VyY2U/LmV2YWx1YXRpb25EZWxheSA/PyA5MDAsXG4gICAgSW5jbHVkZVRhZ3M6IHNvdXJjZT8uaW5jbHVkZVRhZ3MgPz8gdHJ1ZSxcbiAgICBMb2NrZWQ6IHNvdXJjZT8ubG9ja2VkLFxuICAgIE1pbkxvY2F0aW9uRmFpbGVkOiBzb3VyY2U/Lm1pbkxvY2F0aW9uRmFpbGVkLFxuICAgIE5ld0hvc3REZWxheTogc291cmNlPy5uZXdIb3N0RGVsYXksXG4gICAgTm9EYXRhVGltZWZyYW1lOiBzb3VyY2U/Lm5vRGF0YVRpbWVmcmFtZSxcbiAgICBOb3RpZnlBdWRpdDogc291cmNlPy5ub3RpZnlBdWRpdCxcbiAgICBOb3RpZnlOb0RhdGE6IHNvdXJjZT8ubm90aWZ5Tm9EYXRhID8/IGZhbHNlLFxuICAgIFJlbm90aWZ5SW50ZXJ2YWw6IHNvdXJjZT8ucmVub3RpZnlJbnRlcnZhbCxcbiAgICBSZXF1aXJlRnVsbFdpbmRvdzogc291cmNlPy5yZXF1aXJlRnVsbFdpbmRvdyA/PyBmYWxzZSxcbiAgICBTeW50aGV0aWNzQ2hlY2tJRDogc291cmNlPy5zeW50aGV0aWNzQ2hlY2tJRCxcbiAgICBUaHJlc2hvbGRzOiBtYXBUaHJlc2hvbGRzUHJvcGVydGllcyhzb3VyY2U/LnRocmVzaG9sZHMpLFxuICAgIFRocmVzaG9sZFdpbmRvd3M6IG1hcFRocmVzaG9sZFdpbmRvd3NQcm9wZXJ0aWVzKHNvdXJjZT8udGhyZXNob2xkV2luZG93cyksXG4gICAgVGltZW91dEg6IHNvdXJjZT8udGltZW91dEgsXG4gICAgUmVub3RpZnlPY2N1cnJlbmNlczogc291cmNlPy5yZW5vdGlmeU9jY3VycmVuY2VzLFxuICAgIFJlbm90aWZ5U3RhdHVzZXM6IHNvdXJjZT8ucmVub3RpZnlTdGF0dXNlcyxcbiAgICBNaW5GYWlsdXJlRHVyYXRpb246IHNvdXJjZT8ubWluRmFpbHVyZUR1cmF0aW9uLFxuICAgIE5ld0dyb3VwRGVsYXk6IHNvdXJjZT8ubmV3R3JvdXBEZWxheSxcbiAgICBWYXJpYWJsZXM6IHNvdXJjZT8udmFyaWFibGVzLFxuICB9O1xufTtcblxuXG5mdW5jdGlvbiBtYXBUaHJlc2hvbGRzUHJvcGVydGllcyhzb3VyY2U6IENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkcyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gc291cmNlID8ge1xuICAgIENyaXRpY2FsOiBzb3VyY2UuY3JpdGljYWwsXG4gICAgQ3JpdGljYWxSZWNvdmVyeTogc291cmNlLmNyaXRpY2FsUmVjb3ZlcnksXG4gICAgT0s6IHNvdXJjZS5vayxcbiAgICBXYXJuaW5nOiBzb3VyY2Uud2FybmluZyxcbiAgICBXYXJuaW5nUmVjb3Zlcnk6IHNvdXJjZS53YXJuaW5nUmVjb3ZlcnksXG4gIH0gOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG1hcFRocmVzaG9sZFdpbmRvd3NQcm9wZXJ0aWVzKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRXaW5kb3dzIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2UgPyB7XG4gICAgVHJpZ2dlcldpbmRvdzogc291cmNlLnRyaWdnZXJXaW5kb3csXG4gICAgUmVjb3ZlcnlXaW5kb3c6IHNvdXJjZS5yZWNvdmVyeVdpbmRvdyxcbiAgfSA6IHVuZGVmaW5lZDtcbn0iXX0=
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQXVDO0FBQ3ZDLDBEQUFxRDtBQUNyRCxpRUFBaUY7QUFFakY7Ozs7R0FJRztBQUNILElBQVksNEJBaUJYO0FBakJELFdBQVksNEJBQTRCO0lBQ3RDLDJEQUEyQixDQUFBO0lBQzNCLHVEQUF1QixDQUFBO0lBQ3ZCLDJEQUEyQixDQUFBO0lBQzNCLGtFQUFrQyxDQUFBO0lBQ2xDLHVEQUF1QixDQUFBO0lBQ3ZCLDZEQUE2QixDQUFBO0lBQzdCLCtEQUErQixDQUFBO0lBQy9CLDJEQUEyQixDQUFBO0lBQzNCLCtEQUErQixDQUFBO0lBQy9CLHFFQUFxQyxDQUFBO0lBQ3JDLCtFQUErQyxDQUFBO0lBQy9DLHVEQUF1QixDQUFBO0lBQ3ZCLHVEQUF1QixDQUFBO0lBQ3ZCLHlFQUF5QyxDQUFBO0lBQ3pDLDZFQUE2QyxDQUFBO0lBQzdDLGlFQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFqQlcsNEJBQTRCLEdBQTVCLG9DQUE0QixLQUE1QixvQ0FBNEIsUUFpQnZDO0FBcUVEOzs7O0dBSUc7QUFDSCxJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFJM0I7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLGtEQUFxQixDQUFBO0lBQ3JCLHNEQUF5QixDQUFBO0lBQ3pCLDBEQUE2QixDQUFBO0lBQzdCLGtEQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyx5QkFBeUIsR0FBekIsaUNBQXlCLEtBQXpCLGlDQUF5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aEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vcmlvLWxhbmRpbmctem9uZSc7XG5pbXBvcnQgeyBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb24sIElOb3RpZmljYXRpb24gfSBmcm9tICcuL2RhdGFkb2ctbm90aWZpY2F0aW9uJztcblxuLyoqXG4gKiBXZWxsIGtub3duIG1vbml0b3IgdHlwZXMgc3VwcG9ydGVkIGJ5IERhdGFkb2cuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy90eXBlcy9cbiAqL1xuZXhwb3J0IGVudW0gRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZSB7XG4gIEFVRElUX0FMRVJUID0gJ2F1ZGl0IGFsZXJ0JyxcbiAgQ09NUE9TSVRFID0gJ2NvbXBvc2l0ZScsXG4gIEVWRU5UX0FMRVJUID0gJ2V2ZW50IGFsZXJ0JyxcbiAgRVZFTlRfVl8yX0FMRVJUID0gJ2V2ZW50LXYyIGFsZXJ0JyxcbiAgTE9HX0FMRVJUID0gJ2xvZyBhbGVydCcsXG4gIE1FVFJJQ19BTEVSVCA9ICdtZXRyaWMgYWxlcnQnLFxuICBQUk9DRVNTX0FMRVJUID0gJ3Byb2Nlc3MgYWxlcnQnLFxuICBRVUVSWV9BTEVSVCA9ICdxdWVyeSBhbGVydCcsXG4gIFNFUlZJQ0VfQ0hFQ0sgPSAnc2VydmljZSBjaGVjaycsXG4gIFNZTlRIRVRJQ1NfQUxFUlQgPSAnc3ludGhldGljcyBhbGVydCcsXG4gIFRSQUNFX0FOQUxZVElDU19BTEVSVCA9ICd0cmFjZS1hbmFseXRpY3MgYWxlcnQnLFxuICBTTE9fQUxFUlQgPSAnc2xvIGFsZXJ0JyxcbiAgUlVNX0FMRVJUID0gJ3J1bSBhbGVydCcsXG4gIENJX1BJUEVMSU5FU19BTEVSVCA9ICdjaS1waXBlbGluZXMgYWxlcnQnLFxuICBFUlJPUl9UUkFDS0lOR19BTEVSVCA9ICdlcnJvci10cmFja2luZyBhbGVydCcsXG4gIENJX1RFU1RTX0FMRVJUID0gJ2NpLXRlc3RzIGFsZXJ0Jyxcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIHtAbGluayBEYXRhZG9nTW9uaXRvcn1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nTW9uaXRvclByb3BzIHtcblxuICAvKipcbiAgICogQSBuYW1lIHN1ZmZpeCB0byBiZSBhcHBlbmRlZCB0byB0aGUgbW9uaXRvcnMgbmFtZS5cbiAgICpcbiAgICogVGhlIG1vbml0b3IgbmFtZSBpcyBjb25jYXRlbmF0ZWQgZm9ybSBgPFRlYW1OYW1lPiA8c2VydmljZU5hbWUgcHJvcGVydHk+IDxuYW1lIHByb3BlcnR5PmBcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIG1vbml0b3IgYmVsb25ncy5cbiAgICpcbiAgICogVXNlZCB0byBnZW5lcmF0ZSB0aGUgbW9uaXRvciBuYW1lIGFzIHdlbGwgYSBhcHBseSB0aGUgYHNlcnZpY2VgIHRhZy5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtb25pdG9ycyB0eXBlXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvdHlwZXMvXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZTtcblxuICAvKipcbiAgICogVGhlIG1vbml0b3JzIHNlYXJjaCBxdWVyeVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL2NvbmZpZ3VyYXRpb24vI2RlZmluZS10aGUtc2VhcmNoLXF1ZXJ5XG4gICAqL1xuICByZWFkb25seSBxdWVyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSBwYXR0ZXJuIGZvciB0aGUgbW9uaXRvclxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL2NvbmZpZ3VyYXRpb24vI21lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVG8gZXhwbGljaXRseSBkaXNhYmxlIG5vdGlmaWNhdGlvbnMgdXNlIHtAbGluayBOb05vdGlmaWNhdGlvbn0uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUge0BsaW5rIERlZmF1bHRTbGFja05vdGlmaWNhdGlvbn1cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy9ub3RpZnlcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbj86IElOb3RpZmljYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBhbGVydCBwcmlvcml0eSBvZiB0aGUgbW9uaXRvclxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIDRcbiAgICovXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpYyBvcHRpb25zIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG1vbml0b3Igb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbk92ZXJyaWRlcz86IENmbkRhdGFkb2dNb25pdG9yT3B0aW9ucztcblxuICAvKipcbiAgICogVGFncyB0byBiZSBhcHBlbmRlZCB0byB0aGUgbW9uaXRvciBpbiBhZGRpdGlvbiB0byB0aGUgUklPIGRlZmF1bHQgdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFUYWdzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogV2VsbCBrbm93biByZW5vdGlmaWNhdGlvbiBzZXR0aW5ncyBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL25vdGlmeS8jcmVub3RpZnlcbiAqL1xuZXhwb3J0IGVudW0gUmVub3RpZnlTdGF0dXNlcyB7XG4gIEFMRVJUID0gJ2FsZXJ0JyxcbiAgTk9fREFUQSA9ICdubyBkYXRhJyxcbiAgV0FSTiA9ICd3YXJuJ1xufVxuXG4vKipcbiAqIFdlbGwga25vd24gbm90aWZpY2F0aW9uIHByZXNldHMgc3VwcG9ydGVkIGJ5IERhdGFkb2cuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vRGF0YURvZy9kYXRhZG9nLWNsb3VkZm9ybWF0aW9uLXJlc291cmNlcy9ibG9iL21hc3Rlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3ItaGFuZGxlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3IuanNvblxuICovXG5leHBvcnQgZW51bSBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0IHtcbiAgU0hPV19BTEwgPSAnc2hvd19hbGwnLFxuICBISURFX1FVRVJZID0gJ2hpZGVfcXVlcnknLFxuICBISURFX0hBTkRMRVMgPSAnaGlkZV9oYW5kbGVzJyxcbiAgSElERV9BTEwgPSAnaGlkZV9hbGwnLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gb3ZlcnJpZGUgZm9yIERhdGFkb2cgbW9uaXRvcnMgaW4gY2FzZSBtb3JlIHNwZWNpZmljIHNldHRpbmdzIGFyZSByZXF1aXJlZC5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLmpzb259XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRGF0YWRvZ01vbml0b3JPcHRpb25zIHtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIHNhbXBsZSBvZiB0aGUgbG9nc1xuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9nc1NhbXBsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE1lc3NhZ2UgdG8gaW5jbHVkZSB3aXRoIGEgcmUtbm90aWZpY2F0aW9uIHdoZW4gcmVub3RpZnlfaW50ZXJ2YWwgaXMgc2V0XG4gICAqL1xuICByZWFkb25seSBlc2NhbGF0aW9uTWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGltZSBpbiBzZWNvbmRzIHRvIGRlbGF5IGV2YWx1YXRpb25cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSA5MDBcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25EZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0cmlnZ2VyaW5nIHRhZ3MgaW50byBub3RpZmljYXRpb24gdGl0bGUnXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZVRhZ3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCBjaGFuZ2VzIHRvIHRoaXMgbW9uaXRvciBzaG91bGQgYmUgcmVzdHJpY3RlZCB0byB0aGUgY3JlYXRvciBvciBhZG1pbnNcbiAgICovXG4gIHJlYWRvbmx5IGxvY2tlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBsb2NhdGlvbnMgYWxsb3dlZCB0byBmYWlsIGJlZm9yZSB0cmlnZ2VyaW5nIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSBtaW5Mb2NhdGlvbkZhaWxlZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGltZSBpbiBzZWNvbmRzIHRvIGFsbG93IGEgaG9zdCB0byBzdGFydCByZXBvcnRpbmcgZGF0YSBiZWZvcmUgc3RhcnRpbmcgdGhlIGV2YWx1YXRpb24gb2YgbW9uaXRvciByZXN1bHRzXG4gICAqL1xuICByZWFkb25seSBuZXdIb3N0RGVsYXk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtaW51dGVzIGRhdGEgc3RvcHBlZCByZXBvcnRpbmcgYmVmb3JlIG5vdGlmeWluZ1xuICAgKi9cbiAgcmVhZG9ubHkgbm9EYXRhVGltZWZyYW1lPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBub3RpZnkgdGFnZ2VkIHVzZXJzIHdoZW4gY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgbW9uaXRvclxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZ5QXVkaXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBub3RpZnkgd2hlbiBkYXRhIHN0b3BzIHJlcG9ydGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBub3RpZnlOb0RhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbWludXRlcyBhZnRlciB0aGUgbGFzdCBub3RpZmljYXRpb24gYmVmb3JlIHRoZSBtb25pdG9yIHJlLW5vdGlmaWVzIG9uIHRoZSBjdXJyZW50IHN0YXR1c1xuICAgKi9cbiAgcmVhZG9ubHkgcmVub3RpZnlJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIG1vbml0b3IgcmVxdWlyZXMgYSBmdWxsIHdpbmRvdyBvZiBkYXRhIGJlZm9yZSBpdCBpcyBldmFsdWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZUZ1bGxXaW5kb3c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgY29ycmVzcG9uZGluZyBzeW50aGV0aWNzIGNoZWNrXG4gICAqL1xuICByZWFkb25seSBzeW50aGV0aWNzQ2hlY2tJRD86IG51bWJlcjtcblxuICByZWFkb25seSB0aHJlc2hvbGRzPzogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzO1xuXG4gIHJlYWRvbmx5IHRocmVzaG9sZFdpbmRvd3M/OiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3M7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBob3VycyBvZiB0aGUgbW9uaXRvciBub3QgcmVwb3J0aW5nIGRhdGEgYmVmb3JlIGl0IGF1dG9tYXRpY2FsbHkgcmVzb2x2ZXNcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRIPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIHJlLW5vdGlmaWNhdGlvbiBtZXNzYWdlcyBzaG91bGQgYmUgc2VudCBvbiB0aGUgY3VycmVudCBzdGF0dXMgYXQgdGhlIHByb3ZpZGVkIHJlLW5vdGlmaWNhdGlvbiBpbnRlcnZhbC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbm90aWZ5T2NjdXJyZW5jZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlcyBvZiBtb25pdG9yIHN0YXR1c2VzIGZvciB3aGljaCByZS1ub3RpZmljYXRpb24gbWVzc2FnZXMgYXJlIHNlbnQuXG4gICAqL1xuICByZWFkb25seSByZW5vdGlmeVN0YXR1c2VzPzogUmVub3RpZnlTdGF0dXNlcztcblxuICAvKipcbiAgICogSG93IGxvbmcgdGhlIHRlc3Qgc2hvdWxkIGJlIGluIGZhaWx1cmUgYmVmb3JlIGFsZXJ0aW5nIChpbnRlZ2VyLCBudW1iZXIgb2Ygc2Vjb25kcywgbWF4IDcyMDApLlxuICAgKi9cbiAgcmVhZG9ubHkgbWluRmFpbHVyZUR1cmF0aW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGljaCBpbmZvcm1hdGlvbiBzaG91bGQgYmUgYWRkZWQvbGV0dCBvdXQgZnJvbSB0aGUgbm90aWZpY2F0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0LlNIT1dfQUxMfVxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvck5vdGlmaWNhdGlvblByZXNldE5hbWU/OiBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0O1xuXG4gIC8qKlxuICAgKiBUaW1lIChpbiBzZWNvbmRzKSB0byBza2lwIGV2YWx1YXRpb25zIGZvciBuZXcgZ3JvdXBzLiBGb3IgZXhhbXBsZSwgdGhpcyBvcHRpb24gY2FuIGJlIHVzZWQgdG8gc2tpcCBldmFsdWF0aW9ucyBmb3IgbmV3IGhvc3RzIHdoaWxlIHRoZXkgaW5pdGlhbGl6ZS4gTXVzdCBiZSBhIG5vbiBuZWdhdGl2ZSBpbnRlZ2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV3R3JvdXBEZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogTGlzdCBvZiByZXF1ZXN0cyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBtb25pdG9yIHF1ZXJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgdmFyaWFibGVzPzogb2JqZWN0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzIHtcblxuICAvKipcbiAgICpUaHJlc2hvbGQgdmFsdWUgZm9yIHRyaWdnZXJpbmcgYW4gYWxlcnRcbiAgICovXG4gIHJlYWRvbmx5IGNyaXRpY2FsPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGFuIGFsZXJ0IHN0YXRlXG4gICAqL1xuICByZWFkb25seSBjcml0aWNhbFJlY292ZXJ5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGFuIGFsZXJ0IHN0YXRlXG4gICAqL1xuICByZWFkb25seSBvaz86IG51bWJlcjtcblxuICAvKipcbiAgICpUaHJlc2hvbGQgdmFsdWUgZm9yIHRyaWdnZXJpbmcgYSB3YXJuaW5nXG4gICAqL1xuICByZWFkb25seSB3YXJuaW5nPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaHJlc2hvbGQgdmFsdWUgZm9yIHJlY292ZXJpbmcgZnJvbSBhIHdhcm5pbmcgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IHdhcm5pbmdSZWNvdmVyeT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3Mge1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhIG1ldHJpYyBtdXN0IGJlIGFub21hbG91cyBiZWZvcmUgdHJpZ2dlcmluZyBhbiBhbGVydFxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcldpbmRvdz86IHN0cmluZztcblxuICAvKipcbiAgICogSG93IGxvbmcgYW4gYW5vbWFsb3VzIG1ldHJpYyBtdXN0IGJlIG5vcm1hbCBiZWZvcmUgcmVjb3ZlcmluZyBmcm9tIGFuIGFsZXJ0IHN0YXRlXG4gICAqL1xuICByZWFkb25seSByZWNvdmVyeVdpbmRvdz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGFyb3VuZCBEYXRhZG9nJ3MgQ2xvdWRGb3JtYXRpb24gYERhdGFkb2c6Ok1vbml0b3JzOjpNb25pdG9yYCB3aXRoIHNvbWUgUklPIGRlZmF1bHRzIGFwcGxpZWQuXG4gKlxuICogVG8gdXNlIHRoaXMgdGhlIERhdGFkb2cgcmVzb3VyY2VzIGhhdmUgdG8gYmUge0BsaW5rIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2ludGVncmF0aW9ucy9ndWlkZS9hbWF6b25fY2xvdWRmb3JtYXRpb24vXG4gKiB8ZW5hYmxlZCBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gcmVnaXN0cnl9IG9mIHRoZSBjb3JyZXNwb25kaW5nIEFXUyBhY2NvdW50LiBVc3VhbGx5IHRoaXMgaXMgZG9uZVxuICogYXV0b21hdGljYWxseSBieSB0aGUgRGF0YWRvZyBJbnRlZ3JhdGlvbnMgKGFjY291bnQgbW9kdWxlIEFORCBTZXJ2aWNlQ2F0YWxvZykgcHJvdmlkZWQgYnkgQ0xBSUQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhZG9nTW9uaXRvciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IHByaW9yaXR5IG9mIGEgbW9uaXRvclxuICAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUFJJT1JJVFkgPSA0O1xuXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJpb3JpdHk6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWRvZ01vbml0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wcmlvcml0eSA9IHByb3BzLnByaW9yaXR5ID8/IERhdGFkb2dNb25pdG9yLkRFRkFVTFRfUFJJT1JJVFk7XG4gICAgdGhpcy5uYW1lID0gcHJvcHMubmFtZTtcblxuICAgIGNvbnN0IHRlYW1OYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0VGVhbU5hbWVQYXJhbWV0ZXIodGhpcyk7XG4gICAgY29uc3QgdGVhbUlkZW50aWZpZXIgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtSWRlbnRpZmllclBhcmFtZXRlcih0aGlzKTtcbiAgICBjb25zdCBhY2NvdW50TmFtZSA9IFJpb0xhbmRpbmdab25lLmdldEFjY291bnROYW1lUGFyYW1ldGVyKHRoaXMpO1xuXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uID0gcHJvcHMubm90aWZpY2F0aW9uID8gcHJvcHMubm90aWZpY2F0aW9uIDogbmV3IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbigpO1xuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLmpzb25cbiAgICBuZXcgY2RrLkNmblJlc291cmNlKHRoaXMsICdNb25pdG9yJywge1xuICAgICAgdHlwZTogJ0RhdGFkb2c6Ok1vbml0b3JzOjpNb25pdG9yJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgVHlwZTogcHJvcHMubW9uaXRvclR5cGUsXG4gICAgICAgIFF1ZXJ5OiBwcm9wcy5xdWVyeSxcbiAgICAgICAgTmFtZTogYCR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9ICR7cHJvcHMuc2VydmljZU5hbWV9ICR7cHJvcHMubmFtZX1gLFxuICAgICAgICBNZXNzYWdlOiB0aGlzLmNvbmNhdGVuYXRlTWVzc2FnZSh7IG1lc3NhZ2U6IHByb3BzLm1lc3NhZ2UsIG5vdGlmaWNhdGlvbiB9KSxcbiAgICAgICAgUHJpb3JpdHk6IHRoaXMucHJpb3JpdHksXG4gICAgICAgIE9wdGlvbnM6IG1hcE1vbml0b3JPcHRpb25zKHByb3BzLm9wdGlvbk92ZXJyaWRlcyksXG4gICAgICAgIFRhZ3M6IFtcbiAgICAgICAgICAuLi4ocHJvcHMuZXh0cmFUYWdzID8/IFtdKSxcbiAgICAgICAgICBgYWNjb3VudF9pZDoke2Nkay5TdGFjay5vZih0aGlzKS5hY2NvdW50fWAsXG4gICAgICAgICAgYGFjY291bnRfbmFtZToke2FjY291bnROYW1lLnN0cmluZ1ZhbHVlfWAsXG4gICAgICAgICAgYHNlcnZpY2U6JHtwcm9wcy5zZXJ2aWNlTmFtZX1gLFxuICAgICAgICAgIGB0ZWFtOiR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgICBgdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXIuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbmNhdGVuYXRlTWVzc2FnZShwcm9wczoge21lc3NhZ2U6IHN0cmluZzsgbm90aWZpY2F0aW9uOiBJTm90aWZpY2F0aW9ufSkge1xuICAgIHJldHVybiBgJHtwcm9wcy5tZXNzYWdlfVxcblxcbiR7cHJvcHMubm90aWZpY2F0aW9uLmdlbmVyYXRlTWVzc2FnZUFubm90YXRpb24odGhpcyl9YDtcbiAgfVxuXG59XG5cbmZ1bmN0aW9uIG1hcE1vbml0b3JPcHRpb25zKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JPcHRpb25zIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiB7XG4gICAgRW5hYmxlTG9nc1NhbXBsZTogc291cmNlPy5lbmFibGVMb2dzU2FtcGxlLFxuICAgIEVzY2FsYXRpb25NZXNzYWdlOiBzb3VyY2U/LmVzY2FsYXRpb25NZXNzYWdlLFxuICAgIEV2YWx1YXRpb25EZWxheTogc291cmNlPy5ldmFsdWF0aW9uRGVsYXkgPz8gOTAwLFxuICAgIEluY2x1ZGVUYWdzOiBzb3VyY2U/LmluY2x1ZGVUYWdzID8/IHRydWUsXG4gICAgTG9ja2VkOiBzb3VyY2U/LmxvY2tlZCxcbiAgICBNaW5Mb2NhdGlvbkZhaWxlZDogc291cmNlPy5taW5Mb2NhdGlvbkZhaWxlZCxcbiAgICBOZXdIb3N0RGVsYXk6IHNvdXJjZT8ubmV3SG9zdERlbGF5LFxuICAgIE5vRGF0YVRpbWVmcmFtZTogc291cmNlPy5ub0RhdGFUaW1lZnJhbWUsXG4gICAgTm90aWZ5QXVkaXQ6IHNvdXJjZT8ubm90aWZ5QXVkaXQsXG4gICAgTm90aWZ5Tm9EYXRhOiBzb3VyY2U/Lm5vdGlmeU5vRGF0YSA/PyBmYWxzZSxcbiAgICBSZW5vdGlmeUludGVydmFsOiBzb3VyY2U/LnJlbm90aWZ5SW50ZXJ2YWwsXG4gICAgUmVxdWlyZUZ1bGxXaW5kb3c6IHNvdXJjZT8ucmVxdWlyZUZ1bGxXaW5kb3cgPz8gZmFsc2UsXG4gICAgU3ludGhldGljc0NoZWNrSUQ6IHNvdXJjZT8uc3ludGhldGljc0NoZWNrSUQsXG4gICAgVGhyZXNob2xkczogbWFwVGhyZXNob2xkc1Byb3BlcnRpZXMoc291cmNlPy50aHJlc2hvbGRzKSxcbiAgICBUaHJlc2hvbGRXaW5kb3dzOiBtYXBUaHJlc2hvbGRXaW5kb3dzUHJvcGVydGllcyhzb3VyY2U/LnRocmVzaG9sZFdpbmRvd3MpLFxuICAgIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXROYW1lOiBzb3VyY2U/Lm1vbml0b3JOb3RpZmljYXRpb25QcmVzZXROYW1lLFxuICAgIFRpbWVvdXRIOiBzb3VyY2U/LnRpbWVvdXRILFxuICAgIFJlbm90aWZ5T2NjdXJyZW5jZXM6IHNvdXJjZT8ucmVub3RpZnlPY2N1cnJlbmNlcyxcbiAgICBSZW5vdGlmeVN0YXR1c2VzOiBzb3VyY2U/LnJlbm90aWZ5U3RhdHVzZXMsXG4gICAgTWluRmFpbHVyZUR1cmF0aW9uOiBzb3VyY2U/Lm1pbkZhaWx1cmVEdXJhdGlvbixcbiAgICBOZXdHcm91cERlbGF5OiBzb3VyY2U/Lm5ld0dyb3VwRGVsYXksXG4gICAgVmFyaWFibGVzOiBzb3VyY2U/LnZhcmlhYmxlcyxcbiAgfTtcbn07XG5cblxuZnVuY3Rpb24gbWFwVGhyZXNob2xkc1Byb3BlcnRpZXMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZHMgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHNvdXJjZSA/IHtcbiAgICBDcml0aWNhbDogc291cmNlLmNyaXRpY2FsLFxuICAgIENyaXRpY2FsUmVjb3Zlcnk6IHNvdXJjZS5jcml0aWNhbFJlY292ZXJ5LFxuICAgIE9LOiBzb3VyY2Uub2ssXG4gICAgV2FybmluZzogc291cmNlLndhcm5pbmcsXG4gICAgV2FybmluZ1JlY292ZXJ5OiBzb3VyY2Uud2FybmluZ1JlY292ZXJ5LFxuICB9IDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBtYXBUaHJlc2hvbGRXaW5kb3dzUHJvcGVydGllcyhzb3VyY2U6IENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkV2luZG93cyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gc291cmNlID8ge1xuICAgIFRyaWdnZXJXaW5kb3c6IHNvdXJjZS50cmlnZ2VyV2luZG93LFxuICAgIFJlY292ZXJ5V2luZG93OiBzb3VyY2UucmVjb3ZlcnlXaW5kb3csXG4gIH0gOiB1bmRlZmluZWQ7XG59XG4iXX0=
|
package/lib/watchful/alb.js
CHANGED
|
@@ -7,6 +7,7 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
|
7
7
|
const cw = require("aws-cdk-lib/aws-cloudwatch");
|
|
8
8
|
const elbv2 = require("aws-cdk-lib/aws-elasticloadbalancingv2");
|
|
9
9
|
const constructs_1 = require("constructs");
|
|
10
|
+
const monitor_type_1 = require("./monitor-type");
|
|
10
11
|
/**
|
|
11
12
|
* A Construct which creates the following alarms for application load balancers:
|
|
12
13
|
*
|
|
@@ -18,8 +19,8 @@ class WatchApplicationLoadBalancer extends constructs_1.Construct {
|
|
|
18
19
|
super(scope, id);
|
|
19
20
|
this.watchful = props.watchful;
|
|
20
21
|
this.alb = props.alb;
|
|
21
|
-
this.watchful.createAlarm(this,
|
|
22
|
-
this.watchful.createAlarm(this,
|
|
22
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.REJECTED_CONNECTION, this.createRejectedConnectionMonitor(props.rejectedConnectionPerMinuteThreshold));
|
|
23
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.HTTP_CODE5XX, this.createHttpCode5xxMonitor(props.http5xxPerMinuteThreshold));
|
|
23
24
|
}
|
|
24
25
|
createRejectedConnectionMonitor(rejectedConnectionPerMinuteThreshold = 0) {
|
|
25
26
|
const rejectedMetric = this.alb.metricRejectedConnectionCount().with({ period: aws_cdk_lib_1.Duration.seconds(60) });
|
|
@@ -49,4 +50,4 @@ class WatchApplicationLoadBalancer extends constructs_1.Construct {
|
|
|
49
50
|
exports.WatchApplicationLoadBalancer = WatchApplicationLoadBalancer;
|
|
50
51
|
_a = JSII_RTTI_SYMBOL_1;
|
|
51
52
|
WatchApplicationLoadBalancer[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.WatchApplicationLoadBalancer", version: "0.0.0" };
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhdGNoZnVsL2FsYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QyxpREFBaUQ7QUFDakQsZ0VBQWdFO0FBQ2hFLDJDQUF1QztBQUV2QyxpREFBNkM7QUFzQzdDOzs7OztHQUtHO0FBQ0gsTUFBYSw0QkFBNkIsU0FBUSxzQkFBUztJQUl6RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdDO1FBQ2hGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUVyQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLDBCQUFXLENBQUMsbUJBQW1CLEVBQy9CLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FDakYsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUN2QixJQUFJLEVBQ0osMEJBQVcsQ0FBQyxZQUFZLEVBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FDL0QsQ0FBQztJQUNKLENBQUM7SUFFTywrQkFBK0IsQ0FBQyxvQ0FBb0MsR0FBRyxDQUFDO1FBQzlFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZHLE9BQU87WUFDTCxNQUFNLEVBQUUsY0FBYztZQUN0QixnQkFBZ0IsRUFBRSxRQUFRLG9DQUFvQyxrQ0FBa0M7WUFDaEcsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQjtZQUNoRSxTQUFTLEVBQUUsb0NBQW9DO1lBQy9DLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhO1lBQ25ELGlCQUFpQixFQUFFLENBQUM7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyx5QkFBeUIsR0FBRyxDQUFDO1FBQzVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHO2FBQzNCLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO2FBQ2xELElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsT0FBTztZQUNMLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLGdCQUFnQixFQUFFLFFBQVEseUJBQXlCLDBCQUEwQjtZQUM3RSxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ2hFLFNBQVMsRUFBRSx5QkFBeUI7WUFDcEMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWE7WUFDbkQsaUJBQWlCLEVBQUUsQ0FBQztTQUNyQixDQUFDO0lBQ0osQ0FBQzs7QUE3Q0gsb0VBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjdyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBlbGJ2MiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IE1ldHJpY0FsYXJtUHJvcHMgfSBmcm9tICcuL21ldHJpYy1hbGFybSc7XG5pbXBvcnQgeyBNb25pdG9yVHlwZSB9IGZyb20gJy4vbW9uaXRvci10eXBlJztcbmltcG9ydCB7IElXYXRjaGZ1bCB9IGZyb20gJy4vd2F0Y2hmdWwnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGRlZmluaW5nIGFsYXJtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgICAqIE51bWJlciBvZiBhbGxvd2VkIHJlamVjdGVkIGNvbm5lY3Rpb25zIHBlciBtaW51dGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDBcbiAgICAgKi9cbiAgcmVhZG9ubHkgcmVqZWN0ZWRDb25uZWN0aW9uUGVyTWludXRlVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgICAqIE51bWJlciBvZiBhbGxvd2VkIEhUVFAgNXh4IHJlcXVlc3RzIHBlciBtaW51dGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDBcbiAgICAgKi9cbiAgcmVhZG9ubHkgaHR0cDV4eFBlck1pbnV0ZVRocmVzaG9sZD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIFdhdGNoQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMgZXh0ZW5kcyBXYXRjaEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgICAqIFRoZSByZWZlcmVuY2UgdG8gSVdhdGNoZnVsIGNsYXNzLiBVc2VkIGludGVybmFsbHkuXG4gICAgICovXG4gIHJlYWRvbmx5IHdhdGNoZnVsOiBJV2F0Y2hmdWw7XG5cbiAgLyoqXG4gICAgICogVGhlIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jZXIgdGhhdCBzaG91bGQgYmUgd2F0Y2hlZC5cbiAgICAgKiBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgICAqL1xuICByZWFkb25seSBhbGI6IGVsYnYyLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyO1xufVxuXG4vKipcbiAqIEEgQ29uc3RydWN0IHdoaWNoIGNyZWF0ZXMgdGhlIGZvbGxvd2luZyBhbGFybXMgZm9yIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jZXJzOlxuICpcbiAqIC0gcmVqZWN0ZWQgY29ubmVjdGlvbnNcbiAqIC0gaHR0cC1jb2RlIDV4eFxuICovXG5leHBvcnQgY2xhc3MgV2F0Y2hBcHBsaWNhdGlvbkxvYWRCYWxhbmNlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hmdWw6IElXYXRjaGZ1bDtcbiAgcHJpdmF0ZSByZWFkb25seSBhbGI6IGVsYnYyLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXYXRjaEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy53YXRjaGZ1bCA9IHByb3BzLndhdGNoZnVsO1xuICAgIHRoaXMuYWxiID0gcHJvcHMuYWxiO1xuXG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybSh0aGlzLFxuICAgICAgTW9uaXRvclR5cGUuUkVKRUNURURfQ09OTkVDVElPTixcbiAgICAgIHRoaXMuY3JlYXRlUmVqZWN0ZWRDb25uZWN0aW9uTW9uaXRvcihwcm9wcy5yZWplY3RlZENvbm5lY3Rpb25QZXJNaW51dGVUaHJlc2hvbGQpLFxuICAgICk7XG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICBNb25pdG9yVHlwZS5IVFRQX0NPREU1WFgsXG4gICAgICB0aGlzLmNyZWF0ZUh0dHBDb2RlNXh4TW9uaXRvcihwcm9wcy5odHRwNXh4UGVyTWludXRlVGhyZXNob2xkKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZWplY3RlZENvbm5lY3Rpb25Nb25pdG9yKHJlamVjdGVkQ29ubmVjdGlvblBlck1pbnV0ZVRocmVzaG9sZCA9IDApOiBNZXRyaWNBbGFybVByb3BzIHtcbiAgICBjb25zdCByZWplY3RlZE1ldHJpYyA9IHRoaXMuYWxiLm1ldHJpY1JlamVjdGVkQ29ubmVjdGlvbkNvdW50KCkud2l0aCh7IHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MCkgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldHJpYzogcmVqZWN0ZWRNZXRyaWMsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgT3ZlciAke3JlamVjdGVkQ29ubmVjdGlvblBlck1pbnV0ZVRocmVzaG9sZH0gcmVqZWN0ZWQgY29ubmVjdGlvbnMgcGVyIG1pbnV0ZWAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGN3LkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiByZWplY3RlZENvbm5lY3Rpb25QZXJNaW51dGVUaHJlc2hvbGQsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjdy5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIdHRwQ29kZTV4eE1vbml0b3IoaHR0cDV4eFBlck1pbnV0ZVRocmVzaG9sZCA9IDApOiBNZXRyaWNBbGFybVByb3BzIHtcbiAgICBjb25zdCBodHRwNXh4TWV0cmljID0gdGhpcy5hbGJcbiAgICAgIC5tZXRyaWNIdHRwQ29kZUVsYihlbGJ2Mi5IdHRwQ29kZUVsYi5FTEJfNVhYX0NPVU5UKVxuICAgICAgLndpdGgoeyBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjApIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IGh0dHA1eHhNZXRyaWMsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgT3ZlciAke2h0dHA1eHhQZXJNaW51dGVUaHJlc2hvbGR9IDV4eCByZXF1ZXN0cyBwZXIgbWludXRlYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IGh0dHA1eHhQZXJNaW51dGVUaHJlc2hvbGQsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjdy5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -6,6 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
7
|
const cw = require("aws-cdk-lib/aws-cloudwatch");
|
|
8
8
|
const constructs_1 = require("constructs");
|
|
9
|
+
const monitor_type_1 = require("./monitor-type");
|
|
9
10
|
/**
|
|
10
11
|
* A Construct which creates the following alarms for cloudfront distributions:
|
|
11
12
|
*
|
|
@@ -17,8 +18,8 @@ class WatchCloudfrontDistribution extends constructs_1.Construct {
|
|
|
17
18
|
super(scope, id);
|
|
18
19
|
this.watchful = props.watchful;
|
|
19
20
|
this.cf = props.cf;
|
|
20
|
-
this.watchful.createAlarm(this,
|
|
21
|
-
this.watchful.createAlarm(this,
|
|
21
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.HTTP_CODE5XX, this.create5xxMonitor(props.errorsPerMinuteThreshold));
|
|
22
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.CACHE_HIT_RATE, this.createCacheHitMonitor(props.cacheHitPercent));
|
|
22
23
|
}
|
|
23
24
|
create5xxMonitor(errorsPerMinuteThreshold = 0) {
|
|
24
25
|
const errorMetrics5xx = new cw.Metric({
|
|
@@ -62,4 +63,4 @@ class WatchCloudfrontDistribution extends constructs_1.Construct {
|
|
|
62
63
|
exports.WatchCloudfrontDistribution = WatchCloudfrontDistribution;
|
|
63
64
|
_a = JSII_RTTI_SYMBOL_1;
|
|
64
65
|
WatchCloudfrontDistribution[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.WatchCloudfrontDistribution", version: "0.0.0" };
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93YXRjaGZ1bC9jbG91ZGZyb250LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQXVDO0FBRXZDLGlEQUFpRDtBQUNqRCwyQ0FBdUM7QUFFdkMsaURBQTZDO0FBMEM3Qzs7Ozs7R0FLRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsc0JBQVM7SUFJeEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QztRQUMvRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLDBCQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO1FBQ2pILElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSwwQkFBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVPLGdCQUFnQixDQUFDLHdCQUF3QixHQUFHLENBQUM7UUFDbkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ3BDLFVBQVUsRUFBRSxjQUFjO1lBQzFCLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM3QixTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQy9CLGFBQWEsRUFBRTtnQkFDYixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYzthQUN2QztTQUNGLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxNQUFNLEVBQUUsZUFBZTtZQUN2QixnQkFBZ0IsRUFBRSxRQUFRLHdCQUF3Qix3QkFBd0I7WUFDMUUsU0FBUyxFQUFFLHdCQUF3QjtZQUNuQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ2hFLGlCQUFpQixFQUFFLENBQUM7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxxQkFBcUIsR0FBRyxFQUFFO1FBQ3RELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ3ZDLFVBQVUsRUFBRSxjQUFjO1lBQzFCLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM3QixTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQy9CLGFBQWEsRUFBRTtnQkFDYixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYzthQUN2QztTQUNGLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxNQUFNLEVBQUUsa0JBQWtCO1lBQzFCLGdCQUFnQixFQUFFLDRCQUE0QixxQkFBcUIsRUFBRTtZQUNyRSxTQUFTLEVBQUUscUJBQXFCO1lBQ2hDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUI7WUFDN0QsaUJBQWlCLEVBQUUsQ0FBQztTQUNyQixDQUFDO0lBQ0osQ0FBQzs7QUFuREgsa0VBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCAqIGFzIGN3IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTWV0cmljQWxhcm1Qcm9wcyB9IGZyb20gJy4vbWV0cmljLWFsYXJtJztcbmltcG9ydCB7IE1vbml0b3JUeXBlIH0gZnJvbSAnLi9tb25pdG9yLXR5cGUnO1xuaW1wb3J0IHsgSVdhdGNoZnVsIH0gZnJvbSAnLi93YXRjaGZ1bCc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZGVmaW5pbmcgYWxhcm1zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoQ2xvdWRmcm9udERpc3RyaWJ1dGlvbk9wdGlvbnMge1xuICAvKipcbiAgICAgKiBOdW1iZXIgb2YgYWxsb3dlZCBlcnJvcnMgcGVyIG1pbnV0ZS4gSWYgdGhlcmUgYXJlIG1vcmUgZXJyb3JzIHRoYW4gdGhhdCwgYW4gYWxhcm0gd2lsbCB0cmlnZ2VyLlxuICAgICAqXG4gICAgICogQGRlZmF1bHRWYWx1ZSAwXG4gICAgICovXG4gIHJlYWRvbmx5IGVycm9yc1Blck1pbnV0ZVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICAgKiBUaHJlc2hvbGQgZm9yIHRoZSBjYWNoZSBoaXQgYWxhcm0gYXMgcGVyY2VudGFnZSBvZiB0aGUgQ2xvdWRmcm9udCBEaXN0cmlidXRpb25cbiAgICAgKlxuICAgICAqIElmIHRoaXMgaXMgc2V0IHRvIDQwJSwgdGhlIGFsYXJtIHdpbGwgYmUgc2V0IHdoZW4gdGhlIGNhY2hlIGhpdCBwZXJlbnRhZ2UgaXNcbiAgICAgKiBsb3dlciB0aGFuIHRoZSB0aHJlc2hvbGQgc2V0dGluZ1xuICAgICAqXG4gICAgICogQGRlZmF1bHRWYWx1ZSA0MFxuICAgICAqL1xuICByZWFkb25seSBjYWNoZUhpdFBlcmNlbnQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBXYXRjaENsb3VkZnJvbnREaXN0cmlidXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaENsb3VkZnJvbnREaXN0cmlidXRpb25Qcm9wcyBleHRlbmRzIFdhdGNoQ2xvdWRmcm9udERpc3RyaWJ1dGlvbk9wdGlvbnMge1xuICAvKipcbiAgICAgKiBUaGUgcmVmZXJlbmNlIHRvIElXYXRjaGZ1bCBjbGFzcy4gVXNlZCBpbnRlcm5hbGx5LlxuICAgICAqL1xuICByZWFkb25seSB3YXRjaGZ1bDogSVdhdGNoZnVsO1xuXG4gIC8qKlxuICAgICAqIFRoZSBjbG91ZGZyb250IGRpc3RyaWJ1dGlvbiB0aGF0IHNob3VsZCBiZSB3YXRjaGVkLlxuICAgICAqIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAgICovXG4gIHJlYWRvbmx5IGNmOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbjtcbn1cblxuXG4vKipcbiAqIEEgQ29uc3RydWN0IHdoaWNoIGNyZWF0ZXMgdGhlIGZvbGxvd2luZyBhbGFybXMgZm9yIGNsb3VkZnJvbnQgZGlzdHJpYnV0aW9uczpcbiAqXG4gKiAtIGh0dHAtY29kZSA1eHhcbiAqIC0gbG93IGNhY2hlIGhpdHNcbiAqL1xuZXhwb3J0IGNsYXNzIFdhdGNoQ2xvdWRmcm9udERpc3RyaWJ1dGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hmdWw6IElXYXRjaGZ1bDtcbiAgcHJpdmF0ZSByZWFkb25seSBjZjogY2xvdWRmcm9udC5EaXN0cmlidXRpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdhdGNoQ2xvdWRmcm9udERpc3RyaWJ1dGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMud2F0Y2hmdWwgPSBwcm9wcy53YXRjaGZ1bDtcbiAgICB0aGlzLmNmID0gcHJvcHMuY2Y7XG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybSh0aGlzLCBNb25pdG9yVHlwZS5IVFRQX0NPREU1WFgsIHRoaXMuY3JlYXRlNXh4TW9uaXRvcihwcm9wcy5lcnJvcnNQZXJNaW51dGVUaHJlc2hvbGQpKTtcbiAgICB0aGlzLndhdGNoZnVsLmNyZWF0ZUFsYXJtKHRoaXMsIE1vbml0b3JUeXBlLkNBQ0hFX0hJVF9SQVRFLCB0aGlzLmNyZWF0ZUNhY2hlSGl0TW9uaXRvcihwcm9wcy5jYWNoZUhpdFBlcmNlbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlNXh4TW9uaXRvcihlcnJvcnNQZXJNaW51dGVUaHJlc2hvbGQgPSAwKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgZXJyb3JNZXRyaWNzNXh4ID0gbmV3IGN3Lk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiAnNXh4RXJyb3JSYXRlJyxcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9DbG91ZEZyb250JyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MDApLFxuICAgICAgc3RhdGlzdGljOiBjdy5TdGF0aXN0aWMuQVZFUkFHRSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgUmVnaW9uOiAnR2xvYmFsJyxcbiAgICAgICAgRGlzdHJpYnV0aW9uSWQ6IHRoaXMuY2YuZGlzdHJpYnV0aW9uSWQsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IGVycm9yTWV0cmljczV4eCxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBPdmVyICR7ZXJyb3JzUGVyTWludXRlVGhyZXNob2xkfSA1eHggZXJyb3JzIHBlciBtaW51dGVgLFxuICAgICAgdGhyZXNob2xkOiBlcnJvcnNQZXJNaW51dGVUaHJlc2hvbGQsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGN3LkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2FjaGVIaXRNb25pdG9yKGNhY2hlSGl0UmF0ZVRocmVzaG9sZCA9IDQwKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgY2FjaGVIaXRSYXRlTWV0cmljID0gbmV3IGN3Lk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiAnQ2FjaGVIaXRSYXRlJyxcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9DbG91ZEZyb250JyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MDApLFxuICAgICAgc3RhdGlzdGljOiBjdy5TdGF0aXN0aWMuQVZFUkFHRSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgUmVnaW9uOiAnR2xvYmFsJyxcbiAgICAgICAgRGlzdHJpYnV0aW9uSWQ6IHRoaXMuY2YuZGlzdHJpYnV0aW9uSWQsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IGNhY2hlSGl0UmF0ZU1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBDYWNoZSBoaXQgcmF0ZSBsZXNzIHRoYW4gJHtjYWNoZUhpdFJhdGVUaHJlc2hvbGR9YCxcbiAgICAgIHRocmVzaG9sZDogY2FjaGVIaXRSYXRlVGhyZXNob2xkLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjdy5Db21wYXJpc29uT3BlcmF0b3IuTEVTU19USEFOX1RIUkVTSE9MRCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
package/lib/watchful/docdb.js
CHANGED
|
@@ -6,6 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
7
|
const cw = require("aws-cdk-lib/aws-cloudwatch");
|
|
8
8
|
const constructs_1 = require("constructs");
|
|
9
|
+
const monitor_type_1 = require("./monitor-type");
|
|
9
10
|
/**
|
|
10
11
|
* A Construct which creates the following alarms for DocumentDb clusters:
|
|
11
12
|
*
|
|
@@ -18,10 +19,10 @@ class WatchDocDbCluster extends constructs_1.Construct {
|
|
|
18
19
|
super(scope, id);
|
|
19
20
|
this.watchful = props.watchful;
|
|
20
21
|
this.docDb = props.docDb;
|
|
21
|
-
this.watchful.createAlarm(this,
|
|
22
|
-
this.watchful.createAlarm(this,
|
|
23
|
-
this.watchful.createAlarm(this,
|
|
24
|
-
this.watchful.createAlarm(this,
|
|
22
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.CPU_UTILIZATION, this.createCpuUtilizationTooHighAlarm(props.cpuUtilizationThreshold));
|
|
23
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.FREEABLE_MEMORY, this.createFreeableMemoryTooLowAlarm(props.freeableMemoryThresholdInByte));
|
|
24
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.SWAP_USAGE, this.createSwapUsageTooHighAlarm(props.swapUsageThresholdInByte));
|
|
25
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.FREE_LOCAL_STORAGE, this.createFreeLocalStorageTooLowAlarm(props.freeLocalStorageInByte));
|
|
25
26
|
}
|
|
26
27
|
createCpuUtilizationTooHighAlarm(cpuUtilizationThreshold = 80) {
|
|
27
28
|
const docDbMetric = new cw.Metric({
|
|
@@ -99,4 +100,4 @@ class WatchDocDbCluster extends constructs_1.Construct {
|
|
|
99
100
|
exports.WatchDocDbCluster = WatchDocDbCluster;
|
|
100
101
|
_a = JSII_RTTI_SYMBOL_1;
|
|
101
102
|
WatchDocDbCluster[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.WatchDocDbCluster", version: "0.0.0" };
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWwvZG9jZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBdUM7QUFDdkMsaURBQWlEO0FBRWpELDJDQUF1QztBQWtEdkM7Ozs7OztHQU1HO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQUk5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUV6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLGdCQUFnQixFQUNoQixJQUFJLENBQUMsZ0NBQWdDLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQ3JFLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLHNCQUFzQixFQUN0QixJQUFJLENBQUMsK0JBQStCLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQzFFLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLGtCQUFrQixFQUNsQixJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQ2pFLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLHdCQUF3QixFQUN4QixJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQ3JFLENBQUM7SUFDSixDQUFDO0lBRU8sZ0NBQWdDLENBQUMsdUJBQXVCLEdBQUcsRUFBRTtRQUNuRSxNQUFNLFdBQVcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDaEMsVUFBVSxFQUFFLGdCQUFnQjtZQUM1QixTQUFTLEVBQUUsV0FBVztZQUN0QixNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzdCLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU87WUFDL0IsYUFBYSxFQUFFO2dCQUNiLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCO2FBQ2xEO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTztZQUNMLE1BQU0sRUFBRSxXQUFXO1lBQ25CLGdCQUFnQixFQUFFLGlFQUFpRTtZQUNuRixrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ2hFLFNBQVMsRUFBRSx1QkFBdUI7WUFDbEMsaUJBQWlCLEVBQUUsQ0FBQztTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVPLCtCQUErQixDQUFDLDZCQUE2QixHQUFHLFFBQVE7UUFDOUUsTUFBTSxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxnQkFBZ0I7WUFDNUIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM3QixTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQy9CLGFBQWEsRUFBRTtnQkFDYixtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQjthQUNsRDtTQUNGLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxNQUFNLEVBQUUsV0FBVztZQUNuQixnQkFBZ0IsRUFBRSx3RkFBd0Y7WUFDMUcsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQjtZQUM3RCxTQUFTLEVBQUUsNkJBQTZCO1lBQ3hDLGlCQUFpQixFQUFFLENBQUM7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFFTywyQkFBMkIsQ0FBQyx3QkFBd0IsR0FBRyxTQUFTO1FBQ3RFLE1BQU0sV0FBVyxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNoQyxVQUFVLEVBQUUsV0FBVztZQUN2QixTQUFTLEVBQUUsV0FBVztZQUN0QixNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzdCLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU87WUFDL0IsYUFBYSxFQUFFO2dCQUNiLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCO2FBQ2xEO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTztZQUNMLE1BQU0sRUFBRSxXQUFXO1lBQ25CLGdCQUFnQixFQUFFLG9GQUFvRjtZQUN0RyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ2hFLFNBQVMsRUFBRSx3QkFBd0I7WUFDbkMsaUJBQWlCLEVBQUUsQ0FBQztTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVPLGlDQUFpQyxDQUFDLHNCQUFzQixHQUFHLFVBQVU7UUFDM0UsTUFBTSxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxrQkFBa0I7WUFDOUIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM3QixTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQy9CLGFBQWEsRUFBRTtnQkFDYixtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQjthQUNsRDtTQUNGLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxNQUFNLEVBQUUsV0FBVztZQUNuQixnQkFBZ0IsRUFBRSx5RUFBeUU7WUFDM0Ysa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQjtZQUM3RCxTQUFTLEVBQUUsc0JBQXNCO1lBQ2pDLGlCQUFpQixFQUFFLENBQUM7U0FDckIsQ0FBQztJQUNKLENBQUM7O0FBdEdILDhDQXVHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY3cgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgZG9jZGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWRvY2RiJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTWV0cmljQWxhcm1Qcm9wcyB9IGZyb20gJy4vbWV0cmljLWFsYXJtJztcbmltcG9ydCB7IElXYXRjaGZ1bCB9IGZyb20gJy4vd2F0Y2hmdWwnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGRlZmluaW5nIGFsYXJtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaERvY0RiQ2x1c3Rlck9wdGlvbnMge1xuICAvKipcbiAgICAgKiBUaHJlc2hvbGQgb2YgZGF0YWJhc2UgY3B1IHV0aWxpemF0aW9uLlxuICAgICAqXG4gICAgICogQGRlZmF1bHRWYWx1ZSA4MFxuICAgICAqL1xuICByZWFkb25seSBjcHVVdGlsaXphdGlvblRocmVzaG9sZD86IG51bWJlcjtcbiAgLyoqXG4gICAgICogTWluaW11bSBkYXRhYmFzZSBmcmVlYWJsZSBtZW1vcnkgaW4gYnl0ZXMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDY0MDAwMDAwICg2NCBNZWdhYnl0ZSlcbiAgICAgKi9cbiAgcmVhZG9ubHkgZnJlZWFibGVNZW1vcnlUaHJlc2hvbGRJbkJ5dGU/OiBudW1iZXI7XG4gIC8qKlxuICAgICAqIFRocmVzaG9sZCBvZiBkYXRhYmFzZSBzd2FwIHVzYWdlXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDI1NjAwMDAwMCAoMjU2IE1lZ2FieXRlKVxuICAgICAqL1xuICByZWFkb25seSBzd2FwVXNhZ2VUaHJlc2hvbGRJbkJ5dGU/OiBudW1iZXI7XG4gIC8qKlxuICAgICAqIE1pbmltdW0gZGF0YWJhc2UgZnJlZSBsb2NhbCBzdG9yYWdlIHNwYWNlXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDIwMDAwMDAwMDAgKDIgR2lnYWJ5dGUpXG4gICAgICovXG4gIHJlYWRvbmx5IGZyZWVMb2NhbFN0b3JhZ2VJbkJ5dGU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBXYXRjaERvY0RiQ2x1c3RlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoRG9jRGJDbHVzdGVyUHJvcHMgZXh0ZW5kcyBXYXRjaERvY0RiQ2x1c3Rlck9wdGlvbnMge1xuICAvKipcbiAgICAgKiBUaGUgcmVmZXJlbmNlIHRvIElXYXRjaGZ1bCBjbGFzcy4gVXNlZCBpbnRlcm5hbGx5LlxuICAgICAqL1xuICByZWFkb25seSB3YXRjaGZ1bDogSVdhdGNoZnVsO1xuXG4gIC8qKlxuICAgICAqIFRoZSBEb2NEQiBjbHVzdGVyIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQuXG4gICAgICogW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICAgKi9cbiAgcmVhZG9ubHkgZG9jRGI6IGRvY2RiLkRhdGFiYXNlQ2x1c3Rlcjtcbn1cblxuLyoqXG4gKiBBIENvbnN0cnVjdCB3aGljaCBjcmVhdGVzIHRoZSBmb2xsb3dpbmcgYWxhcm1zIGZvciBEb2N1bWVudERiIGNsdXN0ZXJzOlxuICpcbiAqIC0gZnJlZWFibGUgbWVtb3J5XG4gKiAtIHN3YXAgdXNhZ2VcbiAqIC0gZnJlZSBsb2NhbCBzdG9yYWdlXG4gKi9cbmV4cG9ydCBjbGFzcyBXYXRjaERvY0RiQ2x1c3RlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hmdWw6IElXYXRjaGZ1bDtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2NEYjogZG9jZGIuRGF0YWJhc2VDbHVzdGVyO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXYXRjaERvY0RiQ2x1c3RlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMud2F0Y2hmdWwgPSBwcm9wcy53YXRjaGZ1bDtcbiAgICB0aGlzLmRvY0RiID0gcHJvcHMuZG9jRGI7XG5cbiAgICB0aGlzLndhdGNoZnVsLmNyZWF0ZUFsYXJtKHRoaXMsXG4gICAgICAnQ3B1VXRpbGl6YXRpb24nLFxuICAgICAgdGhpcy5jcmVhdGVDcHVVdGlsaXphdGlvblRvb0hpZ2hBbGFybShwcm9wcy5jcHVVdGlsaXphdGlvblRocmVzaG9sZCksXG4gICAgKTtcbiAgICB0aGlzLndhdGNoZnVsLmNyZWF0ZUFsYXJtKHRoaXMsXG4gICAgICAnRnJlZWFibGVNZW1vcnlUb29Mb3cnLFxuICAgICAgdGhpcy5jcmVhdGVGcmVlYWJsZU1lbW9yeVRvb0xvd0FsYXJtKHByb3BzLmZyZWVhYmxlTWVtb3J5VGhyZXNob2xkSW5CeXRlKSxcbiAgICApO1xuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlQWxhcm0odGhpcyxcbiAgICAgICdTd2FwVXNhZ2VUb29IaWdoJyxcbiAgICAgIHRoaXMuY3JlYXRlU3dhcFVzYWdlVG9vSGlnaEFsYXJtKHByb3BzLnN3YXBVc2FnZVRocmVzaG9sZEluQnl0ZSksXG4gICAgKTtcbiAgICB0aGlzLndhdGNoZnVsLmNyZWF0ZUFsYXJtKHRoaXMsXG4gICAgICAnRnJlZUxvY2FsU3RvcmFnZVRvb0xvdycsXG4gICAgICB0aGlzLmNyZWF0ZUZyZWVMb2NhbFN0b3JhZ2VUb29Mb3dBbGFybShwcm9wcy5mcmVlTG9jYWxTdG9yYWdlSW5CeXRlKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDcHVVdGlsaXphdGlvblRvb0hpZ2hBbGFybShjcHVVdGlsaXphdGlvblRocmVzaG9sZCA9IDgwKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgZG9jRGJNZXRyaWMgPSBuZXcgY3cuTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6ICdDUFVVdGlsaXphdGlvbicsXG4gICAgICBuYW1lc3BhY2U6ICdBV1MvRG9jREInLFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwMCksXG4gICAgICBzdGF0aXN0aWM6IGN3LlN0YXRpc3RpYy5BVkVSQUdFLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBEQkNsdXN0ZXJJZGVudGlmaWVyOiB0aGlzLmRvY0RiLmNsdXN0ZXJJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBkb2NEYk1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246ICdBdmVyYWdlIGRhdGFiYXNlIENQVSB1dGlsaXphdGlvbiBvdmVyIGxhc3QgMTAgbWludXRlcyB0b28gaGlnaC4nLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjdy5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogY3B1VXRpbGl6YXRpb25UaHJlc2hvbGQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGcmVlYWJsZU1lbW9yeVRvb0xvd0FsYXJtKGZyZWVhYmxlTWVtb3J5VGhyZXNob2xkSW5CeXRlID0gNjQwMDAwMDApOiBNZXRyaWNBbGFybVByb3BzIHtcbiAgICBjb25zdCBkb2NEYk1ldHJpYyA9IG5ldyBjdy5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogJ0ZyZWVhYmxlTWVtb3J5JyxcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9Eb2NEQicsXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjAwKSxcbiAgICAgIHN0YXRpc3RpYzogY3cuU3RhdGlzdGljLkFWRVJBR0UsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIERCQ2x1c3RlcklkZW50aWZpZXI6IHRoaXMuZG9jRGIuY2x1c3RlcklkZW50aWZpZXIsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IGRvY0RiTWV0cmljLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogJ0F2ZXJhZ2UgZGF0YWJhc2UgZnJlZWFibGUgbWVtb3J5IG92ZXIgbGFzdCAxMCBtaW51dGVzIHRvbyBsb3csIHBlcmZvcm1hbmNlIG1heSBzdWZmZXIuJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IGZyZWVhYmxlTWVtb3J5VGhyZXNob2xkSW5CeXRlLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3dhcFVzYWdlVG9vSGlnaEFsYXJtKHN3YXBVc2FnZVRocmVzaG9sZEluQnl0ZSA9IDI1NjAwMDAwMCk6IE1ldHJpY0FsYXJtUHJvcHMge1xuICAgIGNvbnN0IGRvY0RiTWV0cmljID0gbmV3IGN3Lk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiAnU3dhcFVzYWdlJyxcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9Eb2NEQicsXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjAwKSxcbiAgICAgIHN0YXRpc3RpYzogY3cuU3RhdGlzdGljLkFWRVJBR0UsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIERCQ2x1c3RlcklkZW50aWZpZXI6IHRoaXMuZG9jRGIuY2x1c3RlcklkZW50aWZpZXIsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IGRvY0RiTWV0cmljLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogJ0F2ZXJhZ2UgZGF0YWJhc2Ugc3dhcCB1c2FnZSBvdmVyIGxhc3QgMTAgbWludXRlcyB0b28gaGlnaCwgcGVyZm9ybWFuY2UgbWF5IHN1ZmZlci4nLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjdy5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogc3dhcFVzYWdlVGhyZXNob2xkSW5CeXRlLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnJlZUxvY2FsU3RvcmFnZVRvb0xvd0FsYXJtKGZyZWVMb2NhbFN0b3JhZ2VJbkJ5dGUgPSAyMDAwMDAwMDAwKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgZG9jRGJNZXRyaWMgPSBuZXcgY3cuTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6ICdGcmVlTG9jYWxTdG9yYWdlJyxcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9Eb2NEQicsXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjAwKSxcbiAgICAgIHN0YXRpc3RpYzogY3cuU3RhdGlzdGljLkFWRVJBR0UsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIERCQ2x1c3RlcklkZW50aWZpZXI6IHRoaXMuZG9jRGIuY2x1c3RlcklkZW50aWZpZXIsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IGRvY0RiTWV0cmljLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogJ0F2ZXJhZ2UgZGF0YWJhc2UgZnJlZSBsb2NhbCBzdG9yYWdlIHNwYWNlIG92ZXIgbGFzdCAxMCBtaW51dGVzIHRvbyBsb3cuJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IGZyZWVMb2NhbFN0b3JhZ2VJbkJ5dGUsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWwvZG9jZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBdUM7QUFDdkMsaURBQWlEO0FBRWpELDJDQUF1QztBQUV2QyxpREFBNkM7QUFpRDdDOzs7Ozs7R0FNRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsc0JBQVM7SUFJOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2QjtRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFFekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUM1QiwwQkFBVyxDQUFDLGVBQWUsRUFDM0IsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUNyRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUM1QiwwQkFBVyxDQUFDLGVBQWUsRUFDM0IsSUFBSSxDQUFDLCtCQUErQixDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUMxRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUM1QiwwQkFBVyxDQUFDLFVBQVUsRUFDdEIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUNqRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUM1QiwwQkFBVyxDQUFDLGtCQUFrQixFQUM5QixJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQ3JFLENBQUM7SUFDSixDQUFDO0lBRU8sZ0NBQWdD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LGlCQUFpQixFQUFFLENBQUM7U0FDckIsQ0FBQztJQUNKLENBQUM7O0FBdEdILDhDQXVHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY3cgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgZG9jZGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWRvY2RiJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTWV0cmljQWxhcm1Qcm9wcyB9IGZyb20gJy4vbWV0cmljLWFsYXJtJztcbmltcG9ydCB7IE1vbml0b3JUeXBlIH0gZnJvbSAnLi9tb25pdG9yLXR5cGUnO1xuaW1wb3J0IHsgSVdhdGNoZnVsIH0gZnJvbSAnLi93YXRjaGZ1bCc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZGVmaW5pbmcgYWxhcm1zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoRG9jRGJDbHVzdGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgICAqIFRocmVzaG9sZCBvZiBkYXRhYmFzZSBjcHUgdXRpbGl6YXRpb24uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDgwXG4gICAgICovXG4gIHJlYWRvbmx5IGNwdVV0aWxpemF0aW9uVGhyZXNob2xkPzogbnVtYmVyO1xuICAvKipcbiAgICAgKiBNaW5pbXVtIGRhdGFiYXNlIGZyZWVhYmxlIG1lbW9yeSBpbiBieXRlcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgNjQwMDAwMDAgKDY0IE1lZ2FieXRlKVxuICAgICAqL1xuICByZWFkb25seSBmcmVlYWJsZU1lbW9yeVRocmVzaG9sZEluQnl0ZT86IG51bWJlcjtcbiAgLyoqXG4gICAgICogVGhyZXNob2xkIG9mIGRhdGFiYXNlIHN3YXAgdXNhZ2VcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgMjU2MDAwMDAwICgyNTYgTWVnYWJ5dGUpXG4gICAgICovXG4gIHJlYWRvbmx5IHN3YXBVc2FnZVRocmVzaG9sZEluQnl0ZT86IG51bWJlcjtcbiAgLyoqXG4gICAgICogTWluaW11bSBkYXRhYmFzZSBmcmVlIGxvY2FsIHN0b3JhZ2Ugc3BhY2VcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgMjAwMDAwMDAwMCAoMiBHaWdhYnl0ZSlcbiAgICAgKi9cbiAgcmVhZG9ubHkgZnJlZUxvY2FsU3RvcmFnZUluQnl0ZT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIFdhdGNoRG9jRGJDbHVzdGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hEb2NEYkNsdXN0ZXJQcm9wcyBleHRlbmRzIFdhdGNoRG9jRGJDbHVzdGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgICAqIFRoZSByZWZlcmVuY2UgdG8gSVdhdGNoZnVsIGNsYXNzLiBVc2VkIGludGVybmFsbHkuXG4gICAgICovXG4gIHJlYWRvbmx5IHdhdGNoZnVsOiBJV2F0Y2hmdWw7XG5cbiAgLyoqXG4gICAgICogVGhlIERvY0RCIGNsdXN0ZXIgdGhhdCBzaG91bGQgYmUgd2F0Y2hlZC5cbiAgICAgKiBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgICAqL1xuICByZWFkb25seSBkb2NEYjogZG9jZGIuRGF0YWJhc2VDbHVzdGVyO1xufVxuXG4vKipcbiAqIEEgQ29uc3RydWN0IHdoaWNoIGNyZWF0ZXMgdGhlIGZvbGxvd2luZyBhbGFybXMgZm9yIERvY3VtZW50RGIgY2x1c3RlcnM6XG4gKlxuICogLSBmcmVlYWJsZSBtZW1vcnlcbiAqIC0gc3dhcCB1c2FnZVxuICogLSBmcmVlIGxvY2FsIHN0b3JhZ2VcbiAqL1xuZXhwb3J0IGNsYXNzIFdhdGNoRG9jRGJDbHVzdGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB3YXRjaGZ1bDogSVdhdGNoZnVsO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY0RiOiBkb2NkYi5EYXRhYmFzZUNsdXN0ZXI7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdhdGNoRG9jRGJDbHVzdGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy53YXRjaGZ1bCA9IHByb3BzLndhdGNoZnVsO1xuICAgIHRoaXMuZG9jRGIgPSBwcm9wcy5kb2NEYjtcblxuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlQWxhcm0odGhpcyxcbiAgICAgIE1vbml0b3JUeXBlLkNQVV9VVElMSVpBVElPTixcbiAgICAgIHRoaXMuY3JlYXRlQ3B1VXRpbGl6YXRpb25Ub29IaWdoQWxhcm0ocHJvcHMuY3B1VXRpbGl6YXRpb25UaHJlc2hvbGQpLFxuICAgICk7XG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybSh0aGlzLFxuICAgICAgTW9uaXRvclR5cGUuRlJFRUFCTEVfTUVNT1JZLFxuICAgICAgdGhpcy5jcmVhdGVGcmVlYWJsZU1lbW9yeVRvb0xvd0FsYXJtKHByb3BzLmZyZWVhYmxlTWVtb3J5VGhyZXNob2xkSW5CeXRlKSxcbiAgICApO1xuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlQWxhcm0odGhpcyxcbiAgICAgIE1vbml0b3JUeXBlLlNXQVBfVVNBR0UsXG4gICAgICB0aGlzLmNyZWF0ZVN3YXBVc2FnZVRvb0hpZ2hBbGFybShwcm9wcy5zd2FwVXNhZ2VUaHJlc2hvbGRJbkJ5dGUpLFxuICAgICk7XG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybSh0aGlzLFxuICAgICAgTW9uaXRvclR5cGUuRlJFRV9MT0NBTF9TVE9SQUdFLFxuICAgICAgdGhpcy5jcmVhdGVGcmVlTG9jYWxTdG9yYWdlVG9vTG93QWxhcm0ocHJvcHMuZnJlZUxvY2FsU3RvcmFnZUluQnl0ZSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ3B1VXRpbGl6YXRpb25Ub29IaWdoQWxhcm0oY3B1VXRpbGl6YXRpb25UaHJlc2hvbGQgPSA4MCk6IE1ldHJpY0FsYXJtUHJvcHMge1xuICAgIGNvbnN0IGRvY0RiTWV0cmljID0gbmV3IGN3Lk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiAnQ1BVVXRpbGl6YXRpb24nLFxuICAgICAgbmFtZXNwYWNlOiAnQVdTL0RvY0RCJyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MDApLFxuICAgICAgc3RhdGlzdGljOiBjdy5TdGF0aXN0aWMuQVZFUkFHRSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgREJDbHVzdGVySWRlbnRpZmllcjogdGhpcy5kb2NEYi5jbHVzdGVySWRlbnRpZmllcixcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldHJpYzogZG9jRGJNZXRyaWMsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiAnQXZlcmFnZSBkYXRhYmFzZSBDUFUgdXRpbGl6YXRpb24gb3ZlciBsYXN0IDEwIG1pbnV0ZXMgdG9vIGhpZ2guJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IGNwdVV0aWxpemF0aW9uVGhyZXNob2xkLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnJlZWFibGVNZW1vcnlUb29Mb3dBbGFybShmcmVlYWJsZU1lbW9yeVRocmVzaG9sZEluQnl0ZSA9IDY0MDAwMDAwKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgZG9jRGJNZXRyaWMgPSBuZXcgY3cuTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6ICdGcmVlYWJsZU1lbW9yeScsXG4gICAgICBuYW1lc3BhY2U6ICdBV1MvRG9jREInLFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwMCksXG4gICAgICBzdGF0aXN0aWM6IGN3LlN0YXRpc3RpYy5BVkVSQUdFLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBEQkNsdXN0ZXJJZGVudGlmaWVyOiB0aGlzLmRvY0RiLmNsdXN0ZXJJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBkb2NEYk1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246ICdBdmVyYWdlIGRhdGFiYXNlIGZyZWVhYmxlIG1lbW9yeSBvdmVyIGxhc3QgMTAgbWludXRlcyB0b28gbG93LCBwZXJmb3JtYW5jZSBtYXkgc3VmZmVyLicsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGN3LkNvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiBmcmVlYWJsZU1lbW9yeVRocmVzaG9sZEluQnl0ZSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVN3YXBVc2FnZVRvb0hpZ2hBbGFybShzd2FwVXNhZ2VUaHJlc2hvbGRJbkJ5dGUgPSAyNTYwMDAwMDApOiBNZXRyaWNBbGFybVByb3BzIHtcbiAgICBjb25zdCBkb2NEYk1ldHJpYyA9IG5ldyBjdy5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogJ1N3YXBVc2FnZScsXG4gICAgICBuYW1lc3BhY2U6ICdBV1MvRG9jREInLFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwMCksXG4gICAgICBzdGF0aXN0aWM6IGN3LlN0YXRpc3RpYy5BVkVSQUdFLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBEQkNsdXN0ZXJJZGVudGlmaWVyOiB0aGlzLmRvY0RiLmNsdXN0ZXJJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBkb2NEYk1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246ICdBdmVyYWdlIGRhdGFiYXNlIHN3YXAgdXNhZ2Ugb3ZlciBsYXN0IDEwIG1pbnV0ZXMgdG9vIGhpZ2gsIHBlcmZvcm1hbmNlIG1heSBzdWZmZXIuJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IHN3YXBVc2FnZVRocmVzaG9sZEluQnl0ZSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZyZWVMb2NhbFN0b3JhZ2VUb29Mb3dBbGFybShmcmVlTG9jYWxTdG9yYWdlSW5CeXRlID0gMjAwMDAwMDAwMCk6IE1ldHJpY0FsYXJtUHJvcHMge1xuICAgIGNvbnN0IGRvY0RiTWV0cmljID0gbmV3IGN3Lk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiAnRnJlZUxvY2FsU3RvcmFnZScsXG4gICAgICBuYW1lc3BhY2U6ICdBV1MvRG9jREInLFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwMCksXG4gICAgICBzdGF0aXN0aWM6IGN3LlN0YXRpc3RpYy5BVkVSQUdFLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBEQkNsdXN0ZXJJZGVudGlmaWVyOiB0aGlzLmRvY0RiLmNsdXN0ZXJJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBkb2NEYk1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246ICdBdmVyYWdlIGRhdGFiYXNlIGZyZWUgbG9jYWwgc3RvcmFnZSBzcGFjZSBvdmVyIGxhc3QgMTAgbWludXRlcyB0b28gbG93LicsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGN3LkNvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiBmcmVlTG9jYWxTdG9yYWdlSW5CeXRlLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgfTtcbiAgfVxufVxuIl19
|
package/lib/watchful/dynamodb.js
CHANGED
|
@@ -5,6 +5,7 @@ exports.WatchDynamoDbTable = void 0;
|
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
7
|
const constructs_1 = require("constructs");
|
|
8
|
+
const monitor_type_1 = require("./monitor-type");
|
|
8
9
|
/**
|
|
9
10
|
* A Construct which creates the following alarms for DynamoDb tables:
|
|
10
11
|
*
|
|
@@ -19,9 +20,9 @@ class WatchDynamoDbTable extends constructs_1.Construct {
|
|
|
19
20
|
super(scope, id);
|
|
20
21
|
this.watchful = props.watchful;
|
|
21
22
|
this.dynamoDb = props.dynamoDbTable;
|
|
22
|
-
this.watchful.createAlarm(this,
|
|
23
|
-
this.watchful.createAlarm(this,
|
|
24
|
-
this.watchful.createAlarm(this,
|
|
23
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.READ_THROTTLE_EVENTS, this.createReadThrottleEventsAlarm(props.readThrottleEventsThreshold));
|
|
24
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.WRITE_THROTTLE_EVENTS, this.createWriteThrottleEventsAlarm(props.writeThrottleEventsThreshold));
|
|
25
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.THROTTLED_REQUESTS_EVENTS, this.createThrottledRequestsEventsAlarm(props.throttledRequestsEventsThreshold));
|
|
25
26
|
}
|
|
26
27
|
createReadThrottleEventsAlarm(readThrottleEventsThreshold = 1) {
|
|
27
28
|
const dynamoDbMetric = new aws_cdk_lib_1.aws_cloudwatch.Metric({
|
|
@@ -84,4 +85,4 @@ class WatchDynamoDbTable extends constructs_1.Construct {
|
|
|
84
85
|
exports.WatchDynamoDbTable = WatchDynamoDbTable;
|
|
85
86
|
_a = JSII_RTTI_SYMBOL_1;
|
|
86
87
|
WatchDynamoDbTable[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.WatchDynamoDbTable", version: "0.0.0" };
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWwvZHluYW1vZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBdUY7QUFDdkYsMkNBQXVDO0FBRXZDLGlEQUE2QztBQXdEN0M7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLHNCQUFTO0lBSS9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBRXBDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFDNUIsMEJBQVcsQ0FBQyxvQkFBb0IsRUFDaEMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUN0RSxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUM1QiwwQkFBVyxDQUFDLHFCQUFxQixFQUNqQyxJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQ3hFLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLDBCQUFXLENBQUMseUJBQXlCLEVBQ3JDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FDaEYsQ0FBQztJQUNKLENBQUM7SUFFTyw2QkFBNkIsQ0FBQywyQkFBMkIsR0FBRyxDQUFDO1FBRW5FLE1BQU0sY0FBYyxHQUFHLElBQUksNEJBQUUsQ0FBQyxNQUFNLENBQUM7WUFDbkMsVUFBVSxFQUFFLG9CQUFvQjtZQUNoQyxTQUFTLEVBQUUsY0FBYztZQUN6QixNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzVCLFNBQVMsRUFBRSw0QkFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1lBQzNCLGFBQWEsRUFBRTtnQkFDYixTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2FBQ25DO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTztZQUNMLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLGdCQUFnQixFQUNkLGlHQUFpRztZQUNuRyxrQkFBa0IsRUFBRSw0QkFBRSxDQUFDLGtCQUFrQixDQUFDLGtDQUFrQztZQUM1RSxTQUFTLEVBQUUsMkJBQTJCO1lBQ3RDLGdCQUFnQixFQUFFLDRCQUFFLENBQUMsZ0JBQWdCLENBQUMsYUFBYTtZQUNuRCxpQkFBaUIsRUFBRSxDQUFDO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBQ08sOEJBQThCLENBQUMsNEJBQTRCLEdBQUcsQ0FBQztRQUNyRSxNQUFNLGNBQWMsR0FBRyxJQUFJLDRCQUFFLENBQUMsTUFBTSxDQUFDO1lBQ25DLFVBQVUsRUFBRSxxQkFBcUI7WUFDakMsU0FBUyxFQUFFLGNBQWM7WUFDekIsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1QixTQUFTLEVBQUUsNEJBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRztZQUMzQixhQUFhLEVBQUU7Z0JBQ2IsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUzthQUNuQztTQUNGLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxNQUFNLEVBQUUsY0FBYztZQUN0QixnQkFBZ0IsRUFDZCxvR0FBb0c7WUFDdEcsa0JBQWtCLEVBQUUsNEJBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxrQ0FBa0M7WUFDNUUsU0FBUyxFQUFFLDRCQUE0QjtZQUN2QyxnQkFBZ0IsRUFBRSw0QkFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWE7WUFDbkQsaUJBQWlCLEVBQUUsQ0FBQztTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUNPLGtDQUFrQyxDQUFDLGdDQUFnQyxHQUFHLENBQUM7UUFDN0UsTUFBTSxjQUFjLEdBQUcsSUFBSSw0QkFBRSxDQUFDLE1BQU0sQ0FBQztZQUNuQyxVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLFNBQVMsRUFBRSxjQUFjO1lBQ3pCLE1BQU0sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDNUIsU0FBUyxFQUFFLDRCQUFFLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFDM0IsYUFBYSxFQUFFO2dCQUNiLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVM7YUFDbkM7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPO1lBQ0wsTUFBTSxFQUFFLGNBQWM7WUFDdEIsZ0JBQWdCLEVBQ2QsMEhBQTBIO1lBQzVILGtCQUFrQixFQUFFLDRCQUFFLENBQUMsa0JBQWtCLENBQUMsa0NBQWtDO1lBQzVFLFNBQVMsRUFBRSxnQ0FBZ0M7WUFDM0MsZ0JBQWdCLEVBQUUsNEJBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhO1lBQ25ELGlCQUFpQixFQUFFLENBQUM7U0FDckIsQ0FBQztJQUNKLENBQUM7O0FBcEZILGdEQXFGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c19jbG91ZHdhdGNoIGFzIGN3LCBhd3NfZHluYW1vZGIgYXMgZHluYW1vZGIsIER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBNZXRyaWNBbGFybVByb3BzIH0gZnJvbSAnLi9tZXRyaWMtYWxhcm0nO1xuaW1wb3J0IHsgTW9uaXRvclR5cGUgfSBmcm9tICcuL21vbml0b3ItdHlwZSc7XG5pbXBvcnQgeyBJV2F0Y2hmdWwgfSBmcm9tICcuL3dhdGNoZnVsJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBkZWZpbmluZyBhbGFybXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hEeW5hbW9EYlRhYmxlT3B0aW9ucyB7XG4gIC8qKlxuICAgICAqIFRocmVzaG9sZCBvZiByZWFkIHRocm90dGxlIGV2ZW50cy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgMVxuICAgICAqL1xuICByZWFkb25seSByZWFkVGhyb3R0bGVFdmVudHNUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKlxuICAgICAqIFRocmVzaG9sZCBvZiB3cml0ZSB0aHJvdHRsZSBldmVudHMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDFcbiAgICAgKi9cbiAgcmVhZG9ubHkgd3JpdGVUaHJvdHRsZUV2ZW50c1RocmVzaG9sZD86IG51bWJlcjtcbiAgLyoqXG4gICAgICogVGhyZXNob2xkIG9mIHRocm90dGxlZCByZXF1ZXN0cyBldmVudHMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDFcbiAgICAgKi9cbiAgcmVhZG9ubHkgdGhyb3R0bGVkUmVxdWVzdHNFdmVudHNUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKlxuICAgICAqIFRocmVzaG9sZCBvZiB1c2VyIGVycm9ycy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgMVxuICAgICAqL1xuICByZWFkb25seSB1c2VyRXJyb3JzVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgICAqIFRocmVzaG9sZCBvZiBzeXN0ZW0gZXJyb3JzLlxuICAgICAqXG4gICAgICogQGRlZmF1bHRWYWx1ZSAxXG4gICAgICovXG4gIHJlYWRvbmx5IHN5c3RlbUVycm9yc1RocmVzaG9sZD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIFdhdGNoRHluYW1vRGJUYWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoRHluYW1vRGJUYWJsZVByb3BzIGV4dGVuZHMgV2F0Y2hEeW5hbW9EYlRhYmxlT3B0aW9ucyB7XG4gIC8qKlxuICAgICAqIFRoZSByZWZlcmVuY2UgdG8gSVdhdGNoZnVsIGNsYXNzLiBVc2VkIGludGVybmFsbHkuXG4gICAgICovXG4gIHJlYWRvbmx5IHdhdGNoZnVsOiBJV2F0Y2hmdWw7XG5cbiAgLyoqXG4gICAgICogVGhlIER5bmFtb0RiIHRhYmxlIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQuXG4gICAgICogW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICAgKi9cbiAgcmVhZG9ubHkgZHluYW1vRGJUYWJsZTogZHluYW1vZGIuVGFibGU7XG59XG5cbi8qKlxuICogQSBDb25zdHJ1Y3Qgd2hpY2ggY3JlYXRlcyB0aGUgZm9sbG93aW5nIGFsYXJtcyBmb3IgRHluYW1vRGIgdGFibGVzOlxuICpcbiAqIC0gcmVhZCB0aHJvdHRsZXNcbiAqIC0gd3JpdGUgdGhyb3R0bGVzXG4gKiAtIHRocm90dGxlZCByZXF1ZXN0c1xuICogLSB1c2VyIGVycm9yc1xuICogLSBzeXN0ZW0gZXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBXYXRjaER5bmFtb0RiVGFibGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IHdhdGNoZnVsOiBJV2F0Y2hmdWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgZHluYW1vRGI6IGR5bmFtb2RiLlRhYmxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXYXRjaER5bmFtb0RiVGFibGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLndhdGNoZnVsID0gcHJvcHMud2F0Y2hmdWw7XG4gICAgdGhpcy5keW5hbW9EYiA9IHByb3BzLmR5bmFtb0RiVGFibGU7XG5cbiAgICB0aGlzLndhdGNoZnVsLmNyZWF0ZUFsYXJtKHRoaXMsXG4gICAgICBNb25pdG9yVHlwZS5SRUFEX1RIUk9UVExFX0VWRU5UUyxcbiAgICAgIHRoaXMuY3JlYXRlUmVhZFRocm90dGxlRXZlbnRzQWxhcm0ocHJvcHMucmVhZFRocm90dGxlRXZlbnRzVGhyZXNob2xkKSxcbiAgICApO1xuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlQWxhcm0odGhpcyxcbiAgICAgIE1vbml0b3JUeXBlLldSSVRFX1RIUk9UVExFX0VWRU5UUyxcbiAgICAgIHRoaXMuY3JlYXRlV3JpdGVUaHJvdHRsZUV2ZW50c0FsYXJtKHByb3BzLndyaXRlVGhyb3R0bGVFdmVudHNUaHJlc2hvbGQpLFxuICAgICk7XG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybSh0aGlzLFxuICAgICAgTW9uaXRvclR5cGUuVEhST1RUTEVEX1JFUVVFU1RTX0VWRU5UUyxcbiAgICAgIHRoaXMuY3JlYXRlVGhyb3R0bGVkUmVxdWVzdHNFdmVudHNBbGFybShwcm9wcy50aHJvdHRsZWRSZXF1ZXN0c0V2ZW50c1RocmVzaG9sZCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmVhZFRocm90dGxlRXZlbnRzQWxhcm0ocmVhZFRocm90dGxlRXZlbnRzVGhyZXNob2xkID0gMSk6IE1ldHJpY0FsYXJtUHJvcHMge1xuXG4gICAgY29uc3QgZHluYW1vRGJNZXRyaWMgPSBuZXcgY3cuTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6ICdSZWFkVGhyb3R0bGVFdmVudHMnLFxuICAgICAgbmFtZXNwYWNlOiAnQVdTL0R5bmFtb0RCJyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICBzdGF0aXN0aWM6IGN3LlN0YXRpc3RpYy5TVU0sXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFRhYmxlTmFtZTogdGhpcy5keW5hbW9EYi50YWJsZU5hbWUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IGR5bmFtb0RiTWV0cmljLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgJ1JlYWRzIGFyZSB0aHJvdHRsZWQuIExvd2VyIFJlYWRDYXBhY2l0eVVuaXRzVXRpbGl6YXRpb25UYXJnZXQgb3IgaW5jcmVhc2UgTWF4UmVhZENhcGFjaXR5VW5pdHMuJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IHJlYWRUaHJvdHRsZUV2ZW50c1RocmVzaG9sZCxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGN3LlRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVXcml0ZVRocm90dGxlRXZlbnRzQWxhcm0od3JpdGVUaHJvdHRsZUV2ZW50c1RocmVzaG9sZCA9IDEpOiBNZXRyaWNBbGFybVByb3BzIHtcbiAgICBjb25zdCBkeW5hbW9EYk1ldHJpYyA9IG5ldyBjdy5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogJ1dyaXRlVGhyb3R0bGVFdmVudHMnLFxuICAgICAgbmFtZXNwYWNlOiAnQVdTL0R5bmFtb0RCJyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICBzdGF0aXN0aWM6IGN3LlN0YXRpc3RpYy5TVU0sXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFRhYmxlTmFtZTogdGhpcy5keW5hbW9EYi50YWJsZU5hbWUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IGR5bmFtb0RiTWV0cmljLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgJ1dyaXRlcyBhcmUgdGhyb3R0bGVkLiBMb3dlciBXcml0ZUNhcGFjaXR5VW5pdHNVdGlsaXphdGlvblRhcmdldCBvciBpbmNyZWFzZSBNYXhXcml0ZUNhcGFjaXR5VW5pdHMuJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IHdyaXRlVGhyb3R0bGVFdmVudHNUaHJlc2hvbGQsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjdy5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICB9O1xuICB9XG4gIHByaXZhdGUgY3JlYXRlVGhyb3R0bGVkUmVxdWVzdHNFdmVudHNBbGFybSh0aHJvdHRsZWRSZXF1ZXN0c0V2ZW50c1RocmVzaG9sZCA9IDEpOiBNZXRyaWNBbGFybVByb3BzIHtcbiAgICBjb25zdCBkeW5hbW9EYk1ldHJpYyA9IG5ldyBjdy5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogJ1Rocm90dGxlZFJlcXVlc3RzJyxcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9EeW5hbW9EQicsXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgc3RhdGlzdGljOiBjdy5TdGF0aXN0aWMuU1VNLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBUYWJsZU5hbWU6IHRoaXMuZHluYW1vRGIudGFibGVOYW1lLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBkeW5hbW9EYk1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgICdCYXRjaCByZXF1ZXN0cyBhcmUgdGhyb3R0bGVkLiBMb3dlciB7UmVhZC9Xcml0ZX1DYXBhY2l0eVVuaXRzVXRpbGl6YXRpb25UYXJnZXQgb3IgaW5jcmVhc2UgTWF4e1JlYWQvV3JpdGV9Q2FwYWNpdHlVbml0cy4nLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjdy5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogdGhyb3R0bGVkUmVxdWVzdHNFdmVudHNUaHJlc2hvbGQsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjdy5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
package/lib/watchful/ecs.js
CHANGED
|
@@ -22,9 +22,9 @@ class WatchEcsService extends constructs_1.Construct {
|
|
|
22
22
|
super(scope, id);
|
|
23
23
|
this.watchful = props.watchful;
|
|
24
24
|
this.service = props.service;
|
|
25
|
-
this.watchful.createAlarm(this,
|
|
26
|
-
this.watchful.createAlarm(this,
|
|
27
|
-
this.watchful.createLogAlarm(this,
|
|
25
|
+
this.watchful.createAlarm(this, __1.MonitorType.CPU_UTILIZATION, this.createCpuUtilizationMonitor(props.cpuUtilizationThresholdPercent));
|
|
26
|
+
this.watchful.createAlarm(this, __1.MonitorType.MEMORY_UTILIZATION, this.createMemoryUtilizationMonitor(props.memoryUtilizationThresholdPercent));
|
|
27
|
+
this.watchful.createLogAlarm(this, __1.MonitorType.LOG_ERROR_MONITOR, this.createLogErrorMonitor());
|
|
28
28
|
}
|
|
29
29
|
createLogErrorMonitor() {
|
|
30
30
|
return {
|
|
@@ -66,4 +66,4 @@ class WatchEcsService extends constructs_1.Construct {
|
|
|
66
66
|
exports.WatchEcsService = WatchEcsService;
|
|
67
67
|
_a = JSII_RTTI_SYMBOL_1;
|
|
68
68
|
WatchEcsService[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.WatchEcsService", version: "0.0.0" };
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhdGNoZnVsL2Vjcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QyxpREFBaUQ7QUFFakQsMkNBQXVDO0FBQ3ZDLDBCQUFvRztBQUdwRyxNQUFNLHlDQUF5QyxHQUFHLEVBQUUsQ0FBQztBQUNyRCxNQUFNLDRDQUE0QyxHQUFHLEVBQUUsQ0FBQztBQXFDeEQ7Ozs7Ozs7R0FPRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQUk1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUU3QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLGVBQVcsQ0FBQyxlQUFlLEVBQzNCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FDdkUsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFDNUIsZUFBVyxDQUFDLGtCQUFrQixFQUM5QixJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQzdFLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQy9CLGVBQVcsQ0FBQyxpQkFBaUIsRUFDN0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQzdCLENBQUM7SUFDSixDQUFDO0lBRU8scUJBQXFCO1FBQzNCLE9BQU87WUFDTCx1QkFBdUIsRUFBRSxJQUFJO1lBQzdCLE1BQU0sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0IsWUFBWSxFQUFFLGdCQUFZLENBQUMsT0FBTztZQUNsQyxjQUFjLEVBQUUsc0JBQWtCLENBQUMsa0NBQWtDO1lBQ3JFLFNBQVMsRUFBRSxPQUFPO1lBQ2xCLFlBQVksRUFBRSxPQUFPO1lBQ3JCLGdCQUFnQixFQUFFLHFDQUFxQztZQUN2RCxTQUFTLEVBQUUsQ0FBQztZQUNaLFFBQVEsRUFBRSxDQUFDO1lBQ1gsS0FBSyxFQUFFLEdBQUc7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVPLDJCQUEyQixDQUNqQyxpQ0FBeUMseUNBQXlDO1FBRWxGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEcsT0FBTztZQUNMLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsZ0JBQWdCLEVBQUUsNERBQTRELDhCQUE4QixHQUFHO1lBQy9HLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDaEUsU0FBUyxFQUFFLDhCQUE4QjtZQUN6QyxpQkFBaUIsRUFBRSxDQUFDO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBRU8sOEJBQThCLENBQ3BDLG9DQUE0Qyw0Q0FBNEM7UUFFeEYsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTzthQUN6Qyx1QkFBdUIsRUFBRTthQUN6QixJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLE9BQU87WUFDTCxNQUFNLEVBQUUsdUJBQXVCO1lBQy9CLGdCQUFnQixFQUFFLCtEQUErRCxpQ0FBaUMsR0FBRztZQUNySCxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ2hFLFNBQVMsRUFBRSxpQ0FBaUM7WUFDNUMsaUJBQWlCLEVBQUUsQ0FBQztTQUNyQixDQUFDO0lBQ0osQ0FBQzs7QUFqRUgsMENBbUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjdyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBlY3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENvbXBhcmlzb25PcGVyYXRvciwgTG9nQWxhcm1Qcm9wcywgTWV0cmljQWxhcm1Qcm9wcywgTW9uaXRvclR5cGUsIFVuaXRPZlBlcmlvZCB9IGZyb20gJy4uJztcbmltcG9ydCB7IElXYXRjaGZ1bCB9IGZyb20gJy4vd2F0Y2hmdWwnO1xuXG5jb25zdCBERUZBVUxUX0NQVV9VVElMSVpBVElPTl9USFJFU0hPTERfUEVSQ0VOVCA9IDgwO1xuY29uc3QgREVGQVVMVF9NRU1PUllfVVRJTElaQVRJT05fVEhSRVNIT0xEX1BFUkNFTlQgPSA5NTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBkZWZpbmluZyBhbGFybXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hFY3NTZXJ2aWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgICAqIFRocmVzaG9sZCBmb3IgdGhlIGNwdSB1dGlsaXphdGlvbiBhbGFybSBhcyBwZXJjZW50YWdlLlxuICAgICAqXG4gICAgICogQGRlZmF1bHRWYWx1ZSA4MFxuICAgICAqL1xuICByZWFkb25seSBjcHVVdGlsaXphdGlvblRocmVzaG9sZFBlcmNlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAgICogVGhyZXNob2xkIGZvciB0aGUgbWVtb3J5IHV0aWxpemF0aW9uIGFsYXJtIGFzIHBlcmNlbnRhZ2UuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDk1XG4gICAgICovXG4gIHJlYWRvbmx5IG1lbW9yeVV0aWxpemF0aW9uVGhyZXNob2xkUGVyY2VudD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIFdhdGNoRWNzU2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoRWNzU2VydmljZVByb3BzIGV4dGVuZHMgV2F0Y2hFY3NTZXJ2aWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgICAqIFRoZSByZWZlcmVuY2UgdG8gSVdhdGNoZnVsIGNsYXNzLiBVc2VkIGludGVybmFsbHkuXG4gICAgICovXG4gIHJlYWRvbmx5IHdhdGNoZnVsOiBJV2F0Y2hmdWw7XG5cbiAgLyoqXG4gICAgICogVGhlIEVDUyBzZXJ2aWNlIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQuXG4gICAgICogW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZTogZWNzLkJhc2VTZXJ2aWNlO1xufVxuXG4vKipcbiAqIEEgQ29uc3RydWN0IHdoaWNoIGNyZWF0ZXMgZGVmYXVsdCBhbGFybXMgZm9yIEVDUyBzZXJ2aWNlcy5cbiAqIEEgQ29uc3RydWN0IHdoaWNoIGNyZWF0ZXMgdGhlIGZvbGxvd2luZyBhbGFybXMgZm9yIEVDUyBzZXJ2aWNlczpcbiAqXG4gKiAtIGNwdSB1dGlsaXphdGlvblxuICogLSBtZW1vcnkgdXRpbGl6YXRpb25cbiAqIC0gZXJyb3IgbG9nIGFsZXJ0XG4gKi9cbmV4cG9ydCBjbGFzcyBXYXRjaEVjc1NlcnZpY2UgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IHdhdGNoZnVsOiBJV2F0Y2hmdWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogZWNzLkJhc2VTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXYXRjaEVjc1NlcnZpY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLndhdGNoZnVsID0gcHJvcHMud2F0Y2hmdWw7XG4gICAgdGhpcy5zZXJ2aWNlID0gcHJvcHMuc2VydmljZTtcblxuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlQWxhcm0odGhpcyxcbiAgICAgIE1vbml0b3JUeXBlLkNQVV9VVElMSVpBVElPTixcbiAgICAgIHRoaXMuY3JlYXRlQ3B1VXRpbGl6YXRpb25Nb25pdG9yKHByb3BzLmNwdVV0aWxpemF0aW9uVGhyZXNob2xkUGVyY2VudCksXG4gICAgKTtcbiAgICB0aGlzLndhdGNoZnVsLmNyZWF0ZUFsYXJtKHRoaXMsXG4gICAgICBNb25pdG9yVHlwZS5NRU1PUllfVVRJTElaQVRJT04sXG4gICAgICB0aGlzLmNyZWF0ZU1lbW9yeVV0aWxpemF0aW9uTW9uaXRvcihwcm9wcy5tZW1vcnlVdGlsaXphdGlvblRocmVzaG9sZFBlcmNlbnQpLFxuICAgICk7XG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVMb2dBbGFybSh0aGlzLFxuICAgICAgTW9uaXRvclR5cGUuTE9HX0VSUk9SX01PTklUT1IsXG4gICAgICB0aGlzLmNyZWF0ZUxvZ0Vycm9yTW9uaXRvcigpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUxvZ0Vycm9yTW9uaXRvcigpOiBMb2dBbGFybVByb3BzIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXV0b0Nsb3NlT3BzR2VuaWVBbGVydHM6IHRydWUsXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICB1bml0T2ZQZXJpb2Q6IFVuaXRPZlBlcmlvZC5NSU5VVEVTLCAvLyB0b0RvOiBtb3ZlIHRoYXQgc29tZXdoZXJlIGVsc2UgYW5kIHNldCBkZWZhdWx0cyB0aGVyZT9cbiAgICAgIHBlcmlvZE9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICAgIHN0YXRpc3RpYzogJ2NvdW50JyxcbiAgICAgIHF1ZXJ5RmlsdGVyczogJ2Vycm9yJyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246ICdBdXRvLWdlbmVyYXRlZCBhbGVydCBmb3IgZXJyb3IgbG9ncycsXG4gICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICBwcmlvcml0eTogMyxcbiAgICAgIGluZGV4OiAnKicsIC8vIHRvRG86IHdlIHNob3VsZCB0YWtlIGhlcmUgdGhlIHRlYW0gbmFtZSBidXQgZm9yIG9sZGVyIHNldHVwcyB0byB3b3JrIHdlIGtlZXAgdGhhdCBmb3IgY29tcGF0aWJpbGl0eVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNwdVV0aWxpemF0aW9uTW9uaXRvcihcbiAgICBjcHVVdGlsaXphdGlvblRocmVzaG9sZFBlcmNlbnQ6IG51bWJlciA9IERFRkFVTFRfQ1BVX1VUSUxJWkFUSU9OX1RIUkVTSE9MRF9QRVJDRU5ULFxuICApOiBNZXRyaWNBbGFybVByb3BzIHtcbiAgICBjb25zdCBjcHVVdGlsaXphdGlvbk1ldHJpYyA9IHRoaXMuc2VydmljZS5tZXRyaWNDcHVVdGlsaXphdGlvbigpLndpdGgoeyBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMTApIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IGNwdVV0aWxpemF0aW9uTWV0cmljLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYEF2ZXJhZ2UgQ1BVIHV0aWxpemF0aW9uIG92ZXIgbGFzdCAxMCBtaW51dGVzIGhpZ2hlciB0aGFuICR7Y3B1VXRpbGl6YXRpb25UaHJlc2hvbGRQZXJjZW50fSVgLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjdy5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogY3B1VXRpbGl6YXRpb25UaHJlc2hvbGRQZXJjZW50LFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTWVtb3J5VXRpbGl6YXRpb25Nb25pdG9yKFxuICAgIG1lbW9yeVV0aWxpemF0aW9uVGhyZXNob2xkUGVyY2VudDogbnVtYmVyID0gREVGQVVMVF9NRU1PUllfVVRJTElaQVRJT05fVEhSRVNIT0xEX1BFUkNFTlQsXG4gICk6IE1ldHJpY0FsYXJtUHJvcHMge1xuICAgIGNvbnN0IG1lbW9yeVV0aWxpemF0aW9uTWV0cmljID0gdGhpcy5zZXJ2aWNlXG4gICAgICAubWV0cmljTWVtb3J5VXRpbGl6YXRpb24oKVxuICAgICAgLndpdGgoeyBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMTApIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IG1lbW9yeVV0aWxpemF0aW9uTWV0cmljLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYEF2ZXJhZ2UgbWVtb3J5IHV0aWxpemF0aW9uIG92ZXIgbGFzdCAxMCBtaW51dGVzIGhpZ2hlciB0aGFuICR7bWVtb3J5VXRpbGl6YXRpb25UaHJlc2hvbGRQZXJjZW50fSVgLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjdy5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogbWVtb3J5VXRpbGl6YXRpb25UaHJlc2hvbGRQZXJjZW50LFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgfTtcbiAgfVxuXG59XG4iXX0=
|
package/lib/watchful/index.d.ts
CHANGED
package/lib/watchful/index.js
CHANGED
|
@@ -24,4 +24,5 @@ __exportStar(require("./metric-alarm"), exports);
|
|
|
24
24
|
__exportStar(require("./rds"), exports);
|
|
25
25
|
__exportStar(require("./cloudfront"), exports);
|
|
26
26
|
__exportStar(require("./upperToLower"), exports);
|
|
27
|
-
|
|
27
|
+
__exportStar(require("./monitor-type"), exports);
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCO0FBQ3RCLDJDQUF5QjtBQUN6Qix3Q0FBc0I7QUFDdEIsMENBQXdCO0FBQ3hCLDZDQUEyQjtBQUMzQiwyQ0FBeUI7QUFDekIsZ0RBQThCO0FBQzlCLHlEQUF1QztBQUN2QyxzREFBb0M7QUFDcEMsNkNBQTJCO0FBQzNCLGlEQUErQjtBQUMvQix3Q0FBc0I7QUFDdEIsK0NBQTZCO0FBQzdCLGlEQUErQjtBQUMvQixpREFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FsYic7XG5leHBvcnQgKiBmcm9tICcuL2FzcGVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2Vjcyc7XG5leHBvcnQgKiBmcm9tICcuL2RvY2RiJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1vZGInO1xuZXhwb3J0ICogZnJvbSAnLi9sYW1iZGEnO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXRncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGFkb2ctbWV0cmljLWFsYXJtJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YWRvZy1sb2ctYWxhcm0nO1xuZXhwb3J0ICogZnJvbSAnLi93YXRjaGZ1bCc7XG5leHBvcnQgKiBmcm9tICcuL21ldHJpYy1hbGFybSc7XG5leHBvcnQgKiBmcm9tICcuL3Jkcyc7XG5leHBvcnQgKiBmcm9tICcuL2Nsb3VkZnJvbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91cHBlclRvTG93ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tb25pdG9yLXR5cGUnOyJdfQ==
|
package/lib/watchful/lambda.js
CHANGED
|
@@ -7,6 +7,7 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
|
7
7
|
const cw = require("aws-cdk-lib/aws-cloudwatch");
|
|
8
8
|
const constructs_1 = require("constructs");
|
|
9
9
|
const datadog_log_alarm_1 = require("./datadog-log-alarm");
|
|
10
|
+
const monitor_type_1 = require("./monitor-type");
|
|
10
11
|
const DEFAULT_DURATION_THRESHOLD_PERCENT = 80;
|
|
11
12
|
/**
|
|
12
13
|
* A Construct which creates the following alarms for lambda functions:
|
|
@@ -22,10 +23,10 @@ class WatchLambdaFunction extends constructs_1.Construct {
|
|
|
22
23
|
const timeoutSec = cfnFunction.timeout || 3;
|
|
23
24
|
this.watchful = props.watchful;
|
|
24
25
|
this.fn = props.fn;
|
|
25
|
-
this.watchful.createAlarm(this,
|
|
26
|
-
this.watchful.createAlarm(this,
|
|
27
|
-
this.watchful.createAlarm(this,
|
|
28
|
-
this.watchful.createLogAlarm(this,
|
|
26
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.ERRORS, this.createErrorsMonitor(props.errorsPerMinuteThreshold));
|
|
27
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.THROTTLES, this.createThrottlesMonitor(props.throttlesPerMinuteThreshold));
|
|
28
|
+
this.watchful.createAlarm(this, monitor_type_1.MonitorType.DURATION, this.createDurationMonitor(timeoutSec, props.durationThresholdPercent));
|
|
29
|
+
this.watchful.createLogAlarm(this, monitor_type_1.MonitorType.LOG_ERROR_MONITOR, this.createLogErrorMonitor());
|
|
29
30
|
}
|
|
30
31
|
createLogErrorMonitor() {
|
|
31
32
|
return {
|
|
@@ -80,4 +81,4 @@ class WatchLambdaFunction extends constructs_1.Construct {
|
|
|
80
81
|
exports.WatchLambdaFunction = WatchLambdaFunction;
|
|
81
82
|
_a = JSII_RTTI_SYMBOL_1;
|
|
82
83
|
WatchLambdaFunction[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.WatchLambdaFunction", version: "0.0.0" };
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhdGNoZnVsL2xhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QyxpREFBaUQ7QUFFakQsMkNBQXVDO0FBQ3ZDLDJEQUFzRjtBQUV0RixpREFBNkM7QUFHN0MsTUFBTSxrQ0FBa0MsR0FBRyxFQUFFLENBQUM7QUFnRDlDOzs7Ozs7R0FNRztBQUNILE1BQWEsbUJBQW9CLFNBQVEsc0JBQVM7SUFJaEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQWtDLENBQUM7UUFDckUsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsMEJBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7UUFDOUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLDBCQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDO1FBQ3ZILElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFDNUIsMEJBQVcsQ0FBQyxRQUFRLEVBQ3BCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQ3ZFLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FDMUIsSUFBSSxFQUNKLDBCQUFXLENBQUMsaUJBQWlCLEVBQzdCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixPQUFPO1lBQ0wsdUJBQXVCLEVBQUUsSUFBSTtZQUM3QixNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzNCLFlBQVksRUFBRSxnQ0FBWSxDQUFDLE9BQU87WUFDbEMsY0FBYyxFQUFFLHNDQUFrQixDQUFDLGtDQUFrQztZQUNyRSxTQUFTLEVBQUUsT0FBTztZQUNsQixZQUFZLEVBQUUsT0FBTztZQUNyQixnQkFBZ0IsRUFBRSw0Q0FBNEM7WUFDOUQsU0FBUyxFQUFFLENBQUM7WUFDWixRQUFRLEVBQUUsQ0FBQztZQUNYLEtBQUssRUFBRSxHQUFHO1lBQ1YseUJBQXlCLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZO1NBQ2hELENBQUM7SUFDSixDQUFDO0lBQ08sbUJBQW1CLENBQUMsd0JBQXdCLEdBQUcsQ0FBQztRQUN0RCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25CLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxPQUFPO1lBQ0wsTUFBTSxFQUFFLFlBQVk7WUFDcEIsZ0JBQWdCLEVBQUUsUUFBUSx3QkFBd0Isb0JBQW9CO1lBQ3RFLFNBQVMsRUFBRSx3QkFBd0I7WUFDbkMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQjtZQUNoRSxpQkFBaUIsRUFBRSxDQUFDO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBRU8sc0JBQXNCLENBQUMsMkJBQTJCLEdBQUcsQ0FBQztRQUM1RCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25CLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QyxPQUFPO1lBQ0wsTUFBTSxFQUFFLGVBQWU7WUFDdkIsZ0JBQWdCLEVBQUUsUUFBUSwyQkFBMkIsdUJBQXVCO1lBQzVFLFNBQVMsRUFBRSwyQkFBMkI7WUFDdEMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQjtZQUNoRSxpQkFBaUIsRUFBRSxDQUFDO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBRU8scUJBQXFCLENBQzNCLFVBQWtCLEVBQ2xCLDJCQUFtQyxrQ0FBa0M7UUFFckUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQixNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0MsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsd0JBQXdCLEdBQUcsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFDdkYsT0FBTztZQUNMLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLGdCQUFnQixFQUFFLGtCQUFrQixvQkFBb0IsTUFBTSx3QkFBd0IsSUFBSTtZQUMxRixrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ2hFLFNBQVMsRUFBRSxvQkFBb0IsR0FBRyxJQUFJO1lBQ3RDLGlCQUFpQixFQUFFLENBQUM7U0FDckIsQ0FBQztJQUNKLENBQUM7O0FBL0VILGtEQWdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY3cgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDb21wYXJpc29uT3BlcmF0b3IsIExvZ0FsYXJtUHJvcHMsIFVuaXRPZlBlcmlvZCB9IGZyb20gJy4vZGF0YWRvZy1sb2ctYWxhcm0nO1xuaW1wb3J0IHsgTWV0cmljQWxhcm1Qcm9wcyB9IGZyb20gJy4vbWV0cmljLWFsYXJtJztcbmltcG9ydCB7IE1vbml0b3JUeXBlIH0gZnJvbSAnLi9tb25pdG9yLXR5cGUnO1xuaW1wb3J0IHsgSVdhdGNoZnVsIH0gZnJvbSAnLi93YXRjaGZ1bCc7XG5cbmNvbnN0IERFRkFVTFRfRFVSQVRJT05fVEhSRVNIT0xEX1BFUkNFTlQgPSA4MDtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBkZWZpbmluZyBhbGFybXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hMYW1iZGFGdW5jdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICAgKiBOdW1iZXIgb2YgYWxsb3dlZCBlcnJvcnMgcGVyIG1pbnV0ZS4gSWYgdGhlcmUgYXJlIG1vcmUgZXJyb3JzIHRoYW4gdGhhdCwgYW4gYWxhcm0gd2lsbCB0cmlnZ2VyLlxuICAgICAqXG4gICAgICogQGRlZmF1bHRWYWx1ZSAwXG4gICAgICovXG4gIHJlYWRvbmx5IGVycm9yc1Blck1pbnV0ZVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICAgKiBOdW1iZXIgb2YgYWxsb3dlZCB0aHJvdHRsZXMgcGVyIG1pbnV0ZS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgMFxuICAgICAqL1xuICByZWFkb25seSB0aHJvdHRsZXNQZXJNaW51dGVUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAgICogVGhyZXNob2xkIGZvciB0aGUgZHVyYXRpb24gYWxhcm0gYXMgcGVyY2VudGFnZSBvZiB0aGUgZnVuY3Rpb24ncyB0aW1lb3V0XG4gICAgICogdmFsdWUuXG4gICAgICpcbiAgICAgKiBJZiB0aGlzIGlzIHNldCB0byA1MCUsIHRoZSBhbGFybSB3aWxsIGJlIHNldCB3aGVuIHA5OSBsYXRlbmN5IG9mIHRoZVxuICAgICAqIGZ1bmN0aW9uIGV4Y2VlZHMgNTAlIG9mIHRoZSBmdW5jdGlvbidzIHRpbWVvdXQgc2V0dGluZy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgODBcbiAgICAgKi9cbiAgcmVhZG9ubHkgZHVyYXRpb25UaHJlc2hvbGRQZXJjZW50PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgV2F0Y2hMYW1iZGFGdW5jdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoTGFtYmRhRnVuY3Rpb25Qcm9wcyBleHRlbmRzIFdhdGNoTGFtYmRhRnVuY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAgICogVGhlIHJlZmVyZW5jZSB0byBJV2F0Y2hmdWwgY2xhc3MuIFVzZWQgaW50ZXJuYWxseS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hmdWw6IElXYXRjaGZ1bDtcblxuICAvKipcbiAgICAgKiBUaGUgbGFtYmRhIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQuXG4gICAgICogW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICAgKi9cbiAgcmVhZG9ubHkgZm46IGxhbWJkYS5GdW5jdGlvbjtcbn1cblxuLyoqXG4gKiBBIENvbnN0cnVjdCB3aGljaCBjcmVhdGVzIHRoZSBmb2xsb3dpbmcgYWxhcm1zIGZvciBsYW1iZGEgZnVuY3Rpb25zOlxuICpcbiAqIC0gZXJyb3JzXG4gKiAtIHRocm90dGxlc1xuICogLSBkdXJhdGlvblxuICovXG5leHBvcnQgY2xhc3MgV2F0Y2hMYW1iZGFGdW5jdGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hmdWw6IElXYXRjaGZ1bDtcbiAgcHJpdmF0ZSByZWFkb25seSBmbjogbGFtYmRhLkZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXYXRjaExhbWJkYUZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgY2ZuRnVuY3Rpb24gPSBwcm9wcy5mbi5ub2RlLmRlZmF1bHRDaGlsZCBhcyBsYW1iZGEuQ2ZuRnVuY3Rpb247XG4gICAgY29uc3QgdGltZW91dFNlYyA9IGNmbkZ1bmN0aW9uLnRpbWVvdXQgfHwgMztcblxuICAgIHRoaXMud2F0Y2hmdWwgPSBwcm9wcy53YXRjaGZ1bDtcbiAgICB0aGlzLmZuID0gcHJvcHMuZm47XG5cbiAgICB0aGlzLndhdGNoZnVsLmNyZWF0ZUFsYXJtKHRoaXMsIE1vbml0b3JUeXBlLkVSUk9SUywgdGhpcy5jcmVhdGVFcnJvcnNNb25pdG9yKHByb3BzLmVycm9yc1Blck1pbnV0ZVRocmVzaG9sZCkpO1xuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlQWxhcm0odGhpcywgTW9uaXRvclR5cGUuVEhST1RUTEVTLCB0aGlzLmNyZWF0ZVRocm90dGxlc01vbml0b3IocHJvcHMudGhyb3R0bGVzUGVyTWludXRlVGhyZXNob2xkKSk7XG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybSh0aGlzLFxuICAgICAgTW9uaXRvclR5cGUuRFVSQVRJT04sXG4gICAgICB0aGlzLmNyZWF0ZUR1cmF0aW9uTW9uaXRvcih0aW1lb3V0U2VjLCBwcm9wcy5kdXJhdGlvblRocmVzaG9sZFBlcmNlbnQpLFxuICAgICk7XG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVMb2dBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICBNb25pdG9yVHlwZS5MT0dfRVJST1JfTU9OSVRPUixcbiAgICAgIHRoaXMuY3JlYXRlTG9nRXJyb3JNb25pdG9yKCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTG9nRXJyb3JNb25pdG9yKCk6IExvZ0FsYXJtUHJvcHMge1xuICAgIHJldHVybiB7XG4gICAgICBhdXRvQ2xvc2VPcHNHZW5pZUFsZXJ0czogdHJ1ZSxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHVuaXRPZlBlcmlvZDogVW5pdE9mUGVyaW9kLk1JTlVURVMsIC8vIHRvRG86IG1vdmUgdGhhdCBzb21ld2hlcmUgZWxzZSBhbmQgc2V0IGRlZmF1bHRzIHRoZXJlP1xuICAgICAgcGVyaW9kT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgc3RhdGlzdGljOiAnY291bnQnLFxuICAgICAgcXVlcnlGaWx0ZXJzOiAnZXJyb3InLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogJ0F1dG8tZ2VuZXJhdGVkIGFsZXJ0IGZvciBMYW1iZGEgZXJyb3IgbG9ncycsXG4gICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICBwcmlvcml0eTogMyxcbiAgICAgIGluZGV4OiAnKicsIC8vIHRvRG86IHdlIHNob3VsZCB0YWtlIGhlcmUgdGhlIHRlYW0gbmFtZSBidXQgZm9yIG9sZGVyIHNldHVwcyB0byB3b3JrIHdlIGtlZXAgdGhhdCBmb3IgY29tcGF0aWJpbGl0eVxuICAgICAgbGFtYmRhQ2xvdWR3YXRjaEdyb3VwTmFtZTogdGhpcy5mbi5mdW5jdGlvbk5hbWUsXG4gICAgfTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZUVycm9yc01vbml0b3IoZXJyb3JzUGVyTWludXRlVGhyZXNob2xkID0gMCk6IE1ldHJpY0FsYXJtUHJvcHMge1xuICAgIGNvbnN0IGZuID0gdGhpcy5mbjtcbiAgICBjb25zdCBlcnJvcnNNZXRyaWMgPSBmbi5tZXRyaWNFcnJvcnMoKTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBlcnJvcnNNZXRyaWMsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgT3ZlciAke2Vycm9yc1Blck1pbnV0ZVRocmVzaG9sZH0gZXJyb3JzIHBlciBtaW51dGVgLFxuICAgICAgdGhyZXNob2xkOiBlcnJvcnNQZXJNaW51dGVUaHJlc2hvbGQsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGN3LkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGhyb3R0bGVzTW9uaXRvcih0aHJvdHRsZXNQZXJNaW51dGVUaHJlc2hvbGQgPSAwKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgZm4gPSB0aGlzLmZuO1xuICAgIGNvbnN0IHRocm90dGxlc01ldHJpYyA9IGZuLm1ldHJpY1Rocm90dGxlcygpO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IHRocm90dGxlc01ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBPdmVyICR7dGhyb3R0bGVzUGVyTWludXRlVGhyZXNob2xkfSB0aHJvdHRsZXMgcGVyIG1pbnV0ZWAsXG4gICAgICB0aHJlc2hvbGQ6IHRocm90dGxlc1Blck1pbnV0ZVRocmVzaG9sZCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEdXJhdGlvbk1vbml0b3IoXG4gICAgdGltZW91dFNlYzogbnVtYmVyLFxuICAgIGR1cmF0aW9uUGVyY2VudFRocmVzaG9sZDogbnVtYmVyID0gREVGQVVMVF9EVVJBVElPTl9USFJFU0hPTERfUEVSQ0VOVCxcbiAgKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgZm4gPSB0aGlzLmZuO1xuICAgIGNvbnN0IGR1cmF0aW9uTWV0cmljID0gZm4ubWV0cmljRHVyYXRpb24oKTtcbiAgICBjb25zdCBkdXJhdGlvblRocmVzaG9sZFNlYyA9IE1hdGguZmxvb3IoKGR1cmF0aW9uUGVyY2VudFRocmVzaG9sZCAvIDEwMCkgKiB0aW1lb3V0U2VjKTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBkdXJhdGlvbk1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBwOTkgbGF0ZW5jeSA+PSAke2R1cmF0aW9uVGhyZXNob2xkU2VjfXMgKCR7ZHVyYXRpb25QZXJjZW50VGhyZXNob2xkfSUpYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IGR1cmF0aW9uVGhyZXNob2xkU2VjICogMTAwMCwgLy8gbWlsbGlzZWNvbmRzXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICB9O1xuICB9XG59XG4iXX0=
|