Honeycomb goes Serverless: Send your app data without running agentsBy Travis Redman | Last modified on January 11, 2019
Serverless apps are growing in popularity, thanks to tools like AWS API Gateway and Lambda, and a growing number of powerful frameworks that simplify development and deployment. Complex applications are still complex, however, and regardless of your platform you'll still need to think about observability.
Today, we're excited to announce our Agentless Integrations for AWS. There are a lot of ways to get data into honeycomb. Most of these - such as honeytail, our HoneyAWS suite, or the Kubernetes agent - require you to run an agent somewhere in your infrastructure.
Our agentless integrations are different: they hook into the AWS event pipeline. If you're writing to Cloudwatch Logs, shipping logs in S3, or emitting events to an SNS topic, you can use Honeycomb's agentless integrations to get your event data into Honeycomb without running dedicated agents or additional servers. Your apps don't require servers - why should your observability tools?
You can install an integration right now by using our Cloudformation Quick-Create links. Just click the link, provide a small number of inputs, and you're on your way! Some examples are:
- Generic JSON integration for Cloudwatch Logs
- Generic RegEx integration for Cloudwatch Logs
- VPC Flow Log Integration
- ELB Log Integration
- S3 Bucket Log Integration
More quick-create links are available in our Agentless Integrations for AWS repository.
Example: A simple API
Let's look at how we would use the JSON integration for Cloudwatch. I've built a simple TODO API based on the Serverless examples repo. It's a simple CRUD app backed by DynamoDB. I've updated the app to use structlog, which provides structured logging along with a JSON renderer.
This app has five functions out of the box, each with its own log group. If you thought sifting through Cloudwatch Logs was fun, now try doing it when context is spread across multiple log groups!
This app is simple now, but serverless apps can get complex and can grow to tens or hundreds of functions. For the sake of developer and on-call sanity, let's send these events to Honeycomb!
I'm going to launch the Generic JSON integration for Cloudwatch Logs quick-create link. This sends me right to the Cloudformation Console with the template ready to go. All I need to do is supply some inputs, such as the log group name(s), dataset name, and my Honeycomb write key.
Clicking next through the wizard will deploy a Honeycomb lambda function subscribed to my logs. In a few seconds, I have a Honeycomb dataset with rich, structured events to give me visibility into my application.
But wait, what if my app is already very large and has more than a few functions?
Quick-create links are great, but what if you already have an existing Cloudformation workflow, use Terraform, or just need something slightly different? Check our repo for Cloudformation and Terraform templates that you can customize to your needs.
Want visibility into your serverless apps? Try Honeycomb for free!
Our friends at Tracetest recently released an integration with Honeycomb that allows you to build end-to-end and integration tests, powered by your existing distributed traces....