The OpenTracing API provides a standard, vendor-neutral framework for instrumentation of your code. It consists of an API specification, frameworks, and libraries that have implemented the specification. Once you’ve instrumented your code by creating spans for individual operations and then connecting them into traces throughout your system, Lightstep can show you how your system is running, where there may be issues, and where there may be opportunities to greatly improve performance.

Remember, Lightstep can only display what your system sends it, so instrumentation is key! You can auto-instrument your system to see distributed traces quickly in Lightstep, or you can manually add instrumentation to your services where you want finer grained control, or a combination of both.

Already using Jaeger or Zipkin for tracing? Then your instrumentation is already done! Lightstep can ingest data from the Jaeger and Zipkin.

Auto-Instrumentation Quick Start

Each of these options will have your systems sending trace data to Lightstep without needing to touch your code:

  • Auto-Instrument using tracing libraries: Out-of-the-box tracing of popular frameworks (such as Django and Spring), common protocols (HTTP, gRPC) and data store drivers (MySQL, MongoDB). Configure the tracer and see requests travel through those components as full distributed traces in Lightstep.
  • Use the Java SpecialAgent: Automatically instrument your app based on third-party libraries (OkHttp, Spring, Kafka) you may already use.
  • Instrument Istio Service Mesh: Instruments HTTP requests as they travel through the mesh.

Manual Instrumentation Quick Start

Our language-specific Quick Start topics show you how to create a single span on your service and then show you how to associate it to a child span to create a trace. You install both the OpenTracing and Lightstep tracers and then use the OpenTracing APIs to instrument your code.