Thundra

Thundra: Serverless Observability for AWS Lambda

The black box nature of AWS Lambda and other serverless environments means that identifying and fixing performance issues is difficult and time-consuming. Built for straightforward debugging, monitoring, and observability, Thundra provides deep insight into your entire serverless environment. Thundra collects and correlates all your metrics, logs, and traces, allowing you to quickly identify problematic invocations and also analyzes external services associated with that function. With Thundra’s zero overhead and automated instrumentation capabilities, your developers are free to write code without worrying about bulking up their Lambdas or wasting time on chasing black box problems.

Get Started    Discussions

Installation Guide

In order to see Thundra data in Honeycomb there are three steps you will need to complete.

Step 1: Get a License Key from us

In order to run Thundra Integrator for Honeycomb AMI, you need to have Thundra Licence Key. Please fill the form in this page, and we will contact you with your license key shortly.

Step 2: Install the Thundra Integrator for Honeycomb AMI on your AWS EC2 Instance

Thundra provides an AWS CloudFormation template to easily set up your integration.
Below is the deployment topology created from the CloudFormation template. It includes:

  • The Thundra Receiver App that collects, transforms and aggregates data from the Thundra Lambda agent.

  • Honeytailagent that sends that data to your Honeycomb.

  • A data volume that temporarily stores the files and data collected from the Thundra integrator. This data volume cleaned by the Thundra integrator hourly.

To deploy the Thundra Integration for Honeycomb AMI:

  • Access AWS CloudFormation console
  • Click Create Stack
  • Select Specify an Amazon S3 template URL and enter https://s3-us-west-2.amazonaws.com/thundra-honeycomb-integrator/thundra-honeycomb-cf-template.json on which we host the CloudFormation template.
  • Click Next.
  • Fill out the template:

    1. Enter a Stack Name (Example: thundra-honeycomb)
    2. Optional: Enter an EBS Volume Size (Default: 50GBs. Thundra cleans out the data written to this volume hourly. In most cases, 50GBs is enough capacity. However, please feel free to adjust this size for your expected hourly data volumes.)
    3. Select Enable HTTPS to enable or disable SSL with a self-signed certificate

Enable Certificate Validation Using HTTPS

If EnableHTTPS set to ‘True’ please add thundra_lambda_publish_rest_trustAllCertificates to the environment variables of your AWS lambda function and set to True.

  1. Select the appropriate EC2 KeyPair name to enable SSH access to your EC2 instance
  2. Enter the IP address range that your EC2 instance will have SSH access to
  3. Enter optional API Key Prefix and/or API Key values.

    These API keys are used to update the Thundra agent to send data to the Thundra Integrator for Honeycomb instead of the Thundra Web Console.

If you do not provide an API key or API key prefix the Thundra Integrator for Honeycomb will accept data without any authentication. We highly discourage this approach as it is not considered best practice.

  Enter API Key Prefix. Any Thundra agents that use this API key prefix will be allowed to send data to the Thundra Integrator for Honeycomb.

Enter allowed API Keys. Any Thundra agent that uses this explicitly set API key will be able to send data to the Thundra Integrator for Honeycomb. Enter API Key(s) as a comma-separated list.

** IMPORTANT**: Record your API key information!

Write down or record your API key prefix or API keys!!! You will need to enter them into the Thundra agent YML file in Step 3 of the setup.

  1. Enter the Thundra license key created from the Thundra Web Console
    1. Enter the port number through which Thundra Integrator for Honeycomb will receive the Thundra agent data
    2. Select your EC2 instance type

Below is a list of the parameters and value requirements needed to fill out the CloudFormation template:

Parameter Description Values Defaults
HoneycombAPIKey API key for Honeycomb, available from the Honeycomb account page Empty
EBSVolumeSize Size of the attached EBS volume in GBs Numeric value 50
EnableHTTPs To run Thundra receiver over HTTPS with a self-signed certificate, set this parameter to true true/false false
KeyName Keypair name for SSH into EC2 server AWS EC2 KeyPair values in the region Empty
SSHLocation The IP address range that is allowed to SSH to the EC2 instances Valid IP range in x.x.x.x/x notation. Use 0.0.0.0/0 for no restrictions. 0.0.0.0/0
ThundraAllowedApiKeyPrefix Prefix of API keys from which the Thundra-Honeycomb Integrator will receive data. For example, if you set the API key prefix to honeycomb-agent-key, the Thundra agents that can send data using this prefix include honeycomb-agent-key-node, honeycomb-agent-key-java, honeycomb-agent-key-go, and honeycomb-agent-key-python ` Alphanumeric value Empty
ThundraAllowedApiKeys Comma (',') separated list of API keys from which the Thundra Integrator for Honeycomb will receive data. For example, honeycomb-agent-key-java,honeycomb-agent-key-node,honeycomb-agent-key-go,honeycomb-agent-key-python Alphanumeric value Empty
ThundraLicenseKey License key for the Thundra Integrator for Honeycomb can be generated from Thundra Web Console. Alphanumeric value Empty
ThundraReceiverPort Port number for Thundra Integrator for Honeycomb to receive data over HTTP/HTTPS Numeric value between 1024 and 65536 8080
InstanceType EC2 instance type Supported AWS EC2 instance types d2.xlarge
  • When you are finished filling out the template, click Next

While it is best practice to set tags for your EC2 instance, you are not required to do so to set up this Thundra Integrator for Honeycomb. These options are specific to CloudFormation. For a detailed explanation see the AWS CloudFormation docs: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html

  • Click Next to move into the Review screen.

  • On the Review screen, review your stack details. When ready, click Create on the lower right corner of the screen to deploy your stack.

Step 3: Configure Thundra Lambda Agents to Send Data to the Thundra Integrator for Honeycomb

Now that the stack creation is complete, you need to send data to the Thundra Integrator for Honeycomb by updating your publish base URL and API key.

  • If this is your first time using Thundra, you will also need to set up the Thundra agents. Otherwise, if you are already have using Thundra with the web console, these steps will re-direct data to the Thundra Integrator for Honeycomb instead of the Thundra Web Console.

Set up your Thundra agents if this is your first time using Thundra

If you haven't already set up Thundra agents for your Lambda functions, you will need to go through the installation instructions for Java, Python, Node.js, or Golang.

Find the endpoint URL for your Thundra Integrator for Honeycomb in the Output tab of your CloudFormation stack.

The format should be: <URLofYourThundraHoneycombIntegratorInstance>/v1.

Now, navigate to your Thundra Lambda environment variable configuration and change the API key and publish base URL.

Update thundra_apiKey values that you entered during the CloudFormations template set up and thundra_agent_lambda_report_rest_baseUrl that you obtained from the Output tab in the CloudFormation stack.

Then click Save in the upper right corner of your Thundra Lambda environment variable configuration.

You are now set up for Thundra Integrator for Honeycomb!

After redeploying your Thundra Lambda with these modifications, you will be able to see the Lambda data on your Honeycomb UI within approximately 5 minutes.

How to Manually Start and Stop the Thundra Integrator for Honeycomb

After successfully deploying theThundra Integrator for Honeycomb CloudFormation stack, an EC2 instance will be launched with name Thundra Honeycomb Receiver.

To manually start and stop your Thundra Integrator for Honeycomb instance :

  1. SSH into your EC2 instance with the KeyPair you entered into the CloudFormation template
  2. Go to /opt folder
  3. To start your instance: Run start.sh as root
  4. To stop your instance: Run stop.sh as root