serverless-plugin-datadog 2.33.0 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +27 -27
- package/dist/package.json +1 -1
- package/dist/src/env.d.ts +2 -3
- package/dist/src/env.d.ts.map +1 -1
- package/dist/src/env.js +2 -3
- package/dist/src/env.js.map +1 -1
- package/dist/src/forwarder.d.ts +13 -3
- package/dist/src/forwarder.d.ts.map +1 -1
- package/dist/src/forwarder.js +168 -36
- package/dist/src/forwarder.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +27 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/layers-gov.json +10 -10
- package/dist/src/layers.json +105 -105
- package/dist/src/monitor-api-requests.d.ts +5 -5
- package/dist/src/monitor-api-requests.d.ts.map +1 -1
- package/dist/src/monitor-api-requests.js +10 -10
- package/dist/src/monitor-api-requests.js.map +1 -1
- package/dist/src/monitors.d.ts +1 -1
- package/dist/src/monitors.d.ts.map +1 -1
- package/dist/src/monitors.js +7 -7
- package/dist/src/monitors.js.map +1 -1
- package/dist/src/output.js.map +1 -1
- package/dist/src/serverless_monitors.js +2 -2
- package/dist/src/serverless_monitors.js.map +1 -1
- package/dist/src/wrapper.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
@@ -25,31 +25,31 @@ Each version of the plugin is published with a [specific set of versions of the
|
|
25
25
|
|
26
26
|
To further configure your plugin, use the following custom parameters in your `serverless.yml`:
|
27
27
|
|
28
|
-
| Parameter
|
29
|
-
|
|
30
|
-
| `flushMetricsToLogs`
|
31
|
-
| `site`
|
32
|
-
| `apiKey`
|
33
|
-
| `apiKMSKey`
|
34
|
-
| `monitorsApiKey`
|
35
|
-
| `monitorsAppKey`
|
36
|
-
| `addLayers`
|
37
|
-
| `addExtension`
|
38
|
-
| `logLevel`
|
39
|
-
| `enableXrayTracing`
|
40
|
-
| `enableDDTracing`
|
41
|
-
| `enableDDLogs`
|
42
|
-
| `
|
43
|
-
| `
|
44
|
-
|
45
|
-
| `forwarderArn`
|
46
|
-
| `integrationTesting`
|
47
|
-
| `enableTags`
|
48
|
-
| `injectLogContext`
|
49
|
-
| `exclude`
|
50
|
-
| `enabled`
|
51
|
-
| `monitors`
|
52
|
-
| `customHandler`
|
28
|
+
| Parameter | Description |
|
29
|
+
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
30
|
+
| `flushMetricsToLogs` | Send custom metrics by using logs with the Datadog Forwarder Lambda function (recommended). Defaults to `true`. If you disable this parameter, it's required to set `apiKey` (or `apiKMSKey` if encrypted). `flushMetricsToLogs` is ignored when `addExtension` is true. |
|
31
|
+
| `site` | Set which Datadog site to send data, this is only used when `flushMetricsToLogs` is `false` or `addExtension` is `true`. Possible values are `datadoghq.com`, `datadoghq.eu`, `us3.datadoghq.com` and `ddog-gov.com`. The default is `datadoghq.com`. |
|
32
|
+
| `apiKey` | Datadog API Key, only needed when `flushMetricsToLogs` is `false` or `addExtension` is `true`. Defining `apiKey` will add the Datadog API key directly to your Lambda functions as an environment variable. For more information about getting a Datadog API key, see the [API key documentation][3]. |
|
33
|
+
| `apiKMSKey` | Datadog API Key encrypted using KMS. Use this parameter in place of `apiKey` when `flushMetricsToLogs` is `false` or `addExtension` is `true`, and you are using KMS encryption. Defining `apiKMSKey` will add the Datadog API Key directly to your Lambda functions as an environment variable. |
|
34
|
+
| `monitorsApiKey` | Datadog API Key. Only needed when using plugin to create monitors for your functions and when `monitors` is defined. Separate from `apiKey` with your function, `monitorsApiKey` is only used to create monitors through the Datadog Monitors API. You may use the same API key for both `apiKey` and `monitorsApiKey`. |
|
35
|
+
| `monitorsAppKey` | Datadog Application Key. Only needed when using plugin to create monitors for your function and when `monitors` is defined. |
|
36
|
+
| `addLayers` | Whether to install the Datadog Lambda library as a layer. Defaults to `true`. Set to `false` when you plan to package the Datadog Lambda library to your function's deployment package on your own so that you can install a specific version of the Datadog Lambda library ([Python][4] or [Node.js][5]). |
|
37
|
+
| `addExtension` | Whether to install the Datadog Lambda Extension as a layer. Defaults to `false`. When enabled, it's required to set the `apiKey` (or `apiKMSKey`) parameter. Learn more about the Lambda Extension Layer [here][8]. Note: AWS only supports Lambda Extensions for [certain runtimes][9]. |
|
38
|
+
| `logLevel` | The log level, set to `DEBUG` for extended logging. |
|
39
|
+
| `enableXrayTracing` | Set `true` to enable X-Ray tracing on the Lambda functions and API Gateway integrations. Defaults to `false`. |
|
40
|
+
| `enableDDTracing` | Enable Datadog tracing on the Lambda function. Note: This applies only to integrations using the Datadog Extension. Defaults to `true`. |
|
41
|
+
| `enableDDLogs` | Enable Datadog log collection for the Lambda function. Note: This setting has no effect on logs sent via the Datadog Forwarder. Defaults to `true`. |
|
42
|
+
| `subscribeToAccessLogs` | Enable automatic subscription of the Datadog Forwarder to API Gateway Access log groups. Requires that logging for the respective APIs are enabled in the provider section of the `serverless.yaml` file. Defaults to `true`. ] |
|
43
|
+
| `subscribeToExecutionLogs` | Enable automatic subscription of the Datadog Forwarder to Execution log groups for REST and Websocket APIs. Requires that logging for the respective APIs are enabled in the provider section of the `serverless.yaml` file. Note: CloudFormation does not maintain these log groups. If the stack is removed the log groups will need to be removed manually or the next deploy may be unsuccessful. Defaults to `false`. |
|
44
|
+
|
45
|
+
| `forwarderArn` | Setting this parameter subscribes the given Datadog forwarder to the Lambda functions’ CloudWatch log groups. Required when `enableDDTracing` is set to `true` unless the subscription is otherwise applied. For example, if a Datadog Forwarder subscription is applied via Datadog's AWS Integration, then `forwarderArn` is not required. |
|
46
|
+
| `integrationTesting` | Set `true` when running integration tests. This will bypass the validation of the Forwarder ARN and the addition of Datadog Monitor output links. Defaults to `false`. |
|
47
|
+
| `enableTags` | When set, automatically tag the Lambda functions with the `service` and `env` tags using the `service` and `stage` values from the serverless application definition. It does NOT override if a `service` or `env` tag already exists. Defaults to `true`. |
|
48
|
+
| `injectLogContext` | When set, the lambda layer will automatically patch console.log with Datadog's tracing ids. Defaults to `true`. |
|
49
|
+
| `exclude` | When set, this plugin will ignore all specified functions. Use this parameter if you have any functions that should not include Datadog functionality. Defaults to `[]`. |
|
50
|
+
| `enabled` | When set to false, the Datadog plugin will stay inactive. Defaults to `true`. You can control this option using an environment variable, e.g. `enabled: ${strToBool(${env:DD_PLUGIN_ENABLED, true})}`, to activate/deactivate the plugin during deployment. Alternatively, you can also use the value passed in through `--stage` to control this option, [see example.](#disable-plugin-for-particular-environment) |
|
51
|
+
| `monitors` | When defined, the Datadog plugin will configure monitors for the deployed function. You must also have `monitorsApiKey` and `monitorsAppKey` defined. To learn how to define monitors, see [To Enable and Configure a Recommended Serverless Monitor.](#to-enable-and-configure-a-recommended-serverless-monitor) |
|
52
|
+
| `customHandler` | When set, the specified handler is set as the handler for all the functions. By default, the handler is set to `/opt/nodejs/node_modules/datadog-lambda-js/handler.handler` if `addLayers` is set to `true`, or `node_modules/datadog-lambda-js/dist/handler.handler` if `addLayers` is set to `false` |
|
53
53
|
|
54
54
|
To use any of these parameters, add a `custom` > `datadog` section to your `serverless.yml` similar to this example:
|
55
55
|
|
@@ -66,7 +66,7 @@ custom:
|
|
66
66
|
enableXrayTracing: false
|
67
67
|
enableDDTracing: true
|
68
68
|
enableDDLogs: true
|
69
|
-
|
69
|
+
subscribeToAccessLogs: true
|
70
70
|
forwarderArn: arn:aws:lambda:us-east-1:000000000000:function:datadog-forwarder
|
71
71
|
enableTags: true
|
72
72
|
injectLogContext: true
|
@@ -156,7 +156,7 @@ There are seven recommended monitors with default values pre-configured.
|
|
156
156
|
| :------------------: | :--------------------------------------------------------------------------------------: | :--------: | :--------------------: |
|
157
157
|
| High Error Rate | `aws.lambda.errors`/`aws.lambda.invocations` | >= 10% | `high_error_rate` |
|
158
158
|
| Timeout | `aws.lambda.duration.max`/`aws.lambda.timeout` | >= 1 | `timeout` |
|
159
|
-
| Out of Memory |
|
159
|
+
| Out of Memory | `aws.lambda.enhanced.out_of_memory` | > 0 | `out_of_memory` |
|
160
160
|
| High Iterator Age | `aws.lambda.iterator_age.maximum` | >= 24 hrs | `high_iterator_age` |
|
161
161
|
| High Cold Start Rate | `aws.lambda.enhanced.invocations(cold_start:true)`/<br>`aws.lambda.enhanced.invocations` | >= 20% | `high_cold_start_rate` |
|
162
162
|
| High Throttles | `aws.lambda.throttles`/`aws.lambda.invocations` | >= 20% | `high_throttles` |
|
package/dist/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "serverless-plugin-datadog",
|
3
|
-
"version": "
|
3
|
+
"version": "3.0.1",
|
4
4
|
"description": "Serverless plugin to automatically instrument python and node functions with datadog tracing",
|
5
5
|
"main": "dist/src/index.js",
|
6
6
|
"repository": "https://github.com/DataDog/serverless-plugin-datadog",
|
package/dist/src/env.d.ts
CHANGED
@@ -25,9 +25,8 @@ export interface Configuration {
|
|
25
25
|
[key: string]: any;
|
26
26
|
};
|
27
27
|
}[];
|
28
|
-
|
29
|
-
|
30
|
-
subscribeToWebsocketLogs: boolean;
|
28
|
+
subscribeToAccessLogs: boolean;
|
29
|
+
subscribeToExecutionLogs: boolean;
|
31
30
|
customHandler?: string;
|
32
31
|
}
|
33
32
|
export declare const defaultConfiguration: Configuration;
|
package/dist/src/env.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,OAAO,MAAM,4BAA4B,CAAC;AAEjD,MAAM,WAAW,aAAa;IAE5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,SAAS,EAAE,OAAO,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,iBAAiB,EAAE,OAAO,CAAC;IAE3B,eAAe,EAAE,OAAO,CAAC;IAEzB,YAAY,EAAE,OAAO,CAAC;IAEtB,YAAY,EAAE,OAAO,CAAC;IAGtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAI7B,UAAU,EAAE,OAAO,CAAC;IAEpB,gBAAgB,EAAE,OAAO,CAAC;IAG1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;IAGtD,
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,OAAO,MAAM,4BAA4B,CAAC;AAEjD,MAAM,WAAW,aAAa;IAE5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,SAAS,EAAE,OAAO,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,iBAAiB,EAAE,OAAO,CAAC;IAE3B,eAAe,EAAE,OAAO,CAAC;IAEzB,YAAY,EAAE,OAAO,CAAC;IAEtB,YAAY,EAAE,OAAO,CAAC;IAGtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAI7B,UAAU,EAAE,OAAO,CAAC;IAEpB,gBAAgB,EAAE,OAAO,CAAC;IAG1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;IAGtD,qBAAqB,EAAE,OAAO,CAAC;IAE/B,wBAAwB,EAAE,OAAO,CAAC;IAGlC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAWD,eAAO,MAAM,oBAAoB,EAAE,aAelC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,QA6BlF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAczD;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QAgB3D;AAiBD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,WAehD"}
|
package/dist/src/env.js
CHANGED
@@ -29,9 +29,8 @@ exports.defaultConfiguration = {
|
|
29
29
|
injectLogContext: true,
|
30
30
|
exclude: [],
|
31
31
|
integrationTesting: false,
|
32
|
-
|
33
|
-
|
34
|
-
subscribeToWebsocketLogs: true,
|
32
|
+
subscribeToAccessLogs: true,
|
33
|
+
subscribeToExecutionLogs: false,
|
35
34
|
enableDDLogs: true,
|
36
35
|
};
|
37
36
|
function setEnvConfiguration(config, handlers) {
|
package/dist/src/env.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AA4DH,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAC/C,MAAM,YAAY,GAAG,YAAY,CAAC;AAClC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,aAAa,GAAG,SAAS,CAAC;AAChC,MAAM,cAAc,GAAG,cAAc,CAAC;AACtC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAC9C,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAClD,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAC/C,MAAM,mBAAmB,GAAG,4BAA4B,CAAC;AAE5C,QAAA,oBAAoB,GAAkB;IACjD,SAAS,EAAE,IAAI;IACf,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,eAAe;IACrB,iBAAiB,EAAE,KAAK;IACxB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,IAAI;IAChB,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE,EAAE;IACX,kBAAkB,EAAE,KAAK;IACzB,
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":"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"}
|
package/dist/src/forwarder.d.ts
CHANGED
@@ -4,14 +4,23 @@ import Aws = require("serverless/plugins/aws/provider/awsProvider");
|
|
4
4
|
interface ForwarderConfigs {
|
5
5
|
AddExtension: boolean;
|
6
6
|
IntegrationTesting: boolean | undefined;
|
7
|
-
|
8
|
-
|
9
|
-
SubToWebsocketLogGroup: boolean;
|
7
|
+
SubToAccessLogGroups: boolean;
|
8
|
+
SubToExecutionLogGroups: boolean;
|
10
9
|
}
|
10
|
+
declare type SubLogsConfig = boolean | {
|
11
|
+
accessLogging: boolean | undefined;
|
12
|
+
executionLogging: boolean | undefined;
|
13
|
+
} | undefined;
|
14
|
+
declare type LogsConfig = {
|
15
|
+
restApi: SubLogsConfig;
|
16
|
+
httpApi: SubLogsConfig;
|
17
|
+
websocket: SubLogsConfig;
|
18
|
+
} | undefined;
|
11
19
|
export interface CloudFormationObjectArn {
|
12
20
|
"Fn::Sub"?: string;
|
13
21
|
"arn:aws"?: string;
|
14
22
|
}
|
23
|
+
export declare function addExecutionLogGroupsAndSubscriptions(service: Service, aws: Aws, functionArn: CloudFormationObjectArn | string): Promise<void>;
|
15
24
|
export declare function addCloudWatchForwarderSubscriptions(service: Service, aws: Aws, functionArn: CloudFormationObjectArn | string, forwarderConfigs: ForwarderConfigs, handlers: FunctionInfo[]): Promise<string[]>;
|
16
25
|
export declare function canSubscribeLogGroup(aws: Aws, logGroupName: string, expectedSubName: string): Promise<boolean>;
|
17
26
|
export declare function describeSubscriptionFilters(aws: Aws, logGroupName: string): Promise<{
|
@@ -23,5 +32,6 @@ export declare function describeSubscriptionFilters(aws: Aws, logGroupName: stri
|
|
23
32
|
logGroupName: string;
|
24
33
|
roleArn: string;
|
25
34
|
}[]>;
|
35
|
+
export declare function isLogsConfig(obj: any): obj is LogsConfig;
|
26
36
|
export {};
|
27
37
|
//# sourceMappingURL=forwarder.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"forwarder.d.ts","sourceRoot":"","sources":["../../src/forwarder.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"forwarder.d.ts","sourceRoot":"","sources":["../../src/forwarder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,OAAO,MAAM,4BAA4B,CAAC;AACjD,OAAO,GAAG,GAAG,QAAQ,6CAA6C,CAAC,CAAC;AAqBpE,UAAU,gBAAgB;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAaD,aAAK,aAAa,GACd,OAAO,GACP;IACE,aAAa,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC,GACD,SAAS,CAAC;AAEd,aAAK,UAAU,GACX;IACE,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,aAAa,CAAC;CAC1B,GACD,SAAS,CAAC;AAQd,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmBD,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,uBAAuB,GAAG,MAAM,iBA4B9C;AAED,wBAAsB,mCAAmC,CACvD,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,uBAAuB,GAAG,MAAM,EAC7C,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,YAAY,EAAE,qBAyCzB;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,oBAejG;AAED,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM;;;;;;;;KAc/E;AAyHD,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,UAAU,CAuBxD"}
|
package/dist/src/forwarder.js
CHANGED
@@ -9,8 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
9
9
|
});
|
10
10
|
};
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
-
exports.describeSubscriptionFilters = exports.canSubscribeLogGroup = exports.addCloudWatchForwarderSubscriptions = void 0;
|
13
|
-
const naming_1 = require("serverless/lib/plugins/aws/lib/naming");
|
12
|
+
exports.isLogsConfig = exports.describeSubscriptionFilters = exports.canSubscribeLogGroup = exports.addCloudWatchForwarderSubscriptions = exports.addExecutionLogGroupsAndSubscriptions = void 0;
|
14
13
|
const logGroupKey = "AWS::Logs::LogGroup";
|
15
14
|
const logGroupSubscriptionKey = "AWS::Logs::SubscriptionFilter";
|
16
15
|
const maxAllowableLogGroupSubscriptions = 2;
|
@@ -21,6 +20,10 @@ class DatadogForwarderNotFoundError extends Error {
|
|
21
20
|
this.message = message;
|
22
21
|
}
|
23
22
|
}
|
23
|
+
const REST_EXECUTION_LOG_GROUP_KEY = "RestExecutionLogGroup";
|
24
|
+
const REST_EXECUTION_SUBSCRIPTION_KEY = "RestExecutionLogGroupSubscription";
|
25
|
+
const WEBSOCKETS_EXECUTION_LOG_GROUP_KEY = "WebsocketsExecutionLogGroup";
|
26
|
+
const WEBSOCKETS_EXECUTION_SUBCRIPTION_KEY = "WebsocketsExecutionLogGroupSubscription";
|
24
27
|
function isLogGroup(value) {
|
25
28
|
return value.Type === logGroupKey;
|
26
29
|
}
|
@@ -39,6 +42,35 @@ function validateForwarderArn(aws, functionArn) {
|
|
39
42
|
}
|
40
43
|
});
|
41
44
|
}
|
45
|
+
function addExecutionLogGroupsAndSubscriptions(service, aws, functionArn) {
|
46
|
+
var _a, _b;
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
48
|
+
const extendedProvider = (_a = service.provider) === null || _a === void 0 ? void 0 : _a.logs;
|
49
|
+
if (!isLogsConfig(extendedProvider)) {
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
const resources = (_b = service.provider.compiledCloudFormationTemplate) === null || _b === void 0 ? void 0 : _b.Resources;
|
53
|
+
if (restExecutionLoggingIsEnabled(extendedProvider)) {
|
54
|
+
// create log group
|
55
|
+
const logGroupName = yield createRestExecutionLogGroupName(aws);
|
56
|
+
const executionLogGroupName = addExecutionLogGroup(logGroupName);
|
57
|
+
resources[REST_EXECUTION_LOG_GROUP_KEY] = executionLogGroupName;
|
58
|
+
// add subscription
|
59
|
+
const executionSubscription = subscribeToExecutionLogGroup(functionArn, REST_EXECUTION_LOG_GROUP_KEY);
|
60
|
+
resources[REST_EXECUTION_SUBSCRIPTION_KEY] = executionSubscription;
|
61
|
+
}
|
62
|
+
if (websocketExecutionLoggingIsEnabled(extendedProvider)) {
|
63
|
+
// create log group
|
64
|
+
const logGroupName = yield createWebsocketExecutionLogGroupName(aws);
|
65
|
+
const executionLogGroupName = addExecutionLogGroup(logGroupName);
|
66
|
+
// add subscription
|
67
|
+
resources[WEBSOCKETS_EXECUTION_LOG_GROUP_KEY] = executionLogGroupName;
|
68
|
+
const executionSubscription = subscribeToExecutionLogGroup(functionArn, WEBSOCKETS_EXECUTION_LOG_GROUP_KEY);
|
69
|
+
resources[WEBSOCKETS_EXECUTION_SUBCRIPTION_KEY] = executionSubscription;
|
70
|
+
}
|
71
|
+
});
|
72
|
+
}
|
73
|
+
exports.addExecutionLogGroupsAndSubscriptions = addExecutionLogGroupsAndSubscriptions;
|
42
74
|
function addCloudWatchForwarderSubscriptions(service, aws, functionArn, forwarderConfigs, handlers) {
|
43
75
|
var _a;
|
44
76
|
return __awaiter(this, void 0, void 0, function* () {
|
@@ -57,7 +89,7 @@ function addCloudWatchForwarderSubscriptions(service, aws, functionArn, forwarde
|
|
57
89
|
yield validateForwarderArn(aws, functionArn);
|
58
90
|
}
|
59
91
|
for (const [name, resource] of Object.entries(resources)) {
|
60
|
-
if (!shouldSubscribe(name, resource, forwarderConfigs, handlers)) {
|
92
|
+
if (!shouldSubscribe(name, resource, forwarderConfigs, handlers, service)) {
|
61
93
|
continue;
|
62
94
|
}
|
63
95
|
const logGroupName = resource.Properties.LogGroupName;
|
@@ -75,17 +107,6 @@ function addCloudWatchForwarderSubscriptions(service, aws, functionArn, forwarde
|
|
75
107
|
// Create subscriptions for each log group
|
76
108
|
const subscription = subscribeToLogGroup(functionArn, name);
|
77
109
|
resources[scopedSubName] = subscription;
|
78
|
-
// Create the Execution log group for API Gateway logging manually so we can subscribe
|
79
|
-
if (validateApiGatewaySubscription(resource, forwarderConfigs.SubToApiGatewayLogGroup)) {
|
80
|
-
// add api gateway execution log group
|
81
|
-
const executionLogGroup = createExecutionLogGroup(aws);
|
82
|
-
const executionLogGroupKey = "ExecutionLogGroup";
|
83
|
-
resources[executionLogGroupKey] = executionLogGroup;
|
84
|
-
// add subscription to execution log group
|
85
|
-
const executionSubscription = subscribeToExecutionLogGroup(functionArn);
|
86
|
-
const executionSubscriptionKey = "ExecutionLogGroupSubscription";
|
87
|
-
resources[executionSubscriptionKey] = executionSubscription;
|
88
|
-
}
|
89
110
|
}
|
90
111
|
return errors;
|
91
112
|
});
|
@@ -127,36 +148,48 @@ function describeSubscriptionFilters(aws, logGroupName) {
|
|
127
148
|
}
|
128
149
|
exports.describeSubscriptionFilters = describeSubscriptionFilters;
|
129
150
|
// Helper functions to validate we have a particular log group and if we should subscribe to it
|
130
|
-
function
|
131
|
-
return
|
151
|
+
function validateRestApiSubscription(resource, subscribe, extendedProvider) {
|
152
|
+
return (restAccessLoggingIsEnabled(extendedProvider) &&
|
153
|
+
resource.Properties.LogGroupName.startsWith("/aws/api-gateway/") &&
|
154
|
+
subscribe);
|
132
155
|
}
|
133
|
-
function validateHttpApiSubscription(resource, subscribe) {
|
134
|
-
return
|
156
|
+
function validateHttpApiSubscription(resource, subscribe, extendedProvider) {
|
157
|
+
return (httpAccessLoggingIsEnabled(extendedProvider) &&
|
158
|
+
resource.Properties.LogGroupName.startsWith("/aws/http-api/") &&
|
159
|
+
subscribe);
|
135
160
|
}
|
136
|
-
function validateWebsocketSubscription(resource, subscribe) {
|
137
|
-
return
|
161
|
+
function validateWebsocketSubscription(resource, subscribe, extendedProvider) {
|
162
|
+
return (websocketAccessLoggingIsEnabled(extendedProvider) &&
|
163
|
+
resource.Properties.LogGroupName.startsWith("/aws/websocket/") &&
|
164
|
+
subscribe);
|
138
165
|
}
|
139
|
-
function shouldSubscribe(resourceName, resource, forwarderConfigs, handlers) {
|
166
|
+
function shouldSubscribe(resourceName, resource, forwarderConfigs, handlers, service) {
|
167
|
+
var _a;
|
168
|
+
const extendedProvider = (_a = service.provider) === null || _a === void 0 ? void 0 : _a.logs;
|
140
169
|
if (!isLogGroup(resource)) {
|
141
170
|
return false;
|
142
171
|
}
|
172
|
+
// we don't want to run the shouldSubscribe validation on execution log groups since we manually add those.
|
173
|
+
if (typeof resource.Properties.LogGroupName !== "string") {
|
174
|
+
return false;
|
175
|
+
}
|
143
176
|
// if the extension is enabled, we don't want to subscribe to lambda log groups
|
144
177
|
if (forwarderConfigs.AddExtension &&
|
145
|
-
!(
|
146
|
-
validateHttpApiSubscription(resource, forwarderConfigs.
|
147
|
-
validateWebsocketSubscription(resource, forwarderConfigs.
|
178
|
+
!(validateRestApiSubscription(resource, forwarderConfigs.SubToAccessLogGroups, extendedProvider) ||
|
179
|
+
validateHttpApiSubscription(resource, forwarderConfigs.SubToAccessLogGroups, extendedProvider) ||
|
180
|
+
validateWebsocketSubscription(resource, forwarderConfigs.SubToAccessLogGroups, extendedProvider))) {
|
148
181
|
return false;
|
149
182
|
}
|
150
183
|
// if the extension is disabled, we should subscribe to lambda log groups
|
151
184
|
if (!(resource.Properties.LogGroupName.startsWith("/aws/lambda/") ||
|
152
|
-
|
153
|
-
validateHttpApiSubscription(resource, forwarderConfigs.
|
154
|
-
validateWebsocketSubscription(resource, forwarderConfigs.
|
185
|
+
validateRestApiSubscription(resource, forwarderConfigs.SubToAccessLogGroups, extendedProvider) ||
|
186
|
+
validateHttpApiSubscription(resource, forwarderConfigs.SubToAccessLogGroups, extendedProvider) ||
|
187
|
+
validateWebsocketSubscription(resource, forwarderConfigs.SubToAccessLogGroups, extendedProvider))) {
|
155
188
|
return false;
|
156
189
|
}
|
157
190
|
// If the log group does not belong to our list of handlers, we don't want to subscribe to it
|
158
191
|
if (resource.Properties.LogGroupName.startsWith("/aws/lambda/") &&
|
159
|
-
!handlers.some(({ name }) =>
|
192
|
+
!handlers.some(({ name }) => getLogGroupLogicalId(name) === resourceName)) {
|
160
193
|
return false;
|
161
194
|
}
|
162
195
|
return true;
|
@@ -172,28 +205,127 @@ function subscribeToLogGroup(functionArn, name) {
|
|
172
205
|
};
|
173
206
|
return subscription;
|
174
207
|
}
|
175
|
-
function
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
208
|
+
function createRestExecutionLogGroupName(aws) {
|
209
|
+
return __awaiter(this, void 0, void 0, function* () {
|
210
|
+
return {
|
211
|
+
"Fn::Join": ["", ["API-Gateway-Execution-Logs_", { Ref: "ApiGatewayRestApi" }, "/", aws.getStage()]],
|
212
|
+
};
|
213
|
+
});
|
214
|
+
}
|
215
|
+
function createWebsocketExecutionLogGroupName(aws) {
|
216
|
+
return __awaiter(this, void 0, void 0, function* () {
|
217
|
+
return {
|
218
|
+
"Fn::Join": ["", ["/aws/apigateway/", { Ref: "WebsocketsApi" }, "/", aws.getStage()]],
|
219
|
+
};
|
220
|
+
});
|
221
|
+
}
|
222
|
+
function addExecutionLogGroup(logGroupName) {
|
223
|
+
// Create the Execution log group for API Gateway REST logging manually
|
180
224
|
const executionLogGroup = {
|
181
225
|
Type: "AWS::Logs::LogGroup",
|
182
226
|
Properties: {
|
183
|
-
LogGroupName:
|
227
|
+
LogGroupName: logGroupName,
|
184
228
|
},
|
185
229
|
};
|
186
230
|
return executionLogGroup;
|
187
231
|
}
|
188
|
-
function subscribeToExecutionLogGroup(functionArn) {
|
232
|
+
function subscribeToExecutionLogGroup(functionArn, executionLogGroupKey) {
|
189
233
|
const executionSubscription = {
|
190
234
|
Type: logGroupSubscriptionKey,
|
191
235
|
Properties: {
|
192
236
|
DestinationArn: functionArn,
|
193
237
|
FilterPattern: "",
|
194
|
-
LogGroupName: { Ref:
|
238
|
+
LogGroupName: { Ref: executionLogGroupKey },
|
195
239
|
},
|
196
240
|
};
|
197
241
|
return executionSubscription;
|
198
242
|
}
|
243
|
+
function isLogsConfig(obj) {
|
244
|
+
if (typeof obj !== "object") {
|
245
|
+
return false;
|
246
|
+
}
|
247
|
+
if (obj.hasOwnProperty("restApi")) {
|
248
|
+
if (!isSubLogsConfig(obj.restApi)) {
|
249
|
+
return false;
|
250
|
+
}
|
251
|
+
}
|
252
|
+
if (obj.hasOwnProperty("httpApi")) {
|
253
|
+
if (!isSubLogsConfig(obj.httpApi)) {
|
254
|
+
return false;
|
255
|
+
}
|
256
|
+
}
|
257
|
+
if (obj.hasOwnProperty("websocket")) {
|
258
|
+
if (!isSubLogsConfig(obj.websocket)) {
|
259
|
+
return false;
|
260
|
+
}
|
261
|
+
}
|
262
|
+
return true;
|
263
|
+
}
|
264
|
+
exports.isLogsConfig = isLogsConfig;
|
265
|
+
function isSubLogsConfig(obj) {
|
266
|
+
if (typeof obj === "boolean") {
|
267
|
+
return true;
|
268
|
+
}
|
269
|
+
if (typeof obj !== "object") {
|
270
|
+
return false;
|
271
|
+
}
|
272
|
+
if (obj.hasOwnProperty("accessLogging")) {
|
273
|
+
if (typeof obj.accessLogging !== "boolean" && typeof obj.accessLogging !== undefined) {
|
274
|
+
return false;
|
275
|
+
}
|
276
|
+
}
|
277
|
+
if (obj.hasOwnProperty("executionLogging")) {
|
278
|
+
if (typeof obj.executionLogging !== "boolean" && typeof obj.executionLogging !== undefined) {
|
279
|
+
return false;
|
280
|
+
}
|
281
|
+
}
|
282
|
+
return true;
|
283
|
+
}
|
284
|
+
function restAccessLoggingIsEnabled(obj) {
|
285
|
+
var _a;
|
286
|
+
if ((obj === null || obj === void 0 ? void 0 : obj.restApi) === false) {
|
287
|
+
return false;
|
288
|
+
}
|
289
|
+
return (obj === null || obj === void 0 ? void 0 : obj.restApi) === true || ((_a = obj === null || obj === void 0 ? void 0 : obj.restApi) === null || _a === void 0 ? void 0 : _a.accessLogging) === true;
|
290
|
+
}
|
291
|
+
function restExecutionLoggingIsEnabled(obj) {
|
292
|
+
var _a;
|
293
|
+
if ((obj === null || obj === void 0 ? void 0 : obj.restApi) === false) {
|
294
|
+
return false;
|
295
|
+
}
|
296
|
+
return (obj === null || obj === void 0 ? void 0 : obj.restApi) === true || ((_a = obj === null || obj === void 0 ? void 0 : obj.restApi) === null || _a === void 0 ? void 0 : _a.executionLogging) === true;
|
297
|
+
}
|
298
|
+
function httpAccessLoggingIsEnabled(obj) {
|
299
|
+
var _a;
|
300
|
+
if ((obj === null || obj === void 0 ? void 0 : obj.httpApi) === false) {
|
301
|
+
return false;
|
302
|
+
}
|
303
|
+
return (obj === null || obj === void 0 ? void 0 : obj.httpApi) === true || ((_a = obj === null || obj === void 0 ? void 0 : obj.httpApi) === null || _a === void 0 ? void 0 : _a.accessLogging) === true;
|
304
|
+
}
|
305
|
+
function websocketAccessLoggingIsEnabled(obj) {
|
306
|
+
var _a;
|
307
|
+
if ((obj === null || obj === void 0 ? void 0 : obj.websocket) === false) {
|
308
|
+
return false;
|
309
|
+
}
|
310
|
+
return (obj === null || obj === void 0 ? void 0 : obj.websocket) === true || ((_a = obj === null || obj === void 0 ? void 0 : obj.websocket) === null || _a === void 0 ? void 0 : _a.accessLogging) === true;
|
311
|
+
}
|
312
|
+
function websocketExecutionLoggingIsEnabled(obj) {
|
313
|
+
var _a;
|
314
|
+
if ((obj === null || obj === void 0 ? void 0 : obj.websocket) === false) {
|
315
|
+
return false;
|
316
|
+
}
|
317
|
+
return (obj === null || obj === void 0 ? void 0 : obj.websocket) === true || ((_a = obj === null || obj === void 0 ? void 0 : obj.websocket) === null || _a === void 0 ? void 0 : _a.executionLogging) === true;
|
318
|
+
}
|
319
|
+
// Created from https://github.com/serverless/serverless/blob/master/lib/plugins/aws/lib/naming.js#L125-L127
|
320
|
+
// Skipped lodash because Lambda Function Names can't include unicode chars or symbols
|
321
|
+
function getLogGroupLogicalId(functionName) {
|
322
|
+
if (!functionName) {
|
323
|
+
return "";
|
324
|
+
}
|
325
|
+
const uppercasedFirst = functionName[0].toUpperCase();
|
326
|
+
const rest = functionName.slice(1);
|
327
|
+
const upperCasedFunctionName = uppercasedFirst + rest;
|
328
|
+
const normalizedFunctionName = upperCasedFunctionName.replace(/-/g, "Dash").replace(/_/g, "Underscore");
|
329
|
+
return `${normalizedFunctionName}LogGroup`;
|
330
|
+
}
|
199
331
|
//# sourceMappingURL=forwarder.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"forwarder.js","sourceRoot":"","sources":["../../src/forwarder.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"forwarder.js","sourceRoot":"","sources":["../../src/forwarder.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMhD,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACjC,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACzC"}
|
package/dist/src/index.js
CHANGED
@@ -90,6 +90,7 @@ module.exports = class ServerlessPlugin {
|
|
90
90
|
if (config.enabled === false)
|
91
91
|
return;
|
92
92
|
this.serverless.cli.log("Auto instrumenting functions with Datadog");
|
93
|
+
configHasOldProperties(config);
|
93
94
|
validateConfiguration(config);
|
94
95
|
const defaultRuntime = this.serverless.service.provider.runtime;
|
95
96
|
const handlers = layer_1.findHandlers(this.serverless.service, config.exclude, defaultRuntime);
|
@@ -136,17 +137,20 @@ module.exports = class ServerlessPlugin {
|
|
136
137
|
const forwarderConfigs = {
|
137
138
|
AddExtension: config.addExtension,
|
138
139
|
IntegrationTesting: config.integrationTesting,
|
139
|
-
|
140
|
-
|
141
|
-
SubToWebsocketLogGroup: config.subscribeToWebsocketLogs,
|
140
|
+
SubToAccessLogGroups: config.subscribeToAccessLogs,
|
141
|
+
SubToExecutionLogGroups: config.subscribeToExecutionLogs,
|
142
142
|
};
|
143
143
|
const defaultRuntime = this.serverless.service.provider.runtime;
|
144
144
|
const handlers = layer_1.findHandlers(this.serverless.service, config.exclude, defaultRuntime);
|
145
145
|
let datadogForwarderArn;
|
146
146
|
datadogForwarderArn = setDatadogForwarder(config);
|
147
|
+
this.serverless.cli.log("Setting Datadog Forwarder");
|
147
148
|
if (datadogForwarderArn) {
|
148
149
|
const aws = this.serverless.getProvider("aws");
|
149
150
|
const errors = yield forwarder_1.addCloudWatchForwarderSubscriptions(this.serverless.service, aws, datadogForwarderArn, forwarderConfigs, handlers);
|
151
|
+
if (config.subscribeToExecutionLogs) {
|
152
|
+
yield forwarder_1.addExecutionLogGroupsAndSubscriptions(this.serverless.service, aws, datadogForwarderArn);
|
153
|
+
}
|
150
154
|
for (const error of errors) {
|
151
155
|
this.serverless.cli.log(error);
|
152
156
|
}
|
@@ -171,7 +175,7 @@ module.exports = class ServerlessPlugin {
|
|
171
175
|
if (config.monitors && config.monitorsApiKey && config.monitorsAppKey) {
|
172
176
|
const cloudFormationStackId = yield monitor_api_requests_1.getCloudFormationStackId(this.serverless);
|
173
177
|
try {
|
174
|
-
const logStatements = yield monitors_1.setMonitors(config.monitors, config.monitorsApiKey, config.monitorsAppKey, cloudFormationStackId, service, env);
|
178
|
+
const logStatements = yield monitors_1.setMonitors(config.site, config.monitors, config.monitorsApiKey, config.monitorsAppKey, cloudFormationStackId, service, env);
|
175
179
|
for (const logStatement of logStatements) {
|
176
180
|
this.serverless.cli.log(logStatement);
|
177
181
|
}
|
@@ -222,6 +226,25 @@ module.exports = class ServerlessPlugin {
|
|
222
226
|
});
|
223
227
|
}
|
224
228
|
};
|
229
|
+
function configHasOldProperties(obj) {
|
230
|
+
let hasOldProperties = false;
|
231
|
+
let message = "The following configuration options have been removed:";
|
232
|
+
if (obj.subscribeToApiGatewayLogs) {
|
233
|
+
message += " subscribeToApiGatewayLogs";
|
234
|
+
hasOldProperties = true;
|
235
|
+
}
|
236
|
+
if (obj.subscribeToHttpApiLogs) {
|
237
|
+
message += " subscribeToHttpApiLogs";
|
238
|
+
hasOldProperties = true;
|
239
|
+
}
|
240
|
+
if (obj.subscribeToWebsocketLogs) {
|
241
|
+
message += " subscribeToWebsocketLogs";
|
242
|
+
hasOldProperties = true;
|
243
|
+
}
|
244
|
+
if (hasOldProperties) {
|
245
|
+
throw new Error(message + ". Please use the subscribeToAccessLogs or subscribeToExecutionLogs options instead.");
|
246
|
+
}
|
247
|
+
}
|
225
248
|
function validateConfiguration(config) {
|
226
249
|
const siteList = ["datadoghq.com", "datadoghq.eu", "us3.datadoghq.com", "ddog-gov.com"];
|
227
250
|
if (config.apiKey !== undefined && config.apiKMSKey !== undefined) {
|