AWS Lambda Telemetry and Logging
Datable leverages Lambda Extensions to provide drop-in Log and Trace support for your Lambda functions. Add a layer to your Lambda function and configuring a few environment variables to send telemetry
How it works
The Datable Lambda Extension is a Lambda Layer that is added to your existing Lambda functions and leverages the AWS Lambda Telemetry API to provide telemetry and logging for your Lambda functions. The extension currently supports functions using a Node 14.x, 16.x, 18.x, or 20.x runtime.
Pricing
The Datable Lambda Extension runs on a layer of your existing Lambda functions. AWS charges for this additional layer is minimal as resources are coupled with the adjoining lambda and the extension only extends the runtime of the lambda by a few seconds to collect and send data following the lambda invocation. For more information on AWS Lambda Extension pricing, see the AWS Lambda Pricing page.
Onboarding a function
Attaching the Datable extension to your existing Lambda function is as simple as adding a layer and an environment variable.
Adding a layer to an existing function
- Navigate to an existing AWS Lambda function and select the Code tab.
- Scroll down to the Layers section and select Add a layer.
- Select Specify an ARN and input the relevant ARN from the list below:
US-EAST-1: arn:aws:lambda:us-east-1:075279486443:layer:datable-telemetry-extension-node:2
US-EAST-2: arn:aws:lambda:us-east-2:075279486443:layer:datable-telemetry-extension-node:2
US-WEST-1: arn:aws:lambda:us-west-1:075279486443:layer:datable-telemetry-extension-node:2
US-WEST-2: arn:aws:lambda:us-west-2:075279486443:layer:datable-telemetry-extension-node:2
EU-CENTRAL-1: arn:aws:lambda:eu-central-1:075279486443:layer:datable-telemetry-extension-node:2
EU-WEST-1: arn:aws:lambda:eu-west-1:075279486443:layer:datable-telemetry-extension-node:2
US-EAST-1: arn:aws:lambda:us-east-1:075279486443:layer:datable-telemetry-extension-node:2
US-EAST-2: arn:aws:lambda:us-east-2:075279486443:layer:datable-telemetry-extension-node:2
US-WEST-1: arn:aws:lambda:us-west-1:075279486443:layer:datable-telemetry-extension-node:2
US-WEST-2: arn:aws:lambda:us-west-2:075279486443:layer:datable-telemetry-extension-node:2
EU-CENTRAL-1: arn:aws:lambda:eu-central-1:075279486443:layer:datable-telemetry-extension-node:2
EU-WEST-1: arn:aws:lambda:eu-west-1:075279486443:layer:datable-telemetry-extension-node:2
- Configure the required Datable dispatch URL by adding the following environment variable to your Lambda function:
DATABLE_DISPATCH_POST_URI: https://YOUR_DATABLE_HOST.dtbl.io:4318
DATABLE_DISPATCH_POST_URI: https://YOUR_DATABLE_HOST.dtbl.io:4318
Additional configuration
See the following environment variables for additional configuration options:
DATABLE_DISABLE_LOGS
: Set totrue
to disable logs from your lambda flowing into Datable. Defaults tofalse
.DATABLE_DISABLE_SPANS
: Set totrue
to disable telemetry, such as execution start/stop and memory usage information, from your lambda flowing into Datable. Defaults tofalse
.DATABLE_DISPATCH_MIN_BATCH_SIZE
: Set to an integer value to specify the minimum number of telemetry events to dispatch records to Datable. All records will eventually be dispatched when lambdas are shutdown, but this can reduce total number of calls. Defaults to1
.DATABLE_DISABLE_EXTENSION_LOGGING
: Set totrue
to disable extension logging. Extension logging is not sent to Datable and is only present in Cloudwatch lambda logs. This can reduce unnecessary logging, but can make troubleshooting extension setup or issues difficult. Defaults tofalse
.