Skip to content
This repository has been archived by the owner on Jan 30, 2021. It is now read-only.

honeycombio/honeycomb-opentracing-proxy

This project is no longer under development!

This project is not actively maintained and you should not use it. New issues and pull requests will likely be ignored. OpenTracing has been superseded by OpenTelementry.

The OpenTelemetry Collector can read & write multiple trace formats (including Zipkin and Honeycomb) and is the preferred alternative.


CircleCI

honeycomb-opentracing-proxy is a drop-in compatible replacement for Zipkin. If your services are instrumented with OpenTracing and emit span data using Zipkin's Thrift or JSON formats, then honeycomb-opentracing-proxy can receive that data and forward it to the Honeycomb API. Using Honeycomb, you can explore single traces, and run queries over aggregated trace data.

flow diagram

Getting Started

First, sign up for a free Honeycomb trial account, and grab your write key from your account page.

Installation

If you have Go installed, you can clone this repository and build the proxy using the commands below. Alternatively, a Docker image is available. Binary, deb and RPM package downloads will be available soon!

git clone git@github.com:honeycombio/honeycomb-opentracing-proxy \
    $GOPATH/src/github.com/honeycombio/honeycomb-opentracing-proxy
go install github.com/honeycombio/honeycomb-opentracing-proxy/...

Usage

# Forward spans to a Honeycomb dataset named `traces`, using writekey $WRITEKEY
honeycomb-opentracing-proxy -d traces -k $WRITEKEY

# Forward spans to a downstream "real" Zipkin collector as well
honeycomb-opentracing-proxy --downstream https://myzipkin.example.com:9411

# Write spans to stdout for debugging or local development
honeycomb-opentracing-proxy --debug

If you're using Kubernetes, you can find a sample deployment manifest in the kubernetes/ directory.

Advanced usage

If you're instrumenting a complex codebase, and you'd like to send different types of traces to different Honeycomb datasets, add a honeycomb.dataset tag to your spans. E.g.

span, ctx := opentracing.StartSpan("myNewSpan")
span.SetTag("honeycomb.dataset", "My Shiny Tracing Dataset")

Using with a corporate/internal proxy server

If your outbound HTTP traffic goes through an internal/corporate proxy server, you might need to specify the HTTPS_PROXY environment variable when running the OpenTracing proxy:

HTTPS_PROXY=<my proxy address>

Looking to contribute?

Please see our development guide