OpenTelemetry implementations are currently in beta status. This page tracks the overall release milestones as we move towards full releases for each language SIG. You can find more details about the milestones at this link.


Our current goal is to provide a generally available, production quality release by the second half of 2020. Currently, we are in the beta stage. What follows is a brief explanation of what we expect to be available, when.


This release included a functional tracing implementation. While the API may change, you should be able to use these releases to begin exploring and understanding the API and the SDK, and the changes that have been made from OpenTracing/OpenCensus. This release also included support for distributed context using the W3C TraceContext specification.

0.3 (first beta release)

v0.3 is expected to contain a functional metrics implementation. Again, you may see changes to the API and the SDK after this point, but it’s anticipated that these releases will allow you to explore and understand the changes that have been made from OpenCensus. In addition, this release is anticipated to include improvements to OpenTelemetry Context, various semantic conventions around trace and metric metadata, and a finalized OpenTelemetry protocol.

We are planning to take a wave of OpenTelemetry components to beta on or after March 16th 2020. These components include the Java, JavaScript, Python, Go, and .Net APIs and SDKs, along with the OpenTelemetry Collector, though more will be added if they’re able to meet their milestones in time.

We’ve set the following requirements for components to reach beta:

<1.0 (additional beta releases)

These releases are expected to contain further improvements to the tracing and metrics API and SDK in response to feedback gathered during the prior alpha and beta releases. Additionally, we expect that the OpenTelemetry protocol will be fully implemented and languages will include an exporter to the OpenTelemetry Collector. At the end of these beta releases, we anticipate all APIs will be unlikely to change.

RC and GA

We anticipate that once the beta phase is complete, we’ll enter into a period of final stabilization work around the API, SDK, and other components. This includes benchmarking, profiling, interoperability testing suites, and other work to ensure that the final release is performant and of a high quality. This work is anticipated to complete by the second half of 2020.

Want to Contribute?

For detailed information on contributing, Austin Parker wrote a great article called, How to Start Contributing to OpenTelemetry.

Want to get started right away? Check out the OpenTelemetry GitHub repos, find an issue, and hack away!

You can always join the community on GitHub and the conversation on Gitter. Use OpenTelemetry’s public calendar to keep track of SIG meetings.

Current SIG Release




* Removed `GetResource` and `SetResource` `Activity` extension methods. Added
  `GetResource` extension method on `BaseProvider`
* Added `ParentProvider` property on `BaseProcessor` and `BaseExporter` classes.
* `Resource` is no longer added to observed `Activity` objects as a
* Removed `RentrantExportProcessor` as it is not required by spec.
* `ActivitySourceAdapter` supports setting `ActivitySource` for Activities
  created without `ActivitySource`.
* Implemented `Shutdown` for `TracerProvider`.
* `Resources.CreateServiceResource` has been removed in favor of the
  `ResourceBuilder` API.
