Honeycombio Provider
Generate Provider
The Honeycombio provider must be installed as a Local Package by following the instructions for Any Terraform Provider:
pulumi package add terraform-provider honeycombio/honeycombio
Overview
Honeycomb provides observability for high-performance engineering teams so they can quickly understand what their code does in the hands of real users in unpredictable and highly complex cloud environments. Honeycomb customers stop wasting precious time on engineering mysteries because they can quickly solve them and know exactly how to create fast, reliable, and great customer experiences.
In order to use this provider, you must have a Honeycomb account. You can get started today with a free account.
Use the navigation to the left to read about the available resources and functions.
Example usage
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: nodejs
import * as pulumi from "@pulumi/pulumi";
import * as honeycombio from "@pulumi/honeycombio";
const config = new pulumi.Config();
const dataset = config.require("dataset");
// Create a marker
const hello = new honeycombio.index/marker.Marker("hello", {
message: "Hello world!",
dataset: dataset,
});
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: python
import pulumi
import pulumi_honeycombio as honeycombio
config = pulumi.Config()
dataset = config.require("dataset")
# Create a marker
hello = honeycombio.index.marker.Marker("hello",
message=Hello world!,
dataset=dataset)
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: dotnet
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Honeycombio = Pulumi.Honeycombio;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var dataset = config.Require("dataset");
// Create a marker
var hello = new Honeycombio.Index.Marker.Marker("hello", new()
{
Message = "Hello world!",
Dataset = dataset,
});
});
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: go
package main
import (
"github.com/pulumi/pulumi-honeycombio/sdk/go/honeycombio"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
dataset := cfg.Require("dataset")
// Create a marker
_, err := index / marker.NewMarker(ctx, "hello", &index/marker.MarkerArgs{
Message: "Hello world!",
Dataset: dataset,
})
if err != nil {
return err
}
return nil
})
}
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: yaml
configuration:
dataset:
type: string
resources:
# Create a marker
hello:
type: honeycombio:Marker
properties:
message: Hello world!
dataset: ${dataset}
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: java
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.honeycombio.Marker;
import com.pulumi.honeycombio.MarkerArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var config = ctx.config();
final var dataset = config.get("dataset");
// Create a marker
var hello = new Marker("hello", MarkerArgs.builder()
.message("Hello world!")
.dataset(dataset)
.build());
}
}
More advanced examples can be found in the example directory.
Configuring the provider for Honeycomb EU
If you are a Honeycomb EU customer, to use the provider you must override the default API host.
This can be done with a provider configuration or by setting the HONEYCOMB_API_ENDPOINT
environment variable.
# Pulumi.yaml provider configuration file
name: configuration-example
runtime:
config:
honeycombio:apiUrl:
value: https://api.eu1.honeycomb.io
Authentication
The Honeycomb provider requires an API key to communicate with the Honeycomb APIs. The provider can make calls to v1 and v2 APIs and requires specific key configurations for each. For more information about API Keys, check out Best Practices for API Keys.
A single instance of the provider can be configured with both key types. At least one of the v1 or v2 API key configuration is required.
v1 APIs
v1 APIs require Configuration Keys. Their permissions can be managed in Environment settings. Most resources and functions call v1 APIs today.
The key can be set with the apiKey
argument or via the HONEYCOMB_API_KEY
or HONEYCOMBIO_APIKEY
environment variable.
HONEYCOMB_API_KEY
environment variable will take priority over the HONEYCOMBIO_APIKEY
environment variable.
v2 APIs
v2 APIs require a Mangement Key. Their permissions can be managed in Team settings. Resources and functions that call v2 APIs will be noted along with the scope required to use the resource or function.
The key pair can be set with the apiKeyId
and apiKeySecret
arguments, or via the HONEYCOMB_KEY_ID
and HONEYCOMB_KEY_SECRET
environment variables.
Note Hard-coding API keys in any Pulumi configuration is not recommended. Consider using the one of the environment variable options.
Configuration Reference
Arguments accepted by this provider include:
apiKey
- (Optional) The Honeycomb API key to use. It can also be set usingHONEYCOMB_API_KEY
orHONEYCOMBIO_APIKEY
environment variables.apiKeyId
- (Optional) The ID portion of the Honeycomb Management API key to use. It can also be set via theHONEYCOMB_KEY_ID
environment variable.apiKeySecret
- (Optional) The secret portion of the Honeycomb Management API key to use. It can also be set via theHONEYCOMB_KEY_SECRET
environment variable.apiUrl
- (Optional) Override the URL of the Honeycomb.io API. It can also be set usingHONEYCOMB_API_ENDPOINT
. Defaults tohttps://api.honeycomb.io
.debug
- (Optional) Enable to log additional debug information. To view the logs, setTF_LOG
to at least debug.
At least one of apiKey
, or the apiKeyId
and apiKeySecret
pair must be configured.