Please take the OpenCensus user survey

Feature Matrix

This matrix shows feature compatibility for OpenCensus languages.

Feature Java Go Python Nodejs PHP Erlang/Elixir
Core Data Models
SpanContext Yes Yes Yes Yes Yes Yes
Tracestate Yes Yes Yes Yes No Yes
Attributes (String/Bool/Int) Yes Yes Yes Yes String Only Yes
Attributes Double/Float64 Yes No No No No Yes
Link Yes Yes Yes Yes Yes Yes
Annotation Yes Yes Yes Yes Yes Yes
SpanKind Yes Yes Yes Yes Yes Yes
MessageEvent Yes Yes Yes Yes Yes Yes
Start/End Time Yes Yes Yes Yes Yes Yes
SpanData (for exporting) Yes Yes Yes Yes Yes Yes
Status Yes Yes Yes Yes Yes Yes
Trace Configs
TraceParam Limits (Attributes, Annotations, etc.) Yes Yes No Yes No No
Rate-limited Sampler No No No No Yes (requires PSR-6 cache) No
Basic Operations
Create a root span Yes Yes Yes Yes Yes Yes
Put span into/get span from current context Yes Yes Yes Yes Yes Yes
Create a span from current context Yes Yes Yes Yes Yes Yes
Create a span with explicit parent Yes Yes Yes Yes No Yes
Add attributes, links, annotations, message events Yes Yes Yes Yes Yes Yes
Register/Unregister Exporters Yes Yes Yes Yes Register only (use Agent)
Child Span Count Yes Yes No In Progress No Yes
End a span with an error status Yes Yes Yes No No Yes
Override sampling for a span Yes Yes No In Progress No Yes
Propagation
Binary Format - gRPC Yes Yes Yes No Client only Yes
W3C TraceContext Format - HTTP Yes Yes Yes Yes No Yes
B3 Format - HTTP Yes Yes Yes Yes In Progress In Progress
Google Cloud Text Format Yes Yes Yes Yes Yes No
Feature Java Go Python Nodejs PHP Erlang/Elixir
Core Data Models
Tag Yes Yes Yes Yes Yes Yes
TagKey (restrictions apply) Yes Yes Yes Yes Yes Yes
TagValue (restrictions apply) Yes Yes Yes Yes Yes Yes
TagMap Yes Yes Yes Yes Yes Yes
TagScope In Progress No No No No No
Basic Operations
Validate TagKey and TagValue Yes Yes Yes Yes Yes Yes
Insert a list of Tags into current context Yes Yes No No Yes Yes
Get Tags from current context Yes Yes Yes No Yes Yes
Update Tags in current context Yes Yes Yes No Yes Yes
Propagation
Binary Format Yes Yes Yes No Yes Yes
Text Format (W3C) No No No No No Yes
gRPC Propagation Yes Yes No No No No
HTTP Propagation No No No No No No
Feature Java Go Python Nodejs PHP Erlang/Elixir
Core Data Models
Measure (Int64 and Double) Yes Yes Yes Yes Yes Yes
Measurement (Int64 and Double) Yes Yes Yes Yes Yes Yes
MeasureMap or equivalent (allow for batch recording) Yes Yes Yes Yes Yes Yes
Aggregation (Count, Sum, LastValue, Distribution) Yes Yes Yes Yes Yes Yes
Bucket Boundaries (only with postive bounds) Yes Yes Yes Yes Yes Yes
AggregationData (Count, Sum, LastValue, Distribution) Yes Yes Yes Yes Yes Yes
View Yes Yes Yes Yes Yes Yes
ViewData Yes Yes Yes Yes Yes Yes
Basic Operations
Create Int64 or Double Measurements Yes Yes Yes Yes Yes Yes
Validate Measurements (no negative values) Yes Yes Yes Yes Yes Yes
Batch recording Measurements Yes Yes Yes Yes Yes Yes
Record against explicit context Yes Yes Yes Yes Yes Yes
Record against implicit (current) context Yes Yes Yes No Yes Yes
Record with additional attachments (e.g SpanContext) Yes Yes Yes Yes Yes Yes
Define and register Views Yes Yes Yes Yes Yes Yes
Apply Aggregation to Measurements according to View definitions Yes Yes Yes Yes Yes Yes
Validate bucket boundaries for a Distribution Yes Yes Yes Yes No Yes
Retrieve aggregated data for a given View Yes Yes Yes Yes Yes Yes
Stats Plug-in
gRPC plug-in for Metrics Yes Yes (missing started_rpcs metrics) No No No Yes
HTTP plug-in for Metrics Yes Yes No No No Yes
Feature Java Go Python Nodejs PHP Erlang/Elixir
Core Data Models
LabelKey Yes Yes Yes Yes No No
LabelValue Yes Yes Yes Yes No No
Double and Int64 Value Yes Yes Yes Yes No No
Summary Value Yes Yes Yes Yes No No
Distribution Value (including BucketOptions and Exemplar.) Yes Yes Yes Yes (without exemplar) No No
Point Yes Yes Yes Yes No No
TimeSeries Yes Yes Yes Yes No No
MetricDescriptor Yes Yes Yes Yes No No
Metric Yes Yes Yes Yes No No
Double and Long Gauge Yes Yes In Progress Yes No No
MetricProducer Yes Yes Yes Yes No No
Basic Operations
Add/remove metric producers Yes Yes Yes Yes No No
Retrieve metrics from each metric producer Yes Yes Yes Yes No No
Register gauges to metric registry Yes Yes In Progress Yes No No
Feature Java Go Python Nodejs PHP Erlang/Elixir
Top-level Resource API Yes Yes No Yes No No
Auto-detect GCE/GKE/AWS EC2 resources Yes Yes Yes Yes No No
Set resources for custom environment Yes Yes No Yes No No
Encode and decode resource Yes Yes No Yes No No
Merge mutiple resources Yes Yes No Yes No No
Add resource labels to span Yes No Yes (without new names) Yes No No
Feature Java Go Python Nodejs PHP Erlang/Elixir
Metrics
Stackdriver Monitoring Yes Yes (using ViewData) Yes (using ViewData) Yes Yes (using Go Daemon) No
Prometheus Yes Yes (using ViewData) Yes (using ViewData) Yes (using ViewData) Yes (using Go Daemon) Yes
Tracing
Strackdriver Trace Yes Yes Yes Yes Yes Yes
Jaeger Yes Yes Yes Yes Yes No
Zipkin Yes Yes Yes Yes (missing fields) Yes Yes