* `TracerProviderBuilder.SetResource` has been changed to
* By default `TracerProvider` will set a `Resource` containing [Telemetry
  * `` = `opentelemetry`
  * `telemetry.sdk.language` = `dotnet`
  * `telemetry.sdk.version` = [SDK version]
* `Resource` constructor marked as internal, as `ResourceBuilder` is the
  recommended API to build resources.
* Changed BaseExportProcessor to have it override OnExport instead of OnEnd;
  Added check for ActivityTraceFlags to BaseExportProcessor OnEnd


* Updated System.Diagnostics.DiagnosticSource to version 5.0.0
* Mark Activity extension methods as internal as these are not required to be
  public. GetTagValue, EnumerateTags, EnumerateLinks, EnumerateEvents. See
  for full changes.
* Changed SpanHelper class from public to internal. Moved SpanHelper.cs to



* Updated AddInMemoryExporter extension methods for TracerProviderBuilder and


* Jaeger tags used for InstrumentationLibrary changed from,
  library.version to, otel.library.version respectively.
* The `JaegerExporter` class has been made internal.
* Removed `ServiceName` from options available on the `AddJaegerExporter`
  extension. It is not required by the


* Code generated from proto files has been marked internal. This includes
  everything under the `OpenTelemetry.Proto` namespace.
* The `OtlpExporter` class has been made internal.
* Removed `ServiceName` from options available on the `AddOtlpExporter`
  extension. It is not required by the



* Added ExportProcessorType to exporter options
* Zipkin tags used for InstrumentationLibrary changed from,
  library.version to, otel.library.version respectively.
* Sending `service.namespace` as Zipkin tag.
* The `ZipkinExporter` class has been made internal.




* AspNetInstrumentation sets ActivitySource to activities created outside


* AspNetCoreInstrumentation sets ActivitySource to activities created outside
* For gRPC invocations, leading forward slash is trimmed from span name in order
  to conform to the specification.


* Add context propagation, when SuppressDownstreamInstrumentation is enabled.
* GrpcNetClientInstrumentation sets ActivitySource to activities created outside


* HttpInstrumentation sets ActivitySource to activities created outside


* SqlInstrumentation sets ActivitySource to activities created outside




Release v0.14.0

### Added

- An `EventOption` and the related `NewEventConfig` function are added to the `` package to configure Span events. (#1254)
- A `TextMapPropagator` and associated `TextMapCarrier` are added to the `` package to test `TextMap` type propagators and their use. (#1259)
- `SpanContextFromContext` returns `SpanContext` from context. (#1255)
- `DeploymentEnvironmentKey` added to `` package. (#1323)
- Add an OpenCensus to OpenTelemetry tracing bridge. (#1305)
- Add a parent context argument to `SpanProcessor.OnStart` to follow the specification. (#1333)
- Add missing tests for `sdk/trace/attributes_map.go`. (#1337)

### Changed

- Move the `` package into `` with the following changes. (#1229) (#1307)
  - `ID` has been renamed to `TraceID`.
  - `IDFromHex` has been renamed to `TraceIDFromHex`.
  - `EmptySpanContext` is removed.
- Move the `` package into ``. (#1229)
- OTLP Exporter updates:
  - supports OTLP v0.6.0 (#1230, #1354)
  - supports configurable aggregation temporality (default: Cumulative, optional: Stateless). (#1296)
- The Sampler is now called on local child spans. (#1233)
- The `Kind` type from the `` package was renamed to `InstrumentKind` to more specifically describe what it is and avoid semantic ambiguity. (#1240)
- The `MetricKind` method of the `Descriptor` type in the `` package was renamed to `Descriptor.InstrumentKind`.
   This matches the returned type and fixes misuse of the term metric. (#1240)
- Move test harness from the `` package into ``. (#1241)
- Move the `` package into `` as part of #964. (#1252)
- Move the `` package into `` as part of #1303. (#1321)
- Move the `` package into `` as a part of #1303. (#1316)
- Move the `Number` type (together with related functions) from `` package into `` as a part of #1303. (#1316)
- The function signature of the Span `AddEvent` method in `` is updated to no longer take an unused context and instead take a required name and a variable number of `EventOption`s. (#1254)
- The function signature of the Span `RecordError` method in `` is updated to no longer take an unused context and instead take a required error value and a variable number of `EventOption`s. (#1254)
- Move the `` package to ``. (#1262) (#1330)
- Move the `Version` function from `` to ``. (#1330)
- Rename correlation context header from `"otcorrelations"` to `"baggage"` to match the OpenTelemetry specification. (#1267)
- Fix `Code.UnmarshalJSON` to work with valid JSON only. (#1276)
- The `resource.New()` method changes signature to support builtin attributes and functional options, including `telemetry.sdk.*` and
  `` semantic conventions; the former method is renamed `resource.NewWithAttributes`. (#1235)
- The Prometheus exporter now exports non-monotonic counters (i.e. `UpDownCounter`s) as gauges. (#1210)
- Correct the `Span.End` method documentation in the `otel` API to state updates are not allowed on a span after it has ended. (#1310)
- Updated span collection limits for attribute, event and link counts to 1000 (#1318)
- Renamed `semconv.HTTPUrlKey` to `semconv.HTTPURLKey`. (#1338)

### Removed

- The `ErrInvalidHexID`, `ErrInvalidTraceIDLength`, `ErrInvalidSpanIDLength`, `ErrInvalidSpanIDLength`, or `ErrNilSpanID` from the `` package are unexported now. (#1243)
- The `AddEventWithTimestamp` method on the `Span` interface in `` is removed due to its redundancy.
   It is replaced by using the `AddEvent` method with a `WithTimestamp` option. (#1254)
- The `MockSpan` and `MockTracer` types are removed from ``.
   `Tracer` and `Span` from the same module should be used in their place instead. (#1306)
- `WorkerCount` option is removed from ``. (#1350)

### Fixed

- Rename `MergeItererator` to `MergeIterator` in the `` package. (#1244)
- The `` packages global TextMapPropagator now delegates functionality to a globally set delegate for all previously returned propagators. (#1258)
- Fix condition in `label.Any`. (#1299)
- Fix global `TracerProvider` to pass options to its configured provider. (#1329)
- Fix missing handler for `ExactKind` aggregator in OTLP metrics transformer (#1309) 

Raw changes made between v0.13.0 and v0.14.0
575df22b7973e921dcbc52df61701e8f62f69a83 (HEAD -> master, tag: v0.14.0, tag: sdk/v0.14.0, tag: exporters/trace/zipkin/v0.14.0, tag: exporters/trace/jaeger/v0.14.0, tag: exporters/stdout/v0.14.0, tag: exporters/otlp/v0.14.0, tag: exporters/metric/prometheus/v0.14.0, tag: example/zipkin/v0.14.0, tag: example/prometheus/v0.14.0, tag: example/otel-collector/v0.14.0, tag: example/namedtracer/v0.14.0, tag: example/jaeger/v0.14.0, tag: example/basic/v0.14.0, tag: bridge/opentracing/v0.14.0, tag: bridge/opencensus/v0.14.0, tag: bridge/opencensus/examples/bridge/v0.14.0, upstream/master, origin/master, origin/HEAD) Release v0.14.0 (#1355)
34aa6816c1e568dc910344fd5eb10e87b42c901d revert part of #1334.  Move binary propagation to contrib (#1353)
6eb68013b5afc4b68f38e6a8e01d4b170dcf1476 Some cleanups in otlp exporter (#1350)
5b5b4ab1ea9ecec5cb6d3a9d8de9c693aa5455b2 Update OTLP to v0.6.0 (#1354)
4619c068e28176797b333c5a8eaf64206332f8f6 Add opencensus bridge example and readme (#1348)
2c2f9852fef1d85d8a08e6d763777ccea3797648 Add missing tests for attributesMap (#1337)
fd3c82bec5fc8012da1fdd0402149b38bd8ec59d support exact kind in OTLP metrics exporter (#1309)
c857a3da18cb85194b8906531684e07a82327850 Pass options to configured TracerProvider (#1329)
7022c12bfce8bad1de7244f9c7b690dbff64a239 Update the package docs for the new API layout (#1346)
bbc9465ddb47b3791db8213d0b47e6d4c9be8b1b Add opencensus binary propagation to bridge (#1334)
73a05393a0a1824565e03cc00f3ea6dcd69bbf6e chore(semconv): Add PR number to changelog (#1323)
3207770f88d4ef840a3aae3d958fbc966e3e7351 Set resource attribute to "opentelemetry" (#1332)
380d9455fd1bf1735c6d5510f1e428d1a9fd5036 s/HTTPUrlKey/HTTPURLKey/ in semconv (#1338)
3d6e8b5078443c822c3800e89bdb84289d82b084 Move Version function and code from global to toplevel (#1330)
20c78fed0ab37829680e98147e3be1f6e059bc25 Bump from 0.5.2 to 0.5.3 (#1339)
070b657c215f4cd2087492a7d6a800a82c61f5c7 Add parent context to SpanProcessor.OnStart (#1333)
63a11144cf5a5fd185e40eba7dd22bce2b2980ef Move baggage and propagation to separate packages (#1325)
f6df5df9388279ee4627ed9e4999f0b83d09d1a8 add opencensus tracing bridge (#1305)
27aa1f601124468cde6c796935460435b6723700 update go documentation badge image (#1322)
75d4911c95a66b3ed4e869790c0b62d76b10d326 Move metric code to a separate package (#1321)
386331a472deda26020f125501cba346cacf0193 Prepare to move metrics code to separate subpackage (#1316)
f9984f2d4ec2a09f42358406d3bac8d83b589494 Support configurable AggregationTemporality in exporters; add OTLP missing sum point temporality/monotonic fields (#1296)
3a06b393b98134c2db0b7af9baa2b01a2aeadb3c Update span collection limits to 1000 (#1318)
b7508da6fa3f7c76f51c65de9db47123aafd1876 Export non monotonic counters as gauge values from the prometheus exporter (#1269)
757030dc78051d90dd1c33c1d292c4d4e8fa63cb Update Span End method documentation (#1310)
a354c026b64309830d152572a4be1afbc3d96d22 Clean up SDK span field docs (#1312)
1041adaf58b889eecf5262a599bee6975c3f3e7a Bump in /internal/tools (#1315)
32685019109ef57e44919ad7d7ed6e016df3eee6 Move tracing code to trace package (#1307)
9ac3a08eef14d96687edb260e2c27114a658d6b7 Remove MockSpan and MockTracer (#1306)
c9ae670c8a96d779e63cbb31d8644ec1b0706a19 Fix zipkin example module name (#1308)
e22a48de5a1353fb5450783ca9bb5edf651e9849 chore: adds vanity import for files that don't have it. (#1297)
911d7be43dc815d9fe5a87d8751243e2450692fc Check marshalled value instead of iface (#1299)
238d2c015ceeb03faa4f9c230916027a1735f098 Bump in /internal/tools (#1301)
187adeb25163b4deb529b770649ec5d0afd21206 Change resource.New() to use functional options; add builtin attributes for (host.*, telemetry.sdk.*) (#1235)
034195692aa8cf728c01af2621440c068610fd4a Update README and documentation to better communicate pre-GA state (#1281)
23e32b19ec227702d6f9d62b1b8aec69c075d21b Minor readability fixes to the Jeager example (#1282)
d98ad1042ccf788482b47e7c75ef3b9cf9ad6223 Fix `Code.UnmarshalJSON` to work with valid json only (#1276)
a6b31e0da1ad6c0e7e66624386a4fc8fd932f521 Update SpanProcessor Shutdown with context and error (#1264)
412ee70ad27befbdb0c0c1071f07b0d17767ce62 Fix typo in example (#1278)
da3f60ac96779dee397a46a450bd3de7b929c56b Bump in /internal/tools (#1274)
d75ccbb378461144d53c878b043ff9f18b44d8ef Add a Shutdown method to sdk TraceProvider (#1227)
230bdd10f0d3a2d00eaebcb153a5341f0882548f Add SpanContextFromContext() (#1255)
c9bc90b3e40247aa20dde76ef74b93dd6b466ae9 Renaming otcorrelations header to baggage (#1267)
d6dd84f6fa740ddfcf028dab0d79c07513b072cb Move the otel/api/global package to otel/global (#1262)
818c7b14b39eccf708aec8ea45e94c94c3ba9208 Move metric api package into `otel` (#1252)
90de306c2542309a1576f7b0e5bad5039e8932a5 Add global propagator testing and other fixes (#1260)
b7197d568f02a0cbc29cc4472300674188238722 Update the internal global TextMapPropagator (#1261)
ec300b28ada49f907c9e65b8140573fa441eba69 Update Span API event methods (#1254)
786a78ea367796751e301d9b3d178c0c8a1c97b3 Add delegating global propagator (#1258)
8fd4b2665503854067c8ae5a6afd4e2eef864daf Add oteltest TextMap propagator and carrier (#1259)
8ed55f5980611f2e1effe471f9946aba263f255d Update README with Org GA project board (#1253)
4ea0a208851651020cf1a65b7f139e63f0157816 Update semconv comments (#1249)
5c21e88fde7869105120bb1f5b23dbad72d83638 Update documentation for `otel/oteltest` (#1248)
396dd6053cbb7643d04fe1a468e1994f40ee44ba (spanfromcontext) Rename Kind from the `api/metric` package (#1240)
65044a118bc4a26d40b694c11f142e43fd083544 Move `api/apitest` into the `otel/oteltest` package (#1241)
a46f88ee8db8b63ecc04b94395f9e55314b94c01 Fix lint issues in otel package (#1243)
bafde86b29eac6dddae4c12221b40ab97ca4ee34 Fix lint issues in the label package (#1244)
7ecc55581b013a7d44b8f979dc13ee7c65328d9c Update documentation for the OTLP exporter (#1242)
f60f51d0a20f0df2c95d86dc4ff241cc9ea2b00e Move asyncronous metrics state helper out of apimetric/metrictes (#1234)
02cd1235426d16656120f78cf57c859c77072456 Call sampler on local child spans. (#1233)
25ccf5a08ac6d7fd63192be7c30c6d8f9aeaebdc Update proto v0.5.0 (#1230)
27c84d689d64167e8a1873311782750da6defa39 Move trace api package into `otel` (#1229)


v0.12.0 Release

## 0.12.0

### :boom: Breaking Change

* `opentelemetry-api`, `opentelemetry-exporter-collector-grpc`, `opentelemetry-exporter-collector-proto`, `opentelemetry-exporter-collector`, `opentelemetry-exporter-prometheus`, `opentelemetry-metrics`
  * [#1588]( Update to Proto v0.5.0 ([@obecny](
* `opentelemetry-api`, `opentelemetry-core`, `opentelemetry-plugin-http`, `opentelemetry-plugin-https`, `opentelemetry-shim-opentracing`
  * [#1589]( feat: simplify active span logic ([@mwear](
* `opentelemetry-resource-detector-aws`, `opentelemetry-resources`
  * [#1581]( chore: remove duplicate hostname resource attribute ([@mwear](
* `opentelemetry-api`, `opentelemetry-core`, `opentelemetry-plugin-fetch`, `opentelemetry-plugin-xml-http-request`
  * [#1560]( feat: b3 single header support ([@mwear](
* `opentelemetry-core`, `opentelemetry-tracing`
  * [#1562]( feat(core): rename ProbabilitySampler to TraceIdRatioBasedSampler ([@legendecas](
* `opentelemetry-exporter-prometheus`
  * [#1375]( feat: make prometheus config preventServerStart optional ([@legendecas](
* `opentelemetry-core`, `opentelemetry-exporter-prometheus`, `opentelemetry-metrics`, `opentelemetry-sdk-node`, `opentelemetry-tracing`
  * [#1522]( Remove process listener ([@dyladan](

### :rocket: (Enhancement)

* `opentelemetry-api`, `opentelemetry-exporter-collector-grpc`, `opentelemetry-exporter-collector-proto`, `opentelemetry-exporter-collector`, `opentelemetry-exporter-prometheus`, `opentelemetry-metrics`
  * [#1588]( Update to Proto v0.5.0 ([@obecny](
* `opentelemetry-core`, `opentelemetry-tracing`
  * [#1577]( feat: implement parent based sampler ([@dyladan](
* `opentelemetry-instrumentation`
  * [#1572]( feat: adding function for checking wrapped into instrumentation ([@obecny](
* `opentelemetry-core`
  * [#1579]( fix: correlation-context header ([@Asafb26](
  * [#1503]( feat: add deep-merge util ([@naseemkullah](
* `opentelemetry-exporter-prometheus`
  * [#1570]( fix: make prometheus histogram export  cumulative ([@AndrewGrachov](
* `opentelemetry-api`, `opentelemetry-core`, `opentelemetry-exporter-collector-proto`, `opentelemetry-exporter-collector`, `opentelemetry-exporter-jaeger`, `opentelemetry-exporter-prometheus`, `opentelemetry-exporter-zipkin`, `opentelemetry-metrics`, `opentelemetry-tracing`
  * [#1514]( feat: add global error handler ([@mwear](
* `opentelemetry-api`, `opentelemetry-core`, `opentelemetry-node`, `opentelemetry-plugin-http`, `opentelemetry-plugin-https`, `opentelemetry-shim-opentracing`, `opentelemetry-tracing`
  * [#1527]( feat(api): propagate spanContext only using API #1456 ([@vmarchaud](
* `opentelemetry-node`, `opentelemetry-sdk-node`
  * [#1525]( feat(node-tracer): use AsyncLocalStorageContextManager by default starting Node 14.8 #1511 ([@vmarchaud](
* `opentelemetry-exporter-collector`, `opentelemetry-exporter-jaeger`, `opentelemetry-exporter-zipkin`, `opentelemetry-grpc-utils`, `opentelemetry-plugin-grpc-js`, `opentelemetry-plugin-grpc`, `opentelemetry-plugin-http`, `opentelemetry-plugin-https`
  * [#1548]( chore(http): remove `x-opentelemetry-outgoing-request` header #1547 ([@vmarchaud](
* Other
  * [#1553]( docs: fix and update getting-started ([@svrnm](
  * [#1550]( EOL semantics by adding .gitattributes and changing tsconfig.json ([@MarkSeufert](
* `opentelemetry-api`, `opentelemetry-instrumentation`, `opentelemetry-node`
  * [#1540]( Plugins refactoring - new instrumentation package for plugins ([@obecny](
* `opentelemetry-api`, `opentelemetry-tracing`
  * [#1555]( chore: disallow null attribute values ([@dyladan](
* `opentelemetry-resource-detector-aws`, `opentelemetry-resources`
  * [#1404]( Feat: Added AWS ECS Plugins Resource Detector ([@EdZou](
* `opentelemetry-node`
  * [#1543]( feat: enable dns instrumentation by default ([@naseemkullah](
  * [#1532]( fix: decrease level of unsupported-version logs to warn ([@naseemkullah](
* `opentelemetry-resources`, `opentelemetry-sdk-node`
  * [#1531]( feat: process resource detector ([@mihirsoni](
* `opentelemetry-api`, `opentelemetry-context-async-hooks`, `opentelemetry-context-base`, `opentelemetry-context-zone-peer-dep`, `opentelemetry-core`, `opentelemetry-shim-opentracing`, `opentelemetry-tracing`, `opentelemetry-web`
  * [#1515]( chore: use interface for context types ([@dyladan](
* `opentelemetry-exporter-zipkin`
  * [#1399]( chore: refactoring zipkin to be able to use it in web ([@obecny](
* `opentelemetry-exporter-collector-grpc`, `opentelemetry-exporter-collector-proto`, `opentelemetry-exporter-collector`, `opentelemetry-exporter-jaeger`, `opentelemetry-exporter-prometheus`, `opentelemetry-exporter-zipkin`, `opentelemetry-metrics`, `opentelemetry-plugin-fetch`, `opentelemetry-plugin-xml-http-request`, `opentelemetry-tracing`
  * [#1439]( unifying shutdown across code base ([@obecny](

### :bug: (Bug Fix)

* `opentelemetry-plugin-http`
  * [#1546]( fix(http): do not set outgoing http span as active in the context #1479 ([@vmarchaud](
* `opentelemetry-metrics`
  * [#1567]( fix: histogram aggregator lastUpdateTime ([@AndrewGrachov](
  * [#1470]( IMPORTANT - Fixing collecting data from observers when using batch observer in first run ([@obecny](
* `opentelemetry-plugin-http`, `opentelemetry-plugin-https`
  * [#1551]( fix: avoid circular require in plugins ([@dyladan](
* `opentelemetry-context-async-hooks`
  * [#1530]( fix: ignore TIMERWRAP in AsyncHooksContextManager ([@Flarna](
* `opentelemetry-exporter-collector-grpc`, `opentelemetry-exporter-collector-proto`
  * [#1539]( fix: include missing proto files in npm distribution ([@blumamir](

### :books: (Refine Doc)

* Other
  * [#1536]( chore: variable names cleanup ([@DarkPurple141](
* `opentelemetry-exporter-collector-proto`, `opentelemetry-exporter-collector`
  * [#1483]( docs: change CollectorExporter to CollectorTraceExporter ([@Hongbo-Miao](

### :sparkles: (Feature)

* `opentelemetry-resource-detector-aws`, `opentelemetry-resources`
  * [#1404]( Feat: Added AWS ECS Plugins Resource Detector ([@EdZou](
* `opentelemetry-exporter-zipkin`
  * [#1399]( chore: refactoring zipkin to be able to use it in web ([@obecny](

### Committers: 19

* Alex Hinds ([@DarkPurple141](
* Amir Blum ([@blumamir](
* Andrew ([@AndrewGrachov](
* Asaf Ben Aharon ([@Asafb26](
* Bartlomiej Obecny ([@obecny](
* Cong Zou ([@EdZou](
* Daniel Dyla ([@dyladan](
* Gerhard Stöbich ([@Flarna](
* Hongbo Miao ([@Hongbo-Miao](
* Igor Morozov ([@morigs](
* Justin Walz ([@justinwalz](
* Mark ([@MarkSeufert](
* Matthew Wear ([@mwear](
* Mihir Soni ([@mihirsoni](
* Naseem ([@naseemkullah](
* Severin Neumann ([@svrnm](
* Steve Flanders ([@flands](
* Valentin Marchaud ([@vmarchaud](
* legendecas ([@legendecas](


Version 0.11.0

Changes from 0.10.0:

### API

#### Breaking changes:

- The SPI interfaces have moved to a package (not a module) separate from the API packages, and now live in `io.opentelemetry.spi.*` package namespace.
- Builder classes have been moved to the top level, rather than being inner classes. 
For example, rather than `io.opentelemetry.api.trace.Span.Builder`, the builder is now in its own top-level class: `io.opentelemetry.api.trace.SpanBuilder`.
Methods to create the builders remain in the same place as they were before.
- SpanBuilder.setStartTimestamp, Span.end, and Span.addEvent methods which accept a timestamp now accept a timestamp with a TimeUnit instead of requiring a nanos timestamp
#### Enhancements:

- Versions of SpanBuilder.setStartTimestamp, Span.end, and Span.addEvent added which accept Instant timestamps
- Setting the value of the `io.opentelemetry.context.contextStorageProvider` System property to `default` will enforce that
the default (thread local) ContextStorage will be used for the Context implementation, regardless of what SPI implementations are

#### Miscellaneous:

- Invalid W3C `TraceState` entries will now be silently dropped, rather than causing the invalidation of the entire `TraceState`.

### SDK

#### Breaking Changes:

- The builder class for the `OpenTelemetrySdk` now strictly requires its components to be SDK implementations. 
You can only build an `OpenTelemetrySdk` with `TracerSdkProvider` and `MeterSdkProvider` instances.

#### Enhancements:

- An API has been added to the SDK's MeterProvider implementation (`MeterSdkProvider`) that allows the end-user to configure
how various metrics will be aggregated. This API should be considered a precursor to a full "Views" API, and will most likely
evolve over the coming months before the metrics implementation is complete. See the javadoc for `MeterSdkProvider.registerView()` for details.

#### Miscellaneous:

- The `SpanProcessor` interface now includes default method implementations for the `shutdown()` and `forceFlush()` methods.
- The BatchRecorder implementation has been updated to actually batch the recordings, rather than simply passing them through.

### Extensions

#### Breaking Changes:

- The `@WithSpan` annotation has been moved to the `io.opentelemetry.extension.annotations` package in the `opentelemetry-extension-annotations` module 

#### Bugfixes:

- The memory pool metrics provided by the MemoryPools class in the `opentelemetry-extension-runtime-metrics` module
have been fixed to properly report the committed memory values.
#### Enhancements:

- A new module has been added to assist with propagating the OTel context in kotlin co-routines. 
See the `opentelemetry-extension-kotlin` module for details. 


opentelemetry v0.16b1

# opentelemetry-sdk
* Add meter reference to observers to fix #1424


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.


opentelemetry-resource_detectors 0.10.0

### v0.10.0 / 2020-12-03

* (No significant changes)


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 


Release version 0.16.0

# v0.16.0 Beta

## 🛑 Breaking changes 🛑

- Rename Push functions to be consistent across signals in `exporterhelper` (#2203)

## 💡 Enhancements 💡

- Change default OTLP/gRPC port number to 4317, also continue receiving on legacy port
  55680 during transition period (#2104).
- `kafka` exporter: Add support for exporting metrics as otlp Protobuf. (#1966)
- Move scraper helpers to its own `scraperhelper` package (#2185)
- Add `componenthelper` package to help build components (#2186)
- Remove usage of custom init/stop in `scraper` and use start/shutdown from `component` (#2193)
- Add more trace annotations, so zpages are more useful to determine failures (#2206)
- Add support to skip TLS verification (#2202)
- Expose non-nullable metric types (#2208)
- Expose non-nullable elements from slices of pointers (#2200)

## 🧰 Bug fixes 🧰

- Change InstrumentationLibrary to be non-nullable (#2196)
- Add support for slices to non-pointers, use non-nullable AnyValue (#2192)
- Fix `--set` flag to work with `{}` in configs (#2162)