Compliance of Implementations with Specification
The following tables show which features are implemented by each OpenTelemetry
language implementation.
+
means the feature is supported, -
means it is not supported, N/A
means
the feature is not applicable to the particular language, blank cell means the
status of the feature is not known.
Feature
Go
Java
Node.js
Python
Ruby
Erlang
PHP
Rust
C++
.Net
TracerProvider
Create TracerProvider
Get a Tracer
Safe for concurrent calls
Tracer
Create a new Span
Get active Span
Mark Span active
Safe for concurrent calls
SpanContext
IsValid
IsRemote
Conforms to the W3C TraceContext spec
Span
Create root span
Create with default parent (active span)
Create with parent from Context
Create with explicit parent Span
Create with explicit parent SpanContext
UpdateName
User-defined start timestamp
End
End with timestamp
Set/Get status
Set/Get span kind
Safe for concurrent calls
Span attributes
SetAttribute
Set order preserved
String type
Boolean type
Double floating-point type
Signed int64 type
Array of primitives (homogeneous)
Unicode support for keys and string values
Span linking
AddLink
AddLazyLink
Safe for concurrent calls
Span events
AddEvent
AddLazyEvent
Add order preserved
Span events
Safe for concurrent calls
Span exceptions
RecordException
RecordException with extra parameters
Feature
Go
Java
Node.js
Python
Ruby
Erlang
PHP
Rust
C++
.Net
TBD
Feature
Go
Java
Node.js
Python
Ruby
Erlang
PHP
Rust
C++
.Net
TBD
Feature
Go
Java
Node.js
Python
Ruby
Erlang
PHP
Rust
C++
.Net
TBD
Feature
Go
Java
Node.js
Python
Ruby
Erlang
PHP
Rust
C++
.Net
TBD
Feature
Go
Java
Node.js
Python
Ruby
Erlang
PHP
Rust
C++
.Net
TBD
Feature
Go
Java
Node.js
Python
Ruby
Erlang
PHP
Rust
C++
.Net
Standard output (logging)
In-memory (mock exporter)
OTLP
OTLP/gRPC Exporter
OTLP/HTTP binary Protobuf Exporter
OTLP/HTTP JSON Protobuf Exporter
OTLP/HTTP gzip Content-Encoding support
Concurrent sending
Honors retryable responses with backoff
Honors non-retryable responses
Honors throttling response
Multi-destination spec compliance
Zipkin
Zipkin V1 JSON
Zipkin V1 Thrift
Zipkin V2 JSON
Zipkin V2 Protobuf
Service name mapping
SpanKind mapping
InstrumentationLibrary mapping
Boolean attributes
Array attributes
Status mapping
Event attributes mapping to Annotations
Fractional microseconds in timestamps
Service name mapping
Jaeger
TBD
OpenCensus
TBD
Prometheus
TBD