To get distributed tracing data into Lightstep, you need to instrument your code to send telemetry data to Lightstep Microsatellites. Lightstep supports OpenTelemetry as the way to get telemetry data (traces, logs, and metrics) from your app as requests travel through its many services and other infrastructure.
Already instrumented using OpenTelemetry Collectors? It’s easy to configure them to report to Lightstep.
There are two ways to instrument:
- Auto-installers: An agent or wrapper instruments RPC frameworks, clients and other common libraries, either by modifying code at runtime or by integrating like a plug-in as a dependency. Requires little to no service code, depending on your language.
- Manual instrumentation: Uses an SDK and APIs you call from your services to provide observability into the operations within a service.
Using the auto-installers is a quick way to start seeing your telemetry data in Lightstep. Once that’s in place, you’ll be able to see where the blind spots are in your system and you can start adding manual instrumentation as needed.
These quick starts use OpenTelemetry and auto-installers when available for that language. If OpenTelemetry doesn’t currently support the language you need, you can use OpenTracing for now and then move to OpenTelemetry when it’s ready. If you use OpenTracing in some services and OpenTelemetry in other services, traces will be correctly connected as long as you use B3 context propagation in all services.
The links in the table for OpenTelemetry instrumentation are hosted on our sister site. Be sure to come back here for Lightstep info!
Already using Jaeger or Zipkin for tracing? Then your instrumentation is already done! Lightstep can ingest data from the Jaeger and Zipkin. If you use Istio as your service mesh, you can get started with instrumenting quickly using our integration.
Remember, Lightstep can only display what your system sends it, so instrumentation is key!