Skip to content

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

  1. Navigate to an existing AWS Lambda function and select the Code tab.
  2. Scroll down to the Layers section and select Add a layer.
  3. 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
  1. Configure the required Datable dispatch URL by adding the following environment variable to your Lambda function:
yaml
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 to true to disable logs from your lambda flowing into Datable. Defaults to false.
  • DATABLE_DISABLE_SPANS: Set to true to disable telemetry, such as execution start/stop and memory usage information, from your lambda flowing into Datable. Defaults to false.
  • 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 to 1.
  • DATABLE_DISABLE_EXTENSION_LOGGING: Set to true 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 to false.