This integration is supported only in Satellite version 2019-10-25_22-47-11Z and later.

If you’re currently using Zipkin for tracing, you can configure it to send that data directly to Microsatellites with little change. This is a great way to reuse your existing instrumentation architecture either directly in production or to quickly try out Lightstep Observability for the first time.

The Lightstep Observability integration only supports Zipkin V2 JSON /api/v2/spans format over HTTP or HTTPS.

Configure Zipkin to work with Lightstep Observability

To use Zipkin with Lightstep Observability, you need to make the following changes to your Zipkin tracers:

  • Configure the Zipkin HTTP Reporter’s URL to http://<satellite-host>:<satellite-port>/api/v2/spans to send data to Microsatellites, depending on the type of Microsatellites you are using.
    • On-Premise Microsatellites:
      Set to the host and port of your Microsatellite pool.
    • Public Microsatellites:

      host: ingest.lightstep.com

      port: 443

    • Developer Satellite:

      host: localhost

      port: 8360

    See openzipkin/zipkin-go for an example of how to do this.

  • Ensure that the tracer is configured to AlwaysSample. See openzipkin/zipkin-go for an example.

  • By default, Zipkin uses shared spans between the client and server. You need to disable this feature when initializing the tracer in your services. See openzipkin/zipkin-go and openzipkin/brave for examples.

  • If you’re using Brave, add a FinishedSpanHandler to the Tracing configuration.

  • Microsatellites need your project’s access token to accept the data. The recommended way to do this is to pass the token with the trace by setting the tag lightstep.access_token=<access_token> as part of the configuration when initializing the tracer. See openzipkin/zipkin-go for an example of how to do this in Go.

  • If you want to compress your span data, you can send it as a compressed JSON-encoded payload using a gzip file. For example:

    echo '{"mydummy": "json"}' | gzip | curl -v -i --data-binary @- -H "Content-Encoding: gzip" http://localhost/mymodule

If you only have one project, then you could launch the Microsatellite in a single project mode and not send a project access token. However, if you add a project, the Zipkin integration will not work until you pass in the access token.

Use Zipkin tracers with Lightstep tracers

If you’re using a mix of Zipkin and Lightstep Observability you must use B3 header propagation.