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.
Files changed (35) hide show
  1. package/aws-cloudwatch/lib/extended-alarm.d.ts +27 -0
  2. package/aws-cloudwatch/lib/extended-alarm.js +39 -0
  3. package/aws-cloudwatch/lib/index.d.ts +3 -1
  4. package/aws-cloudwatch/lib/index.js +4 -2
  5. package/aws-cloudwatch/lib/log-metric-alarm.d.ts +95 -0
  6. package/aws-cloudwatch/lib/log-metric-alarm.js +32 -0
  7. package/aws-cloudwatch/lib/log-metric-filter.d.ts +42 -0
  8. package/aws-cloudwatch/lib/log-metric-filter.js +38 -0
  9. package/aws-lambda/lib/function-alarms.d.ts +0 -0
  10. package/aws-lambda/lib/function-alarms.js +328 -0
  11. package/aws-lambda/lib/index.d.ts +1 -1
  12. package/aws-lambda/lib/index.js +2 -2
  13. package/aws-lambda/lib/observed-function.d.ts +236 -0
  14. package/aws-lambda/lib/observed-function.js +201 -0
  15. package/aws-lambda/lib/python-function-old.d.ts +0 -0
  16. package/aws-lambda/lib/python-function-old.js +197 -0
  17. package/aws-lambda/lib/python-function.d.ts +30 -21
  18. package/aws-lambda/lib/python-function.js +30 -122
  19. package/aws-lambda/lib/standard-function.d.ts +0 -180
  20. package/aws-lambda/lib/standard-function.js +226 -2
  21. package/aws-route53/lib/index.d.ts +3 -1
  22. package/aws-route53/lib/index.js +4 -2
  23. package/aws-route53/lib/latency-a-record.d.ts +28 -0
  24. package/aws-route53/lib/latency-a-record.js +22 -0
  25. package/aws-route53/lib/weighted-a-record.d.ts +28 -0
  26. package/aws-route53/lib/weighted-a-record.js +22 -0
  27. package/aws-route53/lib/weighted-latency-a-record.d.ts +27 -0
  28. package/aws-route53/lib/weighted-latency-a-record.js +29 -0
  29. package/package.json +2 -2
  30. package/aws-cloudwatch/lib/log-alarm.d.ts +0 -47
  31. package/aws-cloudwatch/lib/log-alarm.js +0 -53
  32. package/aws-lambda/lib/helper.d.ts +0 -4
  33. package/aws-lambda/lib/helper.js +0 -38
  34. package/aws-route53/lib/weighted-latency-record.d.ts +0 -33
  35. 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=
@@ -1 +1,3 @@
1
- export * from './log-alarm';
1
+ export * from './extended-alarm';
2
+ export * from './log-metric-filter';
3
+ export * from './log-metric-alarm';
@@ -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("./log-alarm"), exports);
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvZy1hbGFybSc7XG4iXX0=
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