Open source

Instrument for distributed tracing

Client instrumentation is the first building block to a functioning distributed tracing visualization pipeline. Client instrumentation is the process of adding instrumentation points in the application that create and offload spans.

Check out these resources for help instrumenting tracing with your favorite languages. Most of these guides include complete end-to-end examples with Grafana, Loki, Mimir, and Tempo.

Instrumentation frameworks

Most of the popular client instrumentation frameworks have SDKs in the most commonly used programming languages. You should pick one according to your application needs.

OpenTelemetry has the most active development in the community and may be a better long-term choice.


A collection of tools, APIs, and SDKs, OpenTelemetry helps engineers instrument, generate, collect, and export telemetry data such as metrics, logs, and traces, to analyze software performance and behavior.

Auto-instrumentation frameworks

OpenTelemetry provides auto-instrumentation agents and libraries of Java, .Net, Python, Go, and JavaScript applications, among others. For more information, refer for the OpenTelemetry Instrumentation documentation.

These libraries capture telemetry information from a client application with minimal manual instrumentation of the codebase.

Additional OTel resources

Other instrumentation resources




Jaegar client libraries have been deprecated. For more information, refer to the Deprecating Jaeger clients article. Jaegar now recommends using OpenTelemetry SDKs.

Grafana Blog

The Grafana blog periodically features instrumentation posts.

Community resources