Beginner 30 minutes

Migrate from Honeycomb to TraceKit

Honeycomb embraces OpenTelemetry, which makes migration straightforward -- swap the OTLP endpoint and API key. Or switch to TraceKit's native SDK for live code monitoring and built-in PII scrubbing.

Start Free
1

Swap OTLP Endpoint and API Key

Honeycomb uses standard OpenTelemetry OTLP endpoints. The fastest migration path is to simply point your existing OTel instrumentation to TraceKit's endpoint and replace the Honeycomb API key.

CategoryHoneycombTraceKitNotes
EndpointOTEL_EXPORTER_OTLP_ENDPOINT (api.honeycomb.io:443)TRACEKIT_ENDPOINTPoint OTLP exporter to TraceKit endpoint
AuthenticationHONEYCOMB_API_KEY (x-honeycomb-team header)TRACEKIT_API_KEYAPI key replaces Honeycomb team key
DatasetHONEYCOMB_DATASETTRACEKIT_SERVICE_NAMEDatasets map to service names in TraceKit
2

Update OpenTelemetry Headers

Honeycomb uses custom OTLP headers for authentication and dataset routing. Replace these with TraceKit's headers or switch to the native SDK for additional features.

CategoryHoneycombTraceKitNotes
HeadersOTEL_EXPORTER_OTLP_HEADERS=x-honeycomb-team=KEYOTEL_EXPORTER_OTLP_HEADERS=x-tracekit-key=KEYReplace Honeycomb auth header
Headersx-honeycomb-dataset=my-serviceOTEL_SERVICE_NAME=my-serviceService name via standard OTel resource
EnvironmentHONEYCOMB_API_ENDPOINT (EU region)TRACEKIT_ENDPOINT (region-specific)Use region-appropriate endpoint URL
3

Optional: Switch to TraceKit Native SDK

While OTLP forwarding works, TraceKit's native SDK adds live code monitoring, automatic PII scrubbing, and simplified initialization. Consider replacing the OTel SDK with TraceKit's SDK for these benefits.

CategoryHoneycombTraceKitNotes
Package@opentelemetry/sdk-node + @honeycomb/opentelemetry@tracekit/node-apmSingle package replaces OTel SDK + Honeycomb distro
Packageopentelemetry-sdk + honeycomb-beeline (Python)tracekit-apmSimpler installation, fewer dependencies
FeaturesStandard OTel features onlyOTel + live debugging + PII scrubbingNative SDK adds TraceKit-specific capabilities
4

Migrate Derived Columns and SLOs

Honeycomb's derived columns and SLO definitions need to be recreated in TraceKit. TraceKit's built-in dashboards cover common latency and error rate views that replace many derived columns.

CategoryHoneycombTraceKitNotes
QueriesHoneycomb Query BuilderTraceKit Dashboard filtersFilter by service, duration, attributes
SLOsHoneycomb SLO definitionsTraceKit Alerts (threshold-based)Set P95 latency and error rate thresholds
BoardsHoneycomb Boards (dashboards)TraceKit Dashboard viewsBuilt-in service overview, latency, errors
5

Verify Traces and Deactivate Honeycomb

Confirm traces appear in TraceKit with correct service names and attributes. Once verified, remove the Honeycomb API key from your environment to stop sending duplicate data.

CategoryHoneycombTraceKitNotes
VerificationHoneycomb > Home > Recent tracesTraceKit Dashboard > TracesVerify trace data and latency distribution
VerificationHoneycomb > Service Map (BubbleUp)TraceKit Service MapVerify service dependency visualization
CleanupRemove HONEYCOMB_API_KEY from env(keep TRACEKIT_API_KEY)Stop sending to Honeycomb

Code Examples

Before (Honeycomb)

import (
    "github.com/honeycombio/otel-config-go/otelconfig"
    "go.opentelemetry.io/otel"
)

func main() {
    cleanup, _ := otelconfig.ConfigureOpenTelemetry(
        otelconfig.WithServiceName("my-service"),
        otelconfig.WithHeaders(map[string]string{
            "x-honeycomb-team": "YOUR_HONEYCOMB_API_KEY",
        }),
    )
    defer cleanup()

    tracer := otel.Tracer("my-service")
    ctx, span := tracer.Start(ctx, "process-order")
    defer span.End()
}

After (TraceKit)

import "github.com/tracekit/go-sdk/tracekit"

func main() {
    tracekit.Init("tk_your_api_key",
        tracekit.WithService("my-service"),
        tracekit.WithEnvironment("production"),
    )
    defer tracekit.Shutdown(context.Background())

    ctx, span := tracekit.StartSpan(context.Background(), "process-order")
    defer span.End()
}

Before (Honeycomb)

const { HoneycombSDK } = require('@honeycombio/opentelemetry-node');
const { trace } = require('@opentelemetry/api');

const sdk = new HoneycombSDK({
  apiKey: 'YOUR_HONEYCOMB_API_KEY',
  serviceName: 'my-service',
  dataset: 'my-service',
});
sdk.start();

const tracer = trace.getTracer('my-service');
const span = tracer.startSpan('process-order');
// ... business logic
span.end();

After (TraceKit)

const tracekit = require('@tracekit/node-apm');

tracekit.init({
  apiKey: 'tk_your_api_key',
  service: 'my-service',
  environment: 'production',
});

const span = tracekit.startSpan('process-order');
// ... business logic
span.end();

Before (Honeycomb)

# Using Honeycomb's OpenTelemetry distribution
import os
os.environ['OTEL_EXPORTER_OTLP_ENDPOINT'] = 'https://api.honeycomb.io'
os.environ['OTEL_EXPORTER_OTLP_HEADERS'] = 'x-honeycomb-team=YOUR_API_KEY'
os.environ['OTEL_SERVICE_NAME'] = 'my-service'

from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider

provider = TracerProvider()
trace.set_tracer_provider(provider)
tracer = trace.get_tracer('my-service')

with tracer.start_as_current_span('process-order'):
    pass  # business logic

After (TraceKit)

import tracekit

tracekit.init(
    api_key='tk_your_api_key',
    service='my-service',
    environment='production',
)

with tracekit.start_span('process-order') as span:
    pass  # business logic

Ready to migrate?

Start your free TraceKit account and follow this guide to migrate from Honeycomb in 30 minutes.

Start Free Migration