Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
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.
- OpenTelemetry
- Zipkin
- OpenTracing/Jaeger (deprecated)
OpenTelemetry
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.
- OpenTelemetry Java auto-instrumentation and documentation
- OpenTelemetry .NET auto-instrumentation
- OpenTelemetry Python auto-instrumentation
- OpenTelemetry Go auto-instrumentation and documentation
Additional OTel resources
- Java HTTP Metrics from OpenTelemetry Traces
- OpenTelemetry documentation at Grafana
- OpenTelemetry Go instrumentation examples
- OpenTelemetry Language Specific Instrumentation
Other instrumentation resources
Zipkin
Jaeger
Note
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 blot periodically features instrumentation posts.
- How to configure OpenTelemetry .NET automatic instrumentation with Grafana Cloud
- Java Spring Boot Auto-Instrumentation
- Go + OpenMetrics Exemplars
- .NET
- Python