truemark-cdk-lib 0.0.10 → 0.0.12-alpha.2
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/aws-cloudwatch/lib/extended-alarm.d.ts +27 -0
- package/aws-cloudwatch/lib/extended-alarm.js +39 -0
- package/aws-cloudwatch/lib/index.d.ts +3 -1
- package/aws-cloudwatch/lib/index.js +4 -2
- package/aws-cloudwatch/lib/log-metric-alarm.d.ts +95 -0
- package/aws-cloudwatch/lib/log-metric-alarm.js +32 -0
- package/aws-cloudwatch/lib/log-metric-filter.d.ts +42 -0
- package/aws-cloudwatch/lib/log-metric-filter.js +38 -0
- package/aws-lambda/lib/function-alarms.d.ts +0 -0
- package/aws-lambda/lib/function-alarms.js +328 -0
- package/aws-lambda/lib/index.d.ts +1 -1
- package/aws-lambda/lib/index.js +2 -2
- package/aws-lambda/lib/observed-function.d.ts +236 -0
- package/aws-lambda/lib/observed-function.js +201 -0
- package/aws-lambda/lib/python-function-old.d.ts +0 -0
- package/aws-lambda/lib/python-function-old.js +197 -0
- package/aws-lambda/lib/python-function.d.ts +30 -21
- package/aws-lambda/lib/python-function.js +30 -122
- package/aws-lambda/lib/standard-function.d.ts +0 -180
- package/aws-lambda/lib/standard-function.js +226 -2
- package/aws-route53/lib/index.d.ts +3 -1
- package/aws-route53/lib/index.js +4 -2
- package/aws-route53/lib/latency-a-record.d.ts +28 -0
- package/aws-route53/lib/latency-a-record.js +22 -0
- package/aws-route53/lib/weighted-a-record.d.ts +28 -0
- package/aws-route53/lib/weighted-a-record.js +22 -0
- package/aws-route53/lib/weighted-latency-a-record.d.ts +27 -0
- package/aws-route53/lib/weighted-latency-a-record.js +29 -0
- package/package.json +2 -2
- package/aws-cloudwatch/lib/log-alarm.d.ts +0 -47
- package/aws-cloudwatch/lib/log-alarm.js +0 -53
- package/aws-lambda/lib/helper.d.ts +0 -4
- package/aws-lambda/lib/helper.js +0 -38
- package/aws-route53/lib/weighted-latency-record.d.ts +0 -33
- package/aws-route53/lib/weighted-latency-record.js +0 -34
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Alarm, AlarmProps } from "aws-cdk-lib/aws-cloudwatch";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { ITopic } from "aws-cdk-lib/aws-sns";
|
|
4
|
+
/**
|
|
5
|
+
* Provides helper methods extending the utility of Alarm.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ExtendedAlarm extends Alarm {
|
|
8
|
+
constructor(scope: Construct, id: string, props: AlarmProps);
|
|
9
|
+
/**
|
|
10
|
+
* Notify SNS topics if the alarm fires.
|
|
11
|
+
*
|
|
12
|
+
* @param topics the topics to notify
|
|
13
|
+
*/
|
|
14
|
+
addAlarmTopic(...topics: ITopic[]): void;
|
|
15
|
+
/**
|
|
16
|
+
* Notify SNS topics if the alarm returns from breaching a state into an ok state.
|
|
17
|
+
*
|
|
18
|
+
* @param topics the topics to notify
|
|
19
|
+
*/
|
|
20
|
+
addOkTopic(...topics: ITopic[]): void;
|
|
21
|
+
/**
|
|
22
|
+
* Notify SNS topics if there is insufficient data to evaluate the alarm.
|
|
23
|
+
*
|
|
24
|
+
* @param topics the topics to notify
|
|
25
|
+
*/
|
|
26
|
+
addInsufficientDataTopic(...topics: ITopic[]): void;
|
|
27
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExtendedAlarm = void 0;
|
|
4
|
+
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
5
|
+
const aws_cloudwatch_actions_1 = require("aws-cdk-lib/aws-cloudwatch-actions");
|
|
6
|
+
/**
|
|
7
|
+
* Provides helper methods extending the utility of Alarm.
|
|
8
|
+
*/
|
|
9
|
+
class ExtendedAlarm extends aws_cloudwatch_1.Alarm {
|
|
10
|
+
constructor(scope, id, props) {
|
|
11
|
+
super(scope, id, props);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Notify SNS topics if the alarm fires.
|
|
15
|
+
*
|
|
16
|
+
* @param topics the topics to notify
|
|
17
|
+
*/
|
|
18
|
+
addAlarmTopic(...topics) {
|
|
19
|
+
this.addAlarmAction(...topics.map((topic) => new aws_cloudwatch_actions_1.SnsAction(topic)));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Notify SNS topics if the alarm returns from breaching a state into an ok state.
|
|
23
|
+
*
|
|
24
|
+
* @param topics the topics to notify
|
|
25
|
+
*/
|
|
26
|
+
addOkTopic(...topics) {
|
|
27
|
+
this.addOkAction(...topics.map((topic) => new aws_cloudwatch_actions_1.SnsAction(topic)));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Notify SNS topics if there is insufficient data to evaluate the alarm.
|
|
31
|
+
*
|
|
32
|
+
* @param topics the topics to notify
|
|
33
|
+
*/
|
|
34
|
+
addInsufficientDataTopic(...topics) {
|
|
35
|
+
this.addInsufficientDataAction(...topics.map((topic) => new aws_cloudwatch_actions_1.SnsAction(topic)));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ExtendedAlarm = ExtendedAlarm;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtYWxhcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlbmRlZC1hbGFybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBNkQ7QUFHN0QsK0VBQTZEO0FBRTdEOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsc0JBQUs7SUFDdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQjtRQUN6RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxHQUFHLE1BQWdCO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLGtDQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLEdBQUcsTUFBZ0I7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksa0NBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx3QkFBd0IsQ0FBQyxHQUFHLE1BQWdCO1FBQzFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksa0NBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztDQUNGO0FBL0JELHNDQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWxhcm0sIEFsYXJtUHJvcHN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0lUb3BpY30gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zbnNcIjtcbmltcG9ydCB7U25zQWN0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gtYWN0aW9uc1wiO1xuXG4vKipcbiAqIFByb3ZpZGVzIGhlbHBlciBtZXRob2RzIGV4dGVuZGluZyB0aGUgdXRpbGl0eSBvZiBBbGFybS5cbiAqL1xuZXhwb3J0IGNsYXNzIEV4dGVuZGVkQWxhcm0gZXh0ZW5kcyBBbGFybSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBbGFybVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogTm90aWZ5IFNOUyB0b3BpY3MgaWYgdGhlIGFsYXJtIGZpcmVzLlxuICAgKlxuICAgKiBAcGFyYW0gdG9waWNzIHRoZSB0b3BpY3MgdG8gbm90aWZ5XG4gICAqL1xuICBhZGRBbGFybVRvcGljKC4uLnRvcGljczogSVRvcGljW10pOiB2b2lkIHtcbiAgICB0aGlzLmFkZEFsYXJtQWN0aW9uKC4uLnRvcGljcy5tYXAoKHRvcGljKSA9PiBuZXcgU25zQWN0aW9uKHRvcGljKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmeSBTTlMgdG9waWNzIGlmIHRoZSBhbGFybSByZXR1cm5zIGZyb20gYnJlYWNoaW5nIGEgc3RhdGUgaW50byBhbiBvayBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHRvcGljcyB0aGUgdG9waWNzIHRvIG5vdGlmeVxuICAgKi9cbiAgYWRkT2tUb3BpYyguLi50b3BpY3M6IElUb3BpY1tdKTogdm9pZCB7XG4gICAgdGhpcy5hZGRPa0FjdGlvbiguLi50b3BpY3MubWFwKCh0b3BpYykgPT4gbmV3IFNuc0FjdGlvbih0b3BpYykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RpZnkgU05TIHRvcGljcyBpZiB0aGVyZSBpcyBpbnN1ZmZpY2llbnQgZGF0YSB0byBldmFsdWF0ZSB0aGUgYWxhcm0uXG4gICAqXG4gICAqIEBwYXJhbSB0b3BpY3MgdGhlIHRvcGljcyB0byBub3RpZnlcbiAgICovXG4gIGFkZEluc3VmZmljaWVudERhdGFUb3BpYyguLi50b3BpY3M6IElUb3BpY1tdKTogdm9pZCB7XG4gICAgdGhpcy5hZGRJbnN1ZmZpY2llbnREYXRhQWN0aW9uKC4uLnRvcGljcy5tYXAoKHRvcGljKSA9PiBuZXcgU25zQWN0aW9uKHRvcGljKSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -10,5 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
10
10
|
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./
|
|
14
|
-
|
|
13
|
+
__exportStar(require("./extended-alarm"), exports);
|
|
14
|
+
__exportStar(require("./log-metric-filter"), exports);
|
|
15
|
+
__exportStar(require("./log-metric-alarm"), exports);
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxtREFBaUM7QUFDakMsc0RBQW9DO0FBQ3BDLHFEQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXh0ZW5kZWQtYWxhcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9sb2ctbWV0cmljLWZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xvZy1tZXRyaWMtYWxhcm0nO1xuIl19
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Metric } from "aws-cdk-lib/aws-cloudwatch";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { LogMetricFilter, LogMetricFilterProps } from "./log-metric-filter";
|
|
4
|
+
import { Duration } from "aws-cdk-lib";
|
|
5
|
+
import { ComparisonOperator, TreatMissingData } from "aws-cdk-lib/aws-cloudwatch/lib/alarm";
|
|
6
|
+
import { ExtendedAlarm } from "./extended-alarm";
|
|
7
|
+
/**
|
|
8
|
+
* Properties for LogAlarm.
|
|
9
|
+
*/
|
|
10
|
+
export interface LogMetricAlarmProps extends LogMetricFilterProps {
|
|
11
|
+
/**
|
|
12
|
+
* The period over which statistics are applied
|
|
13
|
+
*
|
|
14
|
+
* Default is 5 minutes.
|
|
15
|
+
*/
|
|
16
|
+
readonly period?: Duration;
|
|
17
|
+
/**
|
|
18
|
+
* Name of the alarm
|
|
19
|
+
*
|
|
20
|
+
* @default Automatically generated name
|
|
21
|
+
*/
|
|
22
|
+
readonly alarmName?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Description for the alarm
|
|
25
|
+
*
|
|
26
|
+
* @default No description
|
|
27
|
+
*/
|
|
28
|
+
readonly alarmDescription?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Comparison to use to check if metric is breaching
|
|
31
|
+
*
|
|
32
|
+
* @default GreaterThanOrEqualToThreshold
|
|
33
|
+
*/
|
|
34
|
+
readonly comparisonOperator?: ComparisonOperator;
|
|
35
|
+
/**
|
|
36
|
+
* The value against which the specified statistic is compared.
|
|
37
|
+
*
|
|
38
|
+
* @default 1
|
|
39
|
+
*/
|
|
40
|
+
readonly threshold?: number;
|
|
41
|
+
/**
|
|
42
|
+
* The number of periods over which data is compared to the specified threshold.
|
|
43
|
+
*
|
|
44
|
+
* @default 3
|
|
45
|
+
*/
|
|
46
|
+
readonly evaluationPeriods?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Specifies whether to evaluate the data and potentially change the alarm state if there are too few data points to be statistically significant.
|
|
49
|
+
*
|
|
50
|
+
* Used only for alarms that are based on percentiles.
|
|
51
|
+
*
|
|
52
|
+
* @default - Not configured.
|
|
53
|
+
*/
|
|
54
|
+
readonly evaluateLowSampleCountPercentile?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Sets how this alarm is to handle missing data points.
|
|
57
|
+
*
|
|
58
|
+
* @default TreatMissingData.Missing
|
|
59
|
+
*/
|
|
60
|
+
readonly treatMissingData?: TreatMissingData;
|
|
61
|
+
/**
|
|
62
|
+
* Whether the actions for this alarm are enabled
|
|
63
|
+
*
|
|
64
|
+
* @default true
|
|
65
|
+
*/
|
|
66
|
+
readonly actionsEnabled?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M
|
|
69
|
+
* out of N" alarm. In that case, this value is the M. For more information, see Evaluating an Alarm in the Amazon
|
|
70
|
+
* CloudWatch User Guide.
|
|
71
|
+
*
|
|
72
|
+
* @default 1
|
|
73
|
+
*
|
|
74
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation
|
|
75
|
+
*/
|
|
76
|
+
readonly datapointsToAlarm?: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* CloudWatch alarm that matches patterns on a LogGroup. This class is a higher-level
|
|
80
|
+
* construct than LogMetricAlarm and will create the filter and metric.
|
|
81
|
+
*/
|
|
82
|
+
export declare class LogMetricAlarm extends ExtendedAlarm {
|
|
83
|
+
/**
|
|
84
|
+
* The filter created using the parent scope.
|
|
85
|
+
*/
|
|
86
|
+
readonly filter: LogMetricFilter;
|
|
87
|
+
/**
|
|
88
|
+
* The metric created from the filter.
|
|
89
|
+
*/
|
|
90
|
+
readonly metric: Metric;
|
|
91
|
+
/**
|
|
92
|
+
* Creates a new LogAlarm.
|
|
93
|
+
*/
|
|
94
|
+
constructor(scope: Construct, id: string, props: LogMetricAlarmProps);
|
|
95
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LogMetricAlarm = void 0;
|
|
4
|
+
const log_metric_filter_1 = require("./log-metric-filter");
|
|
5
|
+
const extended_alarm_1 = require("./extended-alarm");
|
|
6
|
+
/**
|
|
7
|
+
* CloudWatch alarm that matches patterns on a LogGroup. This class is a higher-level
|
|
8
|
+
* construct than LogMetricAlarm and will create the filter and metric.
|
|
9
|
+
*/
|
|
10
|
+
class LogMetricAlarm extends extended_alarm_1.ExtendedAlarm {
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new LogAlarm.
|
|
13
|
+
*/
|
|
14
|
+
constructor(scope, id, props) {
|
|
15
|
+
var _a, _b, _c;
|
|
16
|
+
const filter = new log_metric_filter_1.LogMetricFilter(scope, id + 'Filter', {
|
|
17
|
+
...props
|
|
18
|
+
});
|
|
19
|
+
const metric = filter.sumMetric(props.period);
|
|
20
|
+
super(scope, id, {
|
|
21
|
+
...props,
|
|
22
|
+
threshold: (_a = props.threshold) !== null && _a !== void 0 ? _a : 1,
|
|
23
|
+
evaluationPeriods: (_b = props.evaluationPeriods) !== null && _b !== void 0 ? _b : 3,
|
|
24
|
+
datapointsToAlarm: (_c = props.datapointsToAlarm) !== null && _c !== void 0 ? _c : 1,
|
|
25
|
+
metric
|
|
26
|
+
});
|
|
27
|
+
this.filter = filter;
|
|
28
|
+
this.metric = metric;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.LogMetricAlarm = LogMetricAlarm;
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLW1ldHJpYy1hbGFybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZy1tZXRyaWMtYWxhcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsMkRBQTBFO0FBRzFFLHFEQUErQztBQXNGL0M7OztHQUdHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsOEJBQWE7SUFZL0M7O09BRUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCOztRQUVsRSxNQUFNLE1BQU0sR0FBRyxJQUFJLG1DQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxRQUFRLEVBQUU7WUFDdkQsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixTQUFTLFFBQUUsS0FBSyxDQUFDLFNBQVMsbUNBQUUsQ0FBQztZQUM3QixpQkFBaUIsUUFBRSxLQUFLLENBQUMsaUJBQWlCLG1DQUFFLENBQUM7WUFDN0MsaUJBQWlCLFFBQUUsS0FBSyxDQUFDLGlCQUFpQixtQ0FBRSxDQUFDO1lBQzdDLE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUFsQ0Qsd0NBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNZXRyaWN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0xvZ01ldHJpY0ZpbHRlciwgTG9nTWV0cmljRmlsdGVyUHJvcHN9IGZyb20gXCIuL2xvZy1tZXRyaWMtZmlsdGVyXCI7XG5pbXBvcnQge0R1cmF0aW9ufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7Q29tcGFyaXNvbk9wZXJhdG9yLCBUcmVhdE1pc3NpbmdEYXRhfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gvbGliL2FsYXJtXCI7XG5pbXBvcnQge0V4dGVuZGVkQWxhcm19IGZyb20gXCIuL2V4dGVuZGVkLWFsYXJtXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgTG9nQWxhcm0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nTWV0cmljQWxhcm1Qcm9wcyBleHRlbmRzIExvZ01ldHJpY0ZpbHRlclByb3BzIHtcblxuICAvKipcbiAgICogVGhlIHBlcmlvZCBvdmVyIHdoaWNoIHN0YXRpc3RpY3MgYXJlIGFwcGxpZWRcbiAgICpcbiAgICogRGVmYXVsdCBpcyA1IG1pbnV0ZXMuXG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q/OiBEdXJhdGlvblxuXG4gIC8vIEJlbG93IGFyZSBmaWVsZHMgZnJvbSBDcmVhdGVBbGFybU9wdGlvbnMgd2hpY2ggd2UgbmVlZCB0byBvdmVycmlkZVxuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBhbGFybVxuICAgKlxuICAgKiBAZGVmYXVsdCBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBhbGFybU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIGZvciB0aGUgYWxhcm1cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbXBhcmlzb24gdG8gdXNlIHRvIGNoZWNrIGlmIG1ldHJpYyBpcyBicmVhY2hpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgR3JlYXRlclRoYW5PckVxdWFsVG9UaHJlc2hvbGRcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBhcmlzb25PcGVyYXRvcj86IENvbXBhcmlzb25PcGVyYXRvcjtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIGFnYWluc3Qgd2hpY2ggdGhlIHNwZWNpZmllZCBzdGF0aXN0aWMgaXMgY29tcGFyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IHRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwZXJpb2RzIG92ZXIgd2hpY2ggZGF0YSBpcyBjb21wYXJlZCB0byB0aGUgc3BlY2lmaWVkIHRocmVzaG9sZC5cbiAgICpcbiAgICogQGRlZmF1bHQgM1xuICAgKi9cbiAgcmVhZG9ubHkgZXZhbHVhdGlvblBlcmlvZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHRvIGV2YWx1YXRlIHRoZSBkYXRhIGFuZCBwb3RlbnRpYWxseSBjaGFuZ2UgdGhlIGFsYXJtIHN0YXRlIGlmIHRoZXJlIGFyZSB0b28gZmV3IGRhdGEgcG9pbnRzIHRvIGJlIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQuXG4gICAqXG4gICAqIFVzZWQgb25seSBmb3IgYWxhcm1zIHRoYXQgYXJlIGJhc2VkIG9uIHBlcmNlbnRpbGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCBjb25maWd1cmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZhbHVhdGVMb3dTYW1wbGVDb3VudFBlcmNlbnRpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldHMgaG93IHRoaXMgYWxhcm0gaXMgdG8gaGFuZGxlIG1pc3NpbmcgZGF0YSBwb2ludHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFRyZWF0TWlzc2luZ0RhdGEuTWlzc2luZ1xuICAgKi9cbiAgcmVhZG9ubHkgdHJlYXRNaXNzaW5nRGF0YT86IFRyZWF0TWlzc2luZ0RhdGE7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0gYXJlIGVuYWJsZWRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uc0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgdGhhdCBtdXN0IGJlIGJyZWFjaGluZyB0byB0cmlnZ2VyIHRoZSBhbGFybS4gVGhpcyBpcyB1c2VkIG9ubHkgaWYgeW91IGFyZSBzZXR0aW5nIGFuIFwiTVxuICAgKiBvdXQgb2YgTlwiIGFsYXJtLiBJbiB0aGF0IGNhc2UsIHRoaXMgdmFsdWUgaXMgdGhlIE0uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgRXZhbHVhdGluZyBhbiBBbGFybSBpbiB0aGUgQW1hem9uXG4gICAqIENsb3VkV2F0Y2ggVXNlciBHdWlkZS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9tb25pdG9yaW5nL0FsYXJtVGhhdFNlbmRzRW1haWwuaHRtbCNhbGFybS1ldmFsdWF0aW9uXG4gICAqL1xuICByZWFkb25seSBkYXRhcG9pbnRzVG9BbGFybT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDbG91ZFdhdGNoIGFsYXJtIHRoYXQgbWF0Y2hlcyBwYXR0ZXJucyBvbiBhIExvZ0dyb3VwLiBUaGlzIGNsYXNzIGlzIGEgaGlnaGVyLWxldmVsXG4gKiBjb25zdHJ1Y3QgdGhhbiBMb2dNZXRyaWNBbGFybSBhbmQgd2lsbCBjcmVhdGUgdGhlIGZpbHRlciBhbmQgbWV0cmljLlxuICovXG5leHBvcnQgY2xhc3MgTG9nTWV0cmljQWxhcm0gZXh0ZW5kcyBFeHRlbmRlZEFsYXJtIHtcblxuICAvKipcbiAgICogVGhlIGZpbHRlciBjcmVhdGVkIHVzaW5nIHRoZSBwYXJlbnQgc2NvcGUuXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXI6IExvZ01ldHJpY0ZpbHRlcjtcblxuICAvKipcbiAgICogVGhlIG1ldHJpYyBjcmVhdGVkIGZyb20gdGhlIGZpbHRlci5cbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpYzogTWV0cmljXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTG9nQWxhcm0uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTG9nTWV0cmljQWxhcm1Qcm9wcykge1xuXG4gICAgY29uc3QgZmlsdGVyID0gbmV3IExvZ01ldHJpY0ZpbHRlcihzY29wZSwgaWQgKyAnRmlsdGVyJywge1xuICAgICAgLi4ucHJvcHNcbiAgICB9KTtcblxuICAgIGNvbnN0IG1ldHJpYyA9IGZpbHRlci5zdW1NZXRyaWMocHJvcHMucGVyaW9kKTtcblxuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICB0aHJlc2hvbGQ6IHByb3BzLnRocmVzaG9sZD8/MSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBwcm9wcy5ldmFsdWF0aW9uUGVyaW9kcz8/MyxcbiAgICAgIGRhdGFwb2ludHNUb0FsYXJtOiBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybT8/MSxcbiAgICAgIG1ldHJpY1xuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7XG4gICAgdGhpcy5tZXRyaWMgPSBtZXRyaWM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { ILogGroup, MetricFilter } from "aws-cdk-lib/aws-logs";
|
|
3
|
+
import { Duration } from "aws-cdk-lib";
|
|
4
|
+
import { Metric } from "aws-cdk-lib/aws-cloudwatch";
|
|
5
|
+
/**
|
|
6
|
+
* Properties for LogMetricFilter.
|
|
7
|
+
*/
|
|
8
|
+
export interface LogMetricFilterProps {
|
|
9
|
+
/**
|
|
10
|
+
* The namespace of the metric to emit.
|
|
11
|
+
*
|
|
12
|
+
* @default 'AWS/Logs'
|
|
13
|
+
*/
|
|
14
|
+
readonly metricNamespace?: string;
|
|
15
|
+
/**
|
|
16
|
+
* The name of the metric to emit.
|
|
17
|
+
*/
|
|
18
|
+
readonly metricName: string;
|
|
19
|
+
/**
|
|
20
|
+
* The pattern to apply to the logs.
|
|
21
|
+
*/
|
|
22
|
+
readonly pattern: string;
|
|
23
|
+
/**
|
|
24
|
+
* The log group to create the filter on.
|
|
25
|
+
*/
|
|
26
|
+
readonly logGroup: ILogGroup;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* MetricFilter that counts the number of records matching the provided pattern.
|
|
30
|
+
*/
|
|
31
|
+
export declare class LogMetricFilter extends MetricFilter {
|
|
32
|
+
/**
|
|
33
|
+
* Creates a new LogMetricFilter
|
|
34
|
+
*/
|
|
35
|
+
constructor(scope: Construct, id: string, props: LogMetricFilterProps);
|
|
36
|
+
/**
|
|
37
|
+
* Returns the sum metric for this filter.
|
|
38
|
+
*
|
|
39
|
+
* @param period the period over which statistics are applied (default is 5 minutes)
|
|
40
|
+
*/
|
|
41
|
+
sumMetric(period?: Duration): Metric;
|
|
42
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LogMetricFilter = void 0;
|
|
4
|
+
const aws_logs_1 = require("aws-cdk-lib/aws-logs");
|
|
5
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
|
+
/**
|
|
7
|
+
* MetricFilter that counts the number of records matching the provided pattern.
|
|
8
|
+
*/
|
|
9
|
+
class LogMetricFilter extends aws_logs_1.MetricFilter {
|
|
10
|
+
/**
|
|
11
|
+
* Creates a new LogMetricFilter
|
|
12
|
+
*/
|
|
13
|
+
constructor(scope, id, props) {
|
|
14
|
+
var _a;
|
|
15
|
+
super(scope, id, {
|
|
16
|
+
...props,
|
|
17
|
+
metricNamespace: (_a = props.metricNamespace) !== null && _a !== void 0 ? _a : 'AWS/Logs',
|
|
18
|
+
defaultValue: 0,
|
|
19
|
+
metricValue: '1',
|
|
20
|
+
filterPattern: {
|
|
21
|
+
logPatternString: props.pattern
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns the sum metric for this filter.
|
|
27
|
+
*
|
|
28
|
+
* @param period the period over which statistics are applied (default is 5 minutes)
|
|
29
|
+
*/
|
|
30
|
+
sumMetric(period) {
|
|
31
|
+
return this.metric({
|
|
32
|
+
statistic: 'Sum',
|
|
33
|
+
period: period !== null && period !== void 0 ? period : aws_cdk_lib_1.Duration.minutes(5)
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.LogMetricFilter = LogMetricFilter;
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLW1ldHJpYy1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsb2ctbWV0cmljLWZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBNkQ7QUFDN0QsNkNBQXFDO0FBZ0NyQzs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSx1QkFBWTtJQUUvQzs7T0FFRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7O1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsZUFBZSxRQUFFLEtBQUssQ0FBQyxlQUFlLG1DQUFFLFVBQVU7WUFDbEQsWUFBWSxFQUFFLENBQUM7WUFDZixXQUFXLEVBQUUsR0FBRztZQUNoQixhQUFhLEVBQUU7Z0JBQ2IsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE9BQU87YUFDaEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxNQUFpQjtRQUN6QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDakIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsTUFBTSxFQUFFLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE1QkQsMENBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0lMb2dHcm91cCwgTWV0cmljRmlsdGVyfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCB7RHVyYXRpb259IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtNZXRyaWN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIExvZ01ldHJpY0ZpbHRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dNZXRyaWNGaWx0ZXJQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2Ugb2YgdGhlIG1ldHJpYyB0byBlbWl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnQVdTL0xvZ3MnXG4gICAqL1xuICByZWFkb25seSBtZXRyaWNOYW1lc3BhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWMgdG8gZW1pdC5cbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdHRlcm4gdG8gYXBwbHkgdG8gdGhlIGxvZ3MuXG4gICAqL1xuICByZWFkb25seSBwYXR0ZXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2cgZ3JvdXAgdG8gY3JlYXRlIHRoZSBmaWx0ZXIgb24uXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cDogSUxvZ0dyb3VwO1xuXG59XG5cbi8qKlxuICogTWV0cmljRmlsdGVyIHRoYXQgY291bnRzIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBtYXRjaGluZyB0aGUgcHJvdmlkZWQgcGF0dGVybi5cbiAqL1xuZXhwb3J0IGNsYXNzIExvZ01ldHJpY0ZpbHRlciBleHRlbmRzIE1ldHJpY0ZpbHRlciB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTG9nTWV0cmljRmlsdGVyXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTG9nTWV0cmljRmlsdGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgbWV0cmljTmFtZXNwYWNlOiBwcm9wcy5tZXRyaWNOYW1lc3BhY2U/PydBV1MvTG9ncycsXG4gICAgICBkZWZhdWx0VmFsdWU6IDAsXG4gICAgICBtZXRyaWNWYWx1ZTogJzEnLFxuICAgICAgZmlsdGVyUGF0dGVybjoge1xuICAgICAgICBsb2dQYXR0ZXJuU3RyaW5nOiBwcm9wcy5wYXR0ZXJuXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc3VtIG1ldHJpYyBmb3IgdGhpcyBmaWx0ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwZXJpb2QgdGhlIHBlcmlvZCBvdmVyIHdoaWNoIHN0YXRpc3RpY3MgYXJlIGFwcGxpZWQgKGRlZmF1bHQgaXMgNSBtaW51dGVzKVxuICAgKi9cbiAgc3VtTWV0cmljKHBlcmlvZD86IER1cmF0aW9uKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoe1xuICAgICAgc3RhdGlzdGljOiAnU3VtJyxcbiAgICAgIHBlcmlvZDogcGVyaW9kPz9EdXJhdGlvbi5taW51dGVzKDUpXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
File without changes
|