Previously announced as a community-led project, the Terraform provider for Honeycomb is now officially maintained by Honeycomb in partnership with Hashicorp. We recognize how valuable supporting configuration as code is for our customers, and this change in ownership affirms our commitment to ensuring your ability to quickly make the most of Honeycomb’s Management API.
Honeycomb & Terraform, better together
Honeycomb provides observability for high-performance engineering teams so they can quickly understand how their code behaves in the hands of real users when running in even the most unpredictable, chaotic, and highly complex cloud environments. With Honeycomb, you can quickly get to the bottom of any elusive engineering mystery, meaning you burn fewer precious engineering cycles on firefighting and spend more time delivering fast, reliable, and great customer experiences.
Terraform is a powerful open-source Infrastructure as Code tool that offers a universal workflow for provisioning and managing the lifecycle of resources across any number of cloud services. Terraform codifies cloud APIs into declarative configuration files, allowing you to automate the provisioning of any service with consistent configurations.
With the Terraform provider for Honeycomb, you can automatically provision and configure Honeycomb objects programmatically. Previously, you could already do things like bundle instrumentation into your code before deploying it to production. Now, as part of that same deployment, you could manage everything you’d need to understand how the new feature you’re releasing behaves—like creating a marker to know when the deployment happened, the named queries you need to watch how that deployment performs, a board so your teammates can follow along, and a trigger to alert you if other critical performance thresholds are encountered along the way. You can also mix in the Honeycomb Provider with, for example, the AWS or Kubernetes provider, to have the configuration of your observability resources alongside the code and services that they belong to for fewer context switches.
With Honeycomb officially maintaining this provider in partnership with Hashicorp, that means you can integrate it into your workflow with peace of mind, knowing that it is supported as a critical component in the toolchain of any Honeycomb user.
How to Use the Honeycomb Terraform Provider
The Honeycomb Terraform Provider makes deployments and environment promotions much easier to manage. It includes the support for managing the following resources:
- Derived Columns
- Datasets
- Boards
- Column
- Triggers
- Query
- Query Annotations
- Markers
Using the Honeycomb Terraform provider requires a Honeycomb account. You can get started today with a free account.
After you have installed the provider directly from the Terraform Registry, add the following block in your Terraform config:
terraform { required_providers { honeycombio = { source = "honeycombio/honeycombio" version = "~> 0.3.0" } } }
You must also declare an api_key
in Terraform (required). We recommend setting the value for api_key
with aHONEYCOMBIO_APIKEY
environment variable.
Once the provider is set, you can use one of the above resources. The following is an example of using markers:
terraform { required_providers { honeycombio = { source = "honeycombio/honeycombio" } } } variable "dataset" { type = string } variable "app_version" { type = string } resource "honeycombio_marker" "marker" { message = "deploy ${var.app_version}" type = "deploy" url = "https://www.honeycomb.io/" dataset = var.dataset }
where:
dataset
– (Required) the associated dataset the marker will be sent tomessage
-(Optional) The message on the markertype
-(Optional) The type of the marker, Honeycomb.io can display markers in different colors depending on their typeurl
– (Optional) A target for the Marker. If you click on the Marker text, it will take you to this URL
CloudWatch Metrics Stream Module
Want to send your CloudWatch Metrics directly to Honeycomb? The Terraform AWS-Honeycomb CloudWatch Metrics Stream module makes this process simple. To send all CloudWatch metrics to Honeycomb, the following configuration is used:
module "my-cloudwatch-metrics" { source = "honeycombio/honeycomb-cloudwatch-metric-stream/aws" name = "my-cloudwatch-metrics" honeycomb_dataset_name = "my-cloudwatch-metrics" honeycomb_api_key = "XXXXXXXXXXXXXXXXXXXXXX" }
where:
- name (Required) the name that identifies the cloud metric stream
honeycomb_dataset_name
(Required) refers the associated dataset the information will be sent tohoneycomb_api_key
(Required) refers to the API key
Need to exclude certain name spaces? The following example shows you how to do so utilizing RDS
andELB
as examples:
module "cloudwatch_metric_stream_with_excludes" { source = "honeycombio/honeycomb-cloudwatch-metric-stream/aws" name = "cms_with_excludes" honeycomb_dataset_name = "cloudwatch-with-excludes" honeycomb_api_key = "XXXXXXXXXXXXXXXXXXXXXX" namespace_exclude_filters = ["AWS/RDS", "AWS/ELB"] }
where:
- name (Required) the name that identifies the cloud metric stream
honeycomb_dataset_name
(Required) refers the associated dataset the information will be sent to andhoneycomb_api_key
(Required) refers to the API keynamespace_exclude_filters
(Optional) list of CloudWatch Metric namespaces to exclude. If set, we’ll only stream metrics that are not in these namespaces.
Additional options include:
namespace_include_filters
tags
s3 and http buffering options
Try it for yourself
The options above are just the tip of the iceberg. When using the Terraform provider for Honeycomb or the CloudWatch Metrics Stream module, the possibilities are endless. Check out the docs for the Honeycomb provider for a complete reference list of functionality.
If you’d like to learn about other possibilities and workflows you can unlock with this integration, join us on March 29 when Honeycomb’s Jason Harley and Hashicorp’s Nic Jackson present a more in-depth look at how Terraform and Honeycomb are better together.
If you’d like to try it for yourself, all you need is a free Honeycomb account. Let us know what you think!
Special thanks to Koenraad Verheyden for graciously building and maintaining the Terraform Provider for over a year!