OpenTelemetry Tracing Specification now 1.0!

Our goal is to provide a generally available, production quality release for the tracing data source across most OpenTelemetry components in the first half of 2021. Several components have already reached this milestone! We expect metrics to reach the same status in the second half of 2021 and are targeting logs in 2022.

Project Status

The OpenTelemetry project consists of multiple components that support multiple data sources. Each component defines its own versioning and stability guarantees. These guarantees may be data source specific.

Latest Releases


.NET

1.0 release of core components

This is the 1st stable release of [core components](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/VERSIONING.md#core-components). This implements the [1.0](https://github.com/open-telemetry/opentelemetry-specification/releases/tag/v1.0.0) of the OpenTelemetry specification.
This has no change since the last release-candidate (rc4).

Following lists the components released:

OpenTelemetry
OpenTelemetry.Api
OpenTelemetry.Exporter.Console
OpenTelemetry.Exporter.InMemory
OpenTelemetry.Exporter.Jaeger
OpenTelemetry.Exporter.OpenTelemetryProtocol
OpenTelemetry.Exporter.Zipkin

Please note that the actual nuget version is 1.0.1

Go

Release v0.18.0

### Added

- Added `resource.Default()` for use with meter and tracer providers. (#1507)
- `AttributePerEventCountLimit` and `AttributePerLinkCountLimit` for `SpanLimits`. (#1535)
- Added `Keys()` method to `propagation.TextMapCarrier` and `propagation.HeaderCarrier` to adapt `http.Header` to this interface. (#1544)
- Added `code` attributes to `go.opentelemetry.io/otel/semconv` package. (#1558)
- Compatibility testing suite in the CI system for the following systems. (#1567)
   | OS      | Go Version | Architecture |
   | ------- | ---------- | ------------ |
   | Ubuntu  | 1.15       | amd64        |
   | Ubuntu  | 1.14       | amd64        |
   | Ubuntu  | 1.15       | 386          |
   | Ubuntu  | 1.14       | 386          |
   | MacOS   | 1.15       | amd64        |
   | MacOS   | 1.14       | amd64        |
   | Windows | 1.15       | amd64        |
   | Windows | 1.14       | amd64        |
   | Windows | 1.15       | 386          |
   | Windows | 1.14       | 386          |

### Changed

- Replaced interface `oteltest.SpanRecorder` with its existing implementation
  `StandardSpanRecorder` (#1542).
- Default span limit values to 128. (#1535)
- Rename `MaxEventsPerSpan`, `MaxAttributesPerSpan` and `MaxLinksPerSpan` to `EventCountLimit`, `AttributeCountLimit` and `LinkCountLimit`, and move these fields into `SpanLimits`. (#1535)
- Renamed the `otel/label` package to `otel/attribute`. (#1541)
- Vendor the Jaeger exporter's dependency on Apache Thrift. (#1551)
- Parallelize the CI linting and testing. (#1567)
- Stagger timestamps in exact aggregator tests. (#1569)
- Changed all examples to use `WithBatchTimeout(5 * time.Second)` rather than `WithBatchTimeout(5)`. (#1621)
- Prevent end-users from implementing some interfaces (#1575)
```
      "otel/exporters/otlp/otlphttp".Option
      "otel/exporters/stdout".Option
      "otel/oteltest".Option
      "otel/trace".TracerOption
      "otel/trace".SpanOption
      "otel/trace".EventOption
      "otel/trace".LifeCycleOption
      "otel/trace".InstrumentationOption
      "otel/sdk/resource".Option
      "otel/sdk/trace".ParentBasedSamplerOption
      "otel/sdk/trace".ReadOnlySpan
      "otel/sdk/trace".ReadWriteSpan
```

### Removed

- Removed attempt to resample spans upon changing the span name with `span.SetName()`. (#1545)
- The `test-benchmark` is no longer a dependency of the `precommit` make target. (#1567)
- Removed the `test-386` make target.
   This was replaced with a full compatibility testing suite (i.e. multi OS/arch) in the CI system. (#1567)

### Fixed

- The sequential timing check of timestamps in the stdout exporter are now setup explicitly to be sequential (#1571). (#1572)
- Windows build of Jaeger tests now compiles with OS specific functions (#1576). (#1577)
- The sequential timing check of timestamps of go.opentelemetry.io/otel/sdk/metric/aggregator/lastvalue are now setup explicitly to be sequential (#1578). (#1579)
- Validate tracestate header keys with vedors according to the W3C TraceContext specification (#1475). (#1581)
- The OTLP exporter includes related labels for translations of a GaugeArray (#1563). (#1570)

Raw changes made between v0.17.0 and v0.18.0
======================================
bb4c297eb36f6af082bfa1d3216d33bd90da05f0 Pre release v0.18.0 (#1635)
712c3dccf805f2397a4b15ce467e234c7b515c18 Fix makefile ci target and coverage test packages (#1634)
841d2a5885b37fc25fe77e72dca3b0f6bac945b2 Rename local var new to not collide with builtin (#1610)
13938ab5a867b7840c6c829b74a9ab39b828730e Update SpanProcessor docs (#1611)
e25503a00edef6baf2b3deb1a5884d4501e08dcf Add compatibility tests to CI (#1567)
1519d959829b2fd7a7a1b9b904b57235eb54e114 Use reasonable interval in sdktrace.WithBatchTimeout (#1621)
7d4496e0fefc99cfa70b86a09e3f8af8eae537f6 Pass metric labels when transforming to gaugeArray (#1570)
6d4a5e0df334546987f7d0583e0e86cdf01f2e66 Bump google.golang.org/grpc from 1.35.0 to 1.36.0 in /exporters/otlp (#1619)
a93393a0d754d3b16227fbfa9df4f37b07351028 Bump google.golang.org/grpc in /example/prom-collector (#1620)
e499ca86b7ef54b42f6dd684ccbf73f226af10bd Fix validation for tracestate with vendor and add tests (#1581)
43886e52f38de640d5f7abf6d9622fc1483ce649 Make timestamps sequential in lastvalue agg check (#1579)
37688ef67616aa5a99e27fb03320fd0dc87e590e revent end-users from implementing some interfaces (#1575)
85e696d20b9a6fee781fd42f68fe1b447559dc5c Updating documentation with an working example for creating NewExporter (#1513)
562eb28b7169cd83959fdb7fe1dddec74ee44ea1 Unify the Added sections of the unreleased changes (#1580)
c4cf1aff6bba39f4e0384f5223d33647f9973a77 Fix Windows build of Jaeger tests (#1577)
4a163beaa103fd57b4cf6e07dc19781ab2fda4a9 Fix stdout TestStdoutTimestamp failure with sleep (#1572)
bd4701eb935b94b0cfa21f925410fcb13cc1e389 Stagger timestamps in exact aggregator tests (#1569)
b94cd4b24917d0099eb0ddee6f9d6be0bddee469 add code attributes to semconv package (#1558)
78c06cef3537999b4692c9f88dfb91a6451337a0 Update docs from gitter to slack for communication (#1554)
1307c9116265619812781cf5b02898acabc1ef83 Remove vendor exclude from license-check (#1552)
5d2636e5bfa8538c8f36b8f11145d96351dbcd6b Bump github.com/golangci/golangci-lint in /internal/tools (#1565)
d7aff47338ec7f6957a15262721da7fdfe5524ca Vendor Thrift dependency (#1551)
298c5a142f4e4eb9eb9f249ff4d2fdff63bbd702 Update span limits to conform with OpenTelemetry specification (#1535)
ecf65d7968225482a4d50e4955d6bc826119b49c Rename otel/label -> otel/attribute (#1541)
1b5b66213656691e3528909fe39fa030eae15423 Remove resampling on span.SetName (#1545)
8da5299621bd6b2de185a1e06c93289a96b1af25 fix: grpc reconnection  (#1521)
3bce9c97f800c12a791e78a1611991818f9b4db6 Add Keys() method to propagation.TextMapCarrier (#1544)
0b1a1c7237f3172586bb6332397997bf71e27de0 Make oteltest.SpanRecorder into a concrete type (#1542)
7d0e3e52b69b2ba62ef617719fba5c3ca2aea86b SDK span no modification after ended (#1543)
7de3b58ce9e893f0f1f8214d63329ac82d759327 Remove extra labels types (#1314)
73194e44dbe9ecb2ba68f80b9a687edc66ce4d2d Bump google.golang.org/api from 0.39.0 to 0.40.0 in /exporters/trace/jaeger (#1536)
8fae0a644ad30b2f45f0e30cdea2efd7c8654ccf Create resource.Default() with required attributes/default values (#1507)

JavaScript

v0.18.0

### :boom: Breaking Change

* `opentelemetry-resources`
  * [#1975](https://github.com/open-telemetry/opentelemetry-js/pull/1975) fix: specification compliant resource collision precedence ([@lonewolf3739](https://github.com/lonewolf3739))

### :rocket: (Enhancement)

* `opentelemetry-semantic-conventions`
  * [#1976](https://github.com/open-telemetry/opentelemetry-js/pull/1976) feat(semantic-conventions): add missing RpcAttributes from spec ([@blumamir](https://github.com/blumamir))

### :bug: (Bug Fix)

* `opentelemetry-exporter-collector-grpc`, `opentelemetry-exporter-collector`
  * [#1938](https://github.com/open-telemetry/opentelemetry-js/pull/1938) fix(exporter-collector): wrong data type for numbers ([@kudlatyamroth](https://github.com/kudlatyamroth))
* `opentelemetry-instrumentation-http`, `opentelemetry-plugin-http`
  * [#1939](https://github.com/open-telemetry/opentelemetry-js/pull/1939) fix: use socket from the request ([@mzahor](https://github.com/mzahor))
* `opentelemetry-context-async-hooks`
  * [#1937](https://github.com/open-telemetry/opentelemetry-js/pull/1937) fix: isolate binding EventEmitter ([@Flarna](https://github.com/Flarna))

### :books: (Refine Doc)

* [#1973](https://github.com/open-telemetry/opentelemetry-js/pull/1973) docs(readme): fix @opentelemetry/instrumentation-http link ([@Hongbo-Miao](https://github.com/Hongbo-Miao))
* [#1941](https://github.com/open-telemetry/opentelemetry-js/pull/1941) fix: update readme upgrade guidelines version setting ([@MSNev](https://github.com/MSNev))

### :house: (Internal)

* `opentelemetry-api-metrics`, `opentelemetry-context-async-hooks`, `opentelemetry-context-zone-peer-dep`, `opentelemetry-core`, `opentelemetry-exporter-collector-grpc`, `opentelemetry-exporter-collector-proto`, `opentelemetry-exporter-collector`, `opentelemetry-exporter-jaeger`, `opentelemetry-exporter-prometheus`, `opentelemetry-exporter-zipkin`, `opentelemetry-grpc-utils`, `opentelemetry-instrumentation-fetch`, `opentelemetry-instrumentation-grpc`, `opentelemetry-instrumentation-http`, `opentelemetry-instrumentation-xml-http-request`, `opentelemetry-instrumentation`, `opentelemetry-metrics`, `opentelemetry-node`, `opentelemetry-plugin-grpc-js`, `opentelemetry-plugin-grpc`, `opentelemetry-plugin-http`, `opentelemetry-plugin-https`, `opentelemetry-propagator-b3`, `opentelemetry-resource-detector-aws`, `opentelemetry-resource-detector-gcp`, `opentelemetry-resources`, `opentelemetry-sdk-node`, `opentelemetry-shim-opentracing`, `opentelemetry-tracing`, `opentelemetry-web`
  * [#1977](https://github.com/open-telemetry/opentelemetry-js/pull/1977) chore: update API to 0.18.0 ([@Flarna](https://github.com/Flarna))
* Other
  * [#1960](https://github.com/open-telemetry/opentelemetry-js/pull/1960) chore: updating current state of compatibility matrix ([@obecny](https://github.com/obecny))
* `opentelemetry-api-metrics`, `opentelemetry-api`, `opentelemetry-context-async-hooks`, `opentelemetry-context-base`, `opentelemetry-context-zone-peer-dep`, `opentelemetry-core`, `opentelemetry-exporter-collector-grpc`, `opentelemetry-exporter-collector-proto`, `opentelemetry-exporter-collector`, `opentelemetry-exporter-jaeger`, `opentelemetry-exporter-prometheus`, `opentelemetry-exporter-zipkin`, `opentelemetry-grpc-utils`, `opentelemetry-instrumentation-fetch`, `opentelemetry-instrumentation-grpc`, `opentelemetry-instrumentation-http`, `opentelemetry-instrumentation-xml-http-request`, `opentelemetry-instrumentation`, `opentelemetry-metrics`, `opentelemetry-node`, `opentelemetry-plugin-grpc-js`, `opentelemetry-plugin-grpc`, `opentelemetry-plugin-http`, `opentelemetry-plugin-https`, `opentelemetry-propagator-b3`, `opentelemetry-resource-detector-aws`, `opentelemetry-resource-detector-gcp`, `opentelemetry-resources`, `opentelemetry-sdk-node`, `opentelemetry-shim-opentracing`, `opentelemetry-tracing`, `opentelemetry-web`
  * [#1942](https://github.com/open-telemetry/opentelemetry-js/pull/1942) chore: remove API and context-base ([@dyladan](https://github.com/dyladan))
* `opentelemetry-core`, `opentelemetry-exporter-collector`, `opentelemetry-instrumentation-http`, `opentelemetry-metrics`, `opentelemetry-plugin-http`
  * [#1922](https://github.com/open-telemetry/opentelemetry-js/pull/1922) chore: lint on shadowing in non-test sources, fix a few of them ([@johnbley](https://github.com/johnbley))

### Committers: 10

* Amir Blum ([@blumamir](https://github.com/blumamir))
* Bartlomiej Obecny ([@obecny](https://github.com/obecny))
* Daniel Dyla ([@dyladan](https://github.com/dyladan))
* Gerhard Stöbich ([@Flarna](https://github.com/Flarna))
* Hongbo Miao ([@Hongbo-Miao](https://github.com/Hongbo-Miao))
* John Bley ([@johnbley](https://github.com/johnbley))
* Karol Fuksiewicz ([@kudlatyamroth](https://github.com/kudlatyamroth))
* Marian Zagoruiko ([@mzahor](https://github.com/mzahor))
* Nev ([@MSNev](https://github.com/MSNev))
* Srikanth Chekuri ([@lonewolf3739](https://github.com/lonewolf3739))

Java

Version 1.0.0

## Version 1.0.0 - 2021-02-26

### General

This releases marks the first stable release for the tracing, baggage and context APIs and the SDK. 
Please see the [Versioning](VERSIONING.md) document for stability guarantees.

The best source of lsit of the now stable packages can be found in the [opentelemetry-bom](https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-bom/1.0.0/opentelemetry-bom-1.0.0.pom) artifact in maven central.

Javadoc is available at javadoc.io. For example, [javadoc.io](https://javadoc.io/doc/io.opentelemetry/opentelemetry-api/1.0.0/index.html) for the API module.

#### Changes

- The `opentelemetry-proto` module is now versioned as an `alpha` module, as it contains non-stable
metrics and logs signals. It has hence been removed from the main BOM.
- The `opentelemetry-sdk-extension-otproto` module has been removed. The classes in it have been moved
to a new `opentelemetry-exporter-otlp-common` module but have been repackaged into an unsupported,
internal package.

### Metrics (alpha)

#### Breaking Changes

- `PrometheusCollector.Builder` inner class has been moved to the top level as `PrometheusCollectorBuilder`.

### Many thanks to all the people who have contributed over the past few years! We couldn't have done without everyone's help.

[![contributors](https://contributors-img.web.app/image?repo=open-telemetry/opentelemetry-java)](https://github.com/open-telemetry/opentelemetry-java/graphs/contributors?from=2019-02-24&to=2021-02-26)

Python

opentelemetry v0.18b0

Release only affects  Opentelemetry components listed below:
`opentelemetry-distro`
`opentelemetry-exporter-opencensus`
`opentelemetry-instrumentation`
`opentelemetry-opentracing-shim`

### Added
- Add urllib to opentelemetry-bootstrap target list ([#1584])(https://github.com/open-telemetry/opentelemetry-python/pull/1584)

PHP

Initial pre-alpha release

This is an initial, pre-alpha release.  This release is not production ready, it's just being produced in order to receive feedback from the PHP community at large.

Ruby

opentelemetry-resource_detectors 0.15.0

### v0.15.0 / 2021-02-18

* (No significant changes)

Erlang

OpenTelemetry API v0.3.2

* `create_span` has been renamed `start_inactive_span` (#53)
* Fix `add_event` Elixir function (#56)
* Add accessors to deconstruct Span (#54)
* Attributes and events that aren't a list are now silently dropped (#51)
* Fix bug where there is no current span ctx and update_name is called (#52)
* Readme, typespec and doc fixes #45 #46 #50 #59 

Collector

Release version 0.21.0

# v0.21.0 Beta

## 🛑 Breaking changes 🛑

- Remove deprecated function `IsValid` from trace/span ID (#2522)
- Remove accessors for deprecated status code (#2521)

## 💡 Enhancements 💡

- `otlphttp` exporter: Add `compression` option for gzip encoding of outgoing http requests (#2502)
- Add `ScrapeErrors` struct to `consumererror` to simplify errors usage (#2414)
- Add `cors_allowed_headers` option to `confighttp` (#2454)
- Add SASL/SCRAM authentication mechanism on `kafka` receiver and exporter (#2503)

## 🧰 Bug fixes 🧰

- `otlp` receiver: Sets the correct deprecated status code before sending data to the pipeline (#2521)
- Fix `IsPermanent` to account for wrapped errors (#2455)
- `otlp` exporter: Preserve original error messages (#2459)