Connectors & Integrations  

Honeycomb Terraform Provider Now Officially Supported by Honeycomb

By Alayshia Knighten  |   Last modified on March 15, 2022

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_keyin Terraform (required). We recommend setting the value for api_keywith aHONEYCOMBIO_APIKEYenvironment 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 to
  • message-(Optional) The message on the marker
  • type-(Optional) The type of the marker, Honeycomb.io can display markers in different colors depending on their type
  • url- (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 to
  • honeycomb_api_key(Required) refers to the API key

Need to exclude certain name spaces? The following example shows you how to do so utilizing RDSandELBas 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 and
  • honeycomb_api_key (Required) refers to the API key
  • namespace_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!

 

Related Posts

Product Updates   Connectors & Integrations  

Introducing Honeycomb’s Microsoft Teams Integration for Enhanced Alert Management

Today marks an exciting milestone at Honeycomb, and we're thrilled to share it with you. We officially launched our integration with Microsoft Teams, a step...

Observability   Connectors & Integrations  

Honeycomb + Tracetest: Observability-Driven Development

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....

Observability   Connectors & Integrations  

Honeycomb, Meet Terraform

The best mechanism to combat proliferation of uncontrolled resources is to use Infrastructure as Code (IaC) to create a common set of things that everyone...