Our next-gen architecture is built to help you make sense of your ever-growing data Watch a 4-min demo video!

Back to All Integrations

Coralogix AWS Lambda Telemetry Exporter Coralogix AWS Lambda Telemetry Exporter

Last Updated: Nov. 23, 2022

The Coralogix AWS Lambda Telemetry Exporter is an AWS Lambda extension that uses AWS Lambda Telemetry API and provides a seamless way to collect Lambda function logs as well as Lambda platform logs, metrics, and traces.

The Coralogix AWS Lambda Telemetry Exporter supersedes the previously offered Coralogix Extension for AWS Lambda extending its capabilities beyond logs.

The Coralogix AWS Lambda Telemetry Exporter is currently available in the AWS Serverless Application Repository as an open beta. We encourage you to try it out, and we welcome any feedback. Please keep in mind that the current version reports only logs and traces. Reporting of metrics will be added in an upcoming update.

Prerequisites

  • A Coralogix Account. If you don’t have an account yet, you can sign up here. Be sure to set up your account on the Coralogix Domain corresponding to the region within which you would like your data stored.
  • Access to your Coralogix private key.
  • An AWS account with permissions to manage Lambda functions
  • Some AWS Lambda function that you would like to monitor

Installation

  • Deploy the Telemetry Exporter Lambda layer from AWS Serverless Repository into your AWS account
    • Go to AWS Serverless repository and deploy the Coralogix-AWS-Lambda-Telemetry-Exporter. Make sure that you’re deploying it in the same account and region as your Lambda function.
    • You can go to AWS Lambda “Layers” page to verify the deployment. You should find there two new layers:
      • coralogix-aws-lambda-telemetry-exporter-arm64
      • coralogix-aws-lambda-telemetry-exporter-x86_64
    • Note that the layer you will choose should correspond to the architecture used by the function.
  • Configure the Telemetry Exporter
    • Go to the Lambda function that you would like to monitor
    • Go to the “Configuration” and then “Environment variables” section in your Lambda function and configure the coralogix-aws-lambda-telemetry-exporter by adding environment variables described in the “Configuration” section below.
  • Add the Telemetry Exporter layer to the function
    • Go to the Lambda function from which you want to send telemetry to Coralogix, click the “Layers” box, and then click “Add Layer”.
    • Choose “Custom layers”, then choose the coralogix-aws-lambda-telemetry-exporter-* layer, and click “Add”. Be careful to choose the layer corresponding to the architecture (x86_64 / arm64) used by the function. If you’re unsure about the architecture, it is displayed on the same page above the section where you’re selecting the layer.
    • If that function was already using coralogix-lambda-extension you may want to remove it. You can do it by clicking the “Layers” box, then clicking “Edit”, selecting the lambda layer and clicking “Remove”.

Configuration

  • CORALOGIX_DOMAIN – Find the Coralogix Domain for your account here.
  • CORALOGIX_PRIVATE_KEY – Your Private Key which you can find in Coralogix in Settings > Send Your Data. Learn more.
  • CORALOGIX_APPLICATION – A mandatory metadata field that is sent with the telemetry. Helps identify/organize the telemetry sent by this Lambda function. Learn more about application & subsystem names in Coralogix.
  • CORALOGIX_SUBSYSTEM – A mandatory metadata field sent with the telemetry. Helps identify and organize the telemetry sent by this Lambda function. Learn more about application & subsystem names in Coralogix.
  • CORALOGIX_REPORTING_STRATEGY – Acceptable values are: LOW_OVERHEAD, REPORT_AFTER_INVOCATION and REPORT_DURING_AND_AFTER_INVOCATION. The optimal choice depends on how your Lambda function is used. Read the “Reporting Strategies” Section below to understand how to choose the best strategy for your Lambda function.
  • CORALOGIX_AWS_TELEMETRY_INTERVAL_MS (optional) – You can use this parameter to adjust how often AWS sends the telemetry to the Telemetry Exporter . We recommend using this parameter only when necessary and relying on the default in most cases. The default value depends on the selected reporting strategy:
    • LOW_OVERHEAD → 10000
    • REPORT_AFTER_INVOCATION → 25
    • REPORT_DURING_AND_AFTER_INVOCATION → 2000

Reporting Strategies

Due to the serverless nature of AWS Lambda and Lambda extensions, the telemetry-exporter cannot freely do its job after/between invocations of the monitored Lambda function. A tradeoff has to be made between timely delivery of the telemetry and keeping the overheads low.

The optimal strategy choice depends on how often the function is invoked and how long it runs. The coralogix-aws-lambda-telemetry-exporter offers three reporting strategies that enable you to adjust the reporting to the characteristics of your function.

  • LOW_OVERHEADRecommended for frequently called functions. The telemetry may be batched across many invocations of the function, and the telemetry-exporter will avoid keeping the Lambda execution environment active after an invocation is complete (therefore it will avoid adding billable time to the lambda invocations). This may result in a long delay (in the order of minutes) in the delivery of telemetry if the Lambda stops being called frequently.
  • REPORT_AFTER_INVOCATIONRecommended for rarely called functions with short to moderate execution times. The telemetry will be reported at the end of each invocation of the function. This will add a small amount of billable time to each invocation.
  • REPORT_DURING_AND_AFTER_INVOCATIONRecommended for rarely called functions with long execution times (more than 15 seconds). The telemetry will be reported in regular intervals during the execution of the function and then after the execution completes. This strategy will add 2-3 seconds of billable time to each Lambda invocation.

Regardless of the chosen reporting strategy, there are some constraints on when certain kinds of telemetry can be reported. For example, a total billable time of an invocation cannot be reported earlier than during the next invocation.

Support

Need help?

Our world-class customer success team is available 24/7 to walk you through your setup and answer any questions that may come up.

Feel free to reach out to us via our in-app chat or by sending us an email to [email protected].

On this page