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 thehost
andport
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.
- On-Premise Microsatellites:
-
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.