Instrumentation

OpenTelemetry code instrumentation is supported for many popular programming languages

OpenTelemetry code instrumentation is supported for the languages listed below. Depending on the language, topics covered will include some or all of the following:

  • Automatic instrumentation
  • Manual instrumentation
  • Exporting data

If you are using Kubernetes, you can use the OpenTelemetry Operator for Kubernetes to inject auto-instrumentation libraries for Java, Node.js and Python into your application.

Status and Releases

The current status of the major functional components for OpenTelemetry is as follows:

LanguageTracesMetricsLogs
C++StableStableExperimental
C#/.NETStableStableMixed*
Erlang/ElixirStableExperimentalExperimental
GoStableAlphaNot yet implemented
JavaStableStableExperimental
JavaScriptStableStableDevelopment
PHPAlphaAlphaNot yet implemented
PythonStableStableExperimental
RubyStableNot yet implementedNot yet implemented
RustStableAlphaNot yet implemented
SwiftStableExperimentalIn development

* For more information, see the language-specific instrumentation page.


C++

C++ A language-specific implementation of OpenTelemetry in C++.

.NET

.NET A language-specific implementation of OpenTelemetry in .NET.

Erlang/Elixir

Erlang/Elixir A language-specific implementation of OpenTelemetry in Erlang/Elixir.

Go

Go A language-specific implementation of OpenTelemetry in Go.

Java

Java A language-specific implementation of OpenTelemetry in Java.

JavaScript

JavaScript A language-specific implementation of OpenTelemetry in JavaScript (for Node.js & the browser).

PHP

PHP A language-specific implementation of OpenTelemetry in PHP.

Python

Python A language-specific implementation of OpenTelemetry in Python.

Ruby

Ruby A language-specific implementation of OpenTelemetry in Ruby.

Rust

Rust A language-specific implementation of OpenTelemetry in Rust.

Swift

Swift A language-specific implementation of OpenTelemetry in Swift.