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.0-rc4 of all non-core components

**OpenTelemetry.Extensions.Hosting**

* Added `AddInstrumentation<T>`, `AddProcessor<T>`, `SetSampler<T>`, and
  `Configure` extensions to support dependency injection through the
  OpenTelemetry.Extensions.Hosting `TracerProviderBuilder`.
  ([#1889](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1889))

**OpenTelemetry.Instrumentation.AspNet**

* Sanitize `http.url` attribute. ([#1961](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1961))

**OpenTelemetry.Instrumentation.AspNetCore**

* When using OpenTelemetry.Extensions.Hosting you can now bind
  `AspNetCoreInstrumentationOptions` from DI.
  ([#1997](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1997))

**OpenTelemetry.Instrumentation.GrpcNetClient**

**OpenTelemetry.Instrumentation.Http**

* Sanitize `http.url` attribute.
  ([#1961](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1961))
* Added `RecordException` to HttpClientInstrumentationOptions and
  HttpWebRequestInstrumentationOptions which allows Exception to be reported as
  ActivityEvent.
* Update `AddHttpClientInstrumentation` extension method for .NET Framework to
  use only use `HttpWebRequestInstrumentationOptions`
  ([#1982](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1982))

**OpenTelemetry.Instrumentation.SqlClient**

* Instrumentation modified to depend only on the API.
* Activities are now created with the `db.system` attribute set for usage
  during sampling. ([#1979](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1979))

**OpenTelemetry.Instrumentation.StackExchangeRedis**

* Activities are now created with the `db.system` attribute set for usage
  during sampling. ([#1984](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1984))

Go

Release v0.20.0

### Added

- The OTLP exporter now has two new convenience functions, `NewExportPipeline` and `InstallNewPipeline`, setup and install the exporter in tracing and metrics pipelines. (#1373)
- Adds semantic conventions for exceptions. (#1492)
- Added Jaeger Environment variables: `OTEL_EXPORTER_JAEGER_AGENT_HOST`, `OTEL_EXPORTER_JAEGER_AGENT_PORT`
  These environment variables can be used to override Jaeger agent hostname and port (#1752)
- Option `ExportTimeout` was added to batch span processor. (#1755)
- `trace.TraceFlags` is now a defined type over `byte` and `WithSampled(bool) TraceFlags` and `IsSampled() bool` methods have been added to it. (#1770)
- The `Event` and `Link` struct types from the `go.opentelemetry.io/otel` package now include a `DroppedAttributeCount` field to record the number of attributes that were not recorded due to configured limits being reached. (#1771)
- The Jaeger exporter now reports dropped attributes for a Span event in the exported log. (#1771)
- Adds test to check BatchSpanProcessor ignores `OnEnd` and `ForceFlush` post `Shutdown`. (#1772)
- Extract resource attributes from the `OTEL_RESOURCE_ATTRIBUTES` environment variable and merge them with the `resource.Default` resource as well as resources provided to the `TracerProvider` and metric `Controller`. (#1785)
- Added `WithOSType` resource configuration option to set OS (Operating System) type resource attribute (`os.type`). (#1788)
- Added `WithProcess*` resource configuration options to set Process resource attributes. (#1788)
  - `process.pid`
  - `process.executable.name`
  - `process.executable.path`
  - `process.command_args`
  - `process.owner`
  - `process.runtime.name`
  - `process.runtime.version`
  - `process.runtime.description`
- Adds `k8s.node.name` and `k8s.node.uid` attribute keys to the `semconv` package. (#1789)
- Added support for configuring OTLP/HTTP and OTLP/gRPC Endpoints, TLS Certificates, Headers, Compression and Timeout via Environment Variables. (#1758, #1769 and #1811)
  - `OTEL_EXPORTER_OTLP_ENDPOINT`
  - `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`
  - `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`
  - `OTEL_EXPORTER_OTLP_HEADERS`
  - `OTEL_EXPORTER_OTLP_TRACES_HEADERS`
  - `OTEL_EXPORTER_OTLP_METRICS_HEADERS`
  - `OTEL_EXPORTER_OTLP_COMPRESSION`
  - `OTEL_EXPORTER_OTLP_TRACES_COMPRESSION`
  - `OTEL_EXPORTER_OTLP_METRICS_COMPRESSION`
  - `OTEL_EXPORTER_OTLP_TIMEOUT`
  - `OTEL_EXPORTER_OTLP_TRACES_TIMEOUT`
  - `OTEL_EXPORTER_OTLP_METRICS_TIMEOUT`
  - `OTEL_EXPORTER_OTLP_CERTIFICATE`
  - `OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE`
  - `OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE`
- Adds `otlpgrpc.WithTimeout` option for configuring timeout to the otlp/gRPC exporter. (#1821)

### Fixed

- The `Span.IsRecording` implementation from `go.opentelemetry.io/otel/sdk/trace` always returns false when not being sampled. (#1750)
- The Jaeger exporter now correctly sets tags for the Span status code and message.
  This means it uses the correct tag keys (`"otel.status_code"`, `"otel.status_description"`) and does not set the status message as a tag unless it is set on the span. (#1761)
- The Jaeger exporter now correctly records Span event's names using the `"event"` key for a tag.
  Additionally, this tag is overridden, as specified in the OTel specification, if the event contains an attribute with that key. (#1768)
- Zipkin Exporter: Ensure mapping between OTel and Zipkin span data complies with the specification. (#1688)
- Fixed typo for default service name in Jaeger Exporter. (#1797)
- Fix flaky OTLP for the reconnnection of the client connection. (#1527, #1814)

### Changed

- Span `RecordError` now records an `exception` event to comply with the semantic convention specification. (#1492)
- Jaeger exporter was updated to use thrift v0.14.1. (#1712)
- Migrate from using internally built and maintained version of the OTLP to the one hosted at `go.opentelemetry.io/proto/otlp`. (#1713)
- Migrate from using `github.com/gogo/protobuf` to `google.golang.org/protobuf` to match `go.opentelemetry.io/proto/otlp`. (#1713)
- The storage of a local or remote Span in a `context.Context` using its SpanContext is unified to store just the current Span.
  The Span's SpanContext can now self-identify as being remote or not.
  This means that `"go.opentelemetry.io/otel/trace".ContextWithRemoteSpanContext` will now overwrite any existing current Span, not just existing remote Spans, and make it the current Span in a `context.Context`. (#1731)
- Improve OTLP/gRPC exporter connection errors. (#1737)
- Information about a parent span context in a `"go.opentelemetry.io/otel/export/trace".SpanSnapshot` is unified in a new `Parent` field.
  The existing `ParentSpanID` and `HasRemoteParent` fields are removed in favor of this. (#1748)
- The `ParentContext` field of the `"go.opentelemetry.io/otel/sdk/trace".SamplingParameters` is updated to hold a `context.Context` containing the parent span.
  This changes it to make `SamplingParameters` conform with the OpenTelemetry specification. (#1749)
- Updated Jaeger Environment Variables: `JAEGER_ENDPOINT`, `JAEGER_USER`, `JAEGER_PASSWORD`
  to `OTEL_EXPORTER_JAEGER_ENDPOINT`, `OTEL_EXPORTER_JAEGER_USER`, `OTEL_EXPORTER_JAEGER_PASSWORD` 
  in compliance with OTel spec (#1752)
- Modify `BatchSpanProcessor.ForceFlush` to abort after timeout/cancellation. (#1757)
- The `DroppedAttributeCount` field of the `Span` in the `go.opentelemetry.io/otel` package now only represents the number of attributes dropped for the span itself.
  It no longer is a conglomerate of itself, events, and link attributes that have been dropped. (#1771)
- Make `ExportSpans` in Jaeger Exporter honor context deadline. (#1773)
- Modify Zipkin Exporter default service name, use default resouce's serviceName instead of empty. (#1777)
- The `go.opentelemetry.io/otel/sdk/export/trace` package is merged into the `go.opentelemetry.io/otel/sdk/trace` package. (#1778)
- The prometheus.InstallNewPipeline example is moved from comment to example test (#1796)
- The convenience functions for the stdout exporter have been updated to return the `TracerProvider` implementation and enable the shutdown of the exporter. (#1800)
- Replace the flush function returned from the Jaeger exporter's convenience creation functions (`InstallNewPipeline` and `NewExportPipeline`) with the `TracerProvider` implementation they create.
  This enables the caller to shutdown and flush using the related `TracerProvider` methods. (#1822)
- Updated the Jaeger exporter to have a default enpoint, `http://localhost:14250`, for the collector. (#1824)
- Changed the function `WithCollectorEndpoint` in the Jaeger exporter to no longer accept an endpoint as an argument.
  The endpoint can be passed with the `CollectorEndpointOption` using the `WithEndpoint` function or by setting the `OTEL_EXPORTER_JAEGER_ENDPOINT` environment variable value appropriately. (#1824)
- The Jaeger exporter no longer batches exported spans itself, instead it relies on the SDK's `BatchSpanProcessor` for this functionality. (#1830)
- The Jaeger exporter creation functions (`NewRawExporter`, `NewExportPipeline`, and `InstallNewPipeline`) no longer accept the removed `Option` type as a variadic argument. (#1830)

### Removed

- Removed Jaeger Environment variables: `JAEGER_SERVICE_NAME`, `JAEGER_DISABLED`, `JAEGER_TAGS`
  These environment variables will no longer be used to override values of the Jaeger exporter (#1752)
- No longer set the links for a `Span` in `go.opentelemetry.io/otel/sdk/trace` that is configured to be a new root.
  This is unspecified behavior that the OpenTelemetry community plans to standardize in the future.
  To prevent backwards incompatible changes when it is specified, these links are removed. (#1726)
- Setting error status while recording error with Span from oteltest package. (#1729)
- The concept of a remote and local Span stored in a context is unified to just the current Span.
  Because of this `"go.opentelemetry.io/otel/trace".RemoteSpanContextFromContext` is removed as it is no longer needed.
  Instead, `"go.opentelemetry.io/otel/trace".SpanContextFromContex` can be used to return the current Span.
  If needed, that Span's `SpanContext.IsRemote()` can then be used to determine if it is remote or not. (#1731)
- The `HasRemoteParent` field of the `"go.opentelemetry.io/otel/sdk/trace".SamplingParameters` is removed.
  This field is redundant to the information returned from the `Remote` method of the `SpanContext` held in the `ParentContext` field. (#1749)
- The `trace.FlagsDebug` and `trace.FlagsDeferred` constants have been removed and will be localized to the B3 propagator. (#1770)
- Remove `Process` configuration, `WithProcessFromEnv` and `ProcessFromEnv`, and type from the Jaeger exporter package.
  The information that could be configured in the `Process` struct should be configured in a `Resource` instead. (#1776, #1804)
- Remove the `WithDisabled` option from the Jaeger exporter.
  To disable the exporter unregister it from the `TracerProvider` or use a no-operation `TracerProvider`. (#1806)
- Removed the functions `CollectorEndpointFromEnv` and `WithCollectorEndpointOptionFromEnv` from the Jaeger exporter.
  These functions for retrieving specific environment variable values are redundant of other internal functions and
  are not intended for end user use. (#1824)
- Removed the Jaeger exporter `WithSDKOptions` `Option`.
  This option was used to set SDK options for the exporter creation convenience functions.
  These functions are provided as a way to easily setup or install the exporter with what are deemed reasonable SDK settings for common use cases.
  If the SDK needs to be configured differently, the `NewRawExporter` function and direct setup of the SDK with the desired settings should be used. (#1825)
- The `WithBufferMaxCount` and `WithBatchMaxCount` `Option`s from the Jaeger exporter are removed.
  The exporter no longer batches exports, instead relying on the SDK's `BatchSpanProcessor` for this functionality. (#1830)
- The Jaeger exporter `Option` type is removed.
  The type is no longer used by the exporter to configure anything.
  All of the previous configuration these options provided were duplicates of SDK configuration.
  They have all been removed in favor of using the SDK configuration and focuses the exporter configuration to be only about the endpoints it will send telemetry to. (#1830)

---

Raw changes made between v0.19.0 and v0.20.0

02d8bdd5d9163f32c48f4db23bf2e589f89f16c0 (HEAD -> main, tag: v0.20.0, tag: trace/v0.20.0, tag: sdk/v0.20.0, tag: sdk/metric/v0.20.0, tag: sdk/export/metric/v0.20.0, tag: oteltest/v0.20.0, tag: metric/v0.20.0, tag: exporters/trace/zipkin/v0.20.0, tag: exporters/trace/jaeger/v0.20.0, tag: exporters/stdout/v0.20.0, tag: exporters/otlp/v0.20.0, tag: exporters/metric/prometheus/v0.20.0, tag: example/zipkin/v0.20.0, tag: example/prometheus/v0.20.0, tag: example/prom-collector/v0.20.0, tag: example/otel-collector/v0.20.0, tag: example/opencensus/v0.20.0, tag: example/namedtracer/v0.20.0, tag: example/jaeger/v0.20.0, tag: bridge/opentracing/v0.20.0, tag: bridge/opencensus/v0.20.0, upstream/main, origin/main) Release v0.20.0 (#1837)
aa66fe75e481c573676e4031bd4f31970e2ce450 OS and Process resource detectors (#1788)
7374d67961bc71103a3d60390d8eb6822cf03c1f Fix Links documents (#1835)
856f5b84014d4ae5e74e772e8f396fd1cbd31167 Add feature request issue template (#1831)
0fdc3d78a2cb9e125da7eae31afac7e8ca524e38 Remove bundler from Jaeger exporter (#1830)
738ef11e3108955b1a2619fd32b39869f2625919 Fix flaky global ErrorHandler delegation test (#1829)
e43d9c00bcdf4fcd11d66bb1b16afac60dc0240b  Update Default Value for Jaeger Exporter Endpoint  (#1824)
0032bd6499c650801eb69fcb020e4177c80116b9 Fix default merging of resource attributes from environment variable (#1785)
96c5e4baacd0fe49020c557e597bfdda6db03d98 Add SpanProcessor example for Span annotation on start (#1733)
543c8144b9c7d4b5bc0dc57328a3bfe383f6d995 Remove the WithSDKOptions from the Jaeger exporter (#1825)
66389ad617a91a16a099e47fcaa74057f30f363d Update function docs in sdk.go (#1826)
70bc9eb391965ba22e4d9f938dc300f7e9fbc128 Adds support for timeout on the otlp/gRPC exporter (#1821)
081cc61d989e2201b0bfd9de314176839976ccad Update Jaeger exporter convenience functions (#1822)
1b9f16d3afdc5fc477f57c47b7578dea578c6e4b Remove the WithDisabled option from Jaeger exporter (#1806)
6867faa0969634c8cee953fa87a3248c6f932f1d Bump actions/cache from v2.1.4 to v2.1.5 (#1818)
a2bf04dc367dbd2828423e629975935377ea7a65 Build context pipeline in Jaeger upload process (#1809)
2de86f23c3f93ac3b6eb9e448edd3a30842d331c Remove locking from Jaeger exporter shutdown/export (#1807)
4f9fec29da01e3d9963922ed0c0368efd0ca0d31 Add ExportSpans benchmark to Jaeger exporter (#1805)
d9566abea935609972a44f0075cdc51f7c270b9b Fix OTLP testing flake: signal connection from mock collector (#1816)
a2cecb6e80f6a0712187b080a97f8efb5a61082a add support for env var configuration to otlp/gRPC (#1811)
d616df61f5d163589228c5ff3be4aa5415f5a884 (fix-1527) Fix flaky OTLP exporter reconnect test (#1814)
b09df84a24b35cb5f287a501e31d9dec324be5a9 Changes stdout to expose the `*sdktrace.TracerProvider` (#1800)
04890608968c599b8b9626c5490374a05f64df35 Remove options field from Jaeger exporter (#1808)
6db20e008dc272efaa29bb87d5d8341ad7c06da0 Remove the abandoned Process struct in Jaeger exporter (#1804)
086abf342d8bb60c6fa2dfb68c4bf49a03c31cd2 docs: use test example to document prometheus.InstallNewPipeline (#1796)
d0cea04b352a8e0ff0df3acd505c14ceae22d219 Bump google.golang.org/api from 0.43.0 to 0.44.0 in /exporters/trace/jaeger (#1792)
99c477feb834abb5121c978eb798e7dd3d36538e Fixed typo for default service name in Jaeger Exporter (#1797)
95fd8f50925ffa8992f0fc8a9f31d7b14705ef8f Bump google.golang.org/grpc from 1.36.1 to 1.37.0 in /exporters/otlp (#1791)
9b25164481857e6bf7c39eb41be4ef124d69606d Zipkin Exporter: Use default resouce's serviceName as default serivce name (#1777) (#1786)
4d141e475297f177340019314e345e8b5276e2a8 Add k8s.node.name and k8s.node.uid to semconv (#1789)
5c99a34cd837d289dea7a230e8ab3d418a76cda7 Fix golint issue caused by incorrect comment (#1795)
c5d006c07ab78e6b21690e86c859e5f6752d0086 Update Jaeger environment variables (#1752)
584328080a31963debf9e41e003937d6494934d3 add NewExportPipeline and InstallNewPipeline for otlp (#1373)
7d8e6bd781123cb6df6b035947df3c4558fe3fc3 Zipkin Exporter: Adjust span transformation to comply with the spec (#1688)
2817c09174dcc4772572bfa02daf0c52dd50a8d4 (ro-span) Merge sdk/export/trace into sdk/trace (#1778)
c61e654cd492385ed602a4f5b9b37e1b890c74a7 Refactor prometheus exporter tests to match file headers as well (#1470)
23422c56df5578ae4f70f8bd5c0225dbad6be388 Remove process config for Jaeger exporter (#1776)
0d49b592ecafda5ba38b53c2d035d7072cb26e92 Add test to check bsp ignores `OnEnd` and `ForceFlush` post Shutdown (#1772)
e9aaa04b8f88b0f8158bd27f72e57d33878f5bdd Record links/events attribute drops independently (#1771)
5bbfc22cbc5bdcb65eb5c354c264b33f9faa9d76 Make ExportSpans for Jaeger Exporter honor deadline (#1773)
0786fe3250ab13745ae3d7bb0a448ba0b8de0a2c (default-res) Add Bug report issue templates (#1775)
3c7facee73444f8deef39ba20afb99e13e2e2e75 Add `ExportTimeout` option to batch span processor (#1755)
c6b92d5b20a1f4d6d2ed15f6f9d1d12b0b145fed Make TraceFlags spec-compliant (#1770)
ee687ca5c850ca66ff30f2e30f8c401b17c5ddc9 Bump github.com/itchyny/gojq from 0.12.2 to 0.12.3 in /internal/tools (#1774)
52a24774daf69ca391bec9bf16f10d34d5e47bde add support for configuring tls certs via env var to otlp/HTTP (#1769)
35cfbc7e872bbaddadcd51bd0462d8ebf682a6e0 Update precedence of event name in Jaeger exporter (#1768)
33699d242d3b0823345488d8cfd5188781dfda5e Adds semantic conventions for exceptions (#1492)
928e3c38e6795e5fb40d1175ff18b8c7ad61f202 Modify ForceFlush to abort after timeout/cancellation (#1757)
3947cab4be663dbd14c7d78cadad0672262b715f Fix testCollectorEndpoint typo and add tag assertions in jaeger_test (#1753)
ecc635dc1d76a53978d3655987e47fcb6096f4b3 add website docs (#1747)
07a8d195e21336a1f6e691d2c322c5c87e88567c Fix Jaeger span status reporting and unify tag keys (#1761)
4fa35c90921c2733a67ac58b9866f6de54f74caa add partial support for env var config to otlp/HTTP (#1758)
bf180d0fd21fe95662781ecd9a0e835a08de8f0f improve OTLP/gRPC connection errors (#1737)
d575865b1e1f5917c2d90360d94d81cec77ab0fc Fix span IsRecording when not sampling (#1750)
20c93b01ebe6ab0cb68c43eb1d2f10233db96f8b Update SamplingParameters (#1749)
97501a3fee7647a3a14b6d4429d814ffb17c2a67 Update SpanSnapshot to use parent SpanContext (#1748)
604b05cbcf5796c85794272456448c1d0d081547 Store current Span instead of local and remote SpanContext in context.Context (#1731)
c61f4b6dfc0387726ab8f6192d62f5d1faa63026 Set @lizthegrey to emeritus status (#1745)
b1342fec1ff5139191b568a32478ef45a06cf387 Bump github.com/golangci/golangci-lint in /internal/tools (#1743)
54e1bd19a0e2b817213fa89cddf5ca2cbe29758c Bump google.golang.org/api from 0.41.0 to 0.43.0 in /exporters/trace/jaeger (#1741)
4d25b6a27054c8f44ae02df55cea5f7834d720d0 Bump github.com/prometheus/client_golang from 1.9.0 to 1.10.0 in /exporters/metric/prometheus (#1740)
0a47b66f95bc50316b7ca7b8009c5f38aaf853df Bump google.golang.org/grpc from 1.36.0 to 1.36.1 in /exporters/otlp (#1739)
26f006b806158548c01347f93f044f3e6d715a02 Reinstate @paivagustavo as an Approver (#1734)
382c7ced31a4a07b40f8f115834cab19935759ea Remove hasRemoteParent field from SDK span (#1728)
862a5a68a8a0186b12abc6c2ca42941ee15441b7 Remove setting error status while recording error with Span from oteltest package (#1729)
6defcfdf457ac642bc01c77e91aa8079de3b6682 Remove links on NewRoot spans (#1726)
a9b2f85134dc918ff44969ff0b05fe3c5ac1a1f2 upgrade thrift to v0.14.1 in jaeger exporter (#1712)
5a6a854d50840470dbfa5d9e400eed27be7d957f Bump google.golang.org/protobuf from 1.25.0 to 1.26.0 in /exporters/otlp (#1724)
234862136de0b172d86eb001ca195163e61b141b Migrate to using go.opentelemetry.io/proto/otlp (#1713)
5d559b4007efd6214cdce1c5503837828be8e36a Remove makeSamplingDecision func (#1711)
e24702daad7022ef7606f301859c2dfe3d71e1fa Update the TraceContext.Extract docs (#1720)
9d4eb1f6d39cf644ad2ff92064c4ff1793fac296 Update dates in CHANGELOG.md for 2021 releases (#1723)

JavaScript

v0.19.0

### :boom: Breaking Change

* `opentelemetry-core`, `opentelemetry-tracing`
  * [#2111](https://github.com/open-telemetry/opentelemetry-js/pull/2111) feat: handle OTEL_TRACES_SAMPLER env var ([@jtmalinowski](https://github.com/jtmalinowski))
  * [#2098](https://github.com/open-telemetry/opentelemetry-js/pull/2098) chore(env): update default value for span's attributes/links/events count #1675 ([@vmarchaud](https://github.com/vmarchaud))
* `opentelemetry-instrumentation-fetch`, `opentelemetry-instrumentation-grpc`, `opentelemetry-instrumentation-http`, `opentelemetry-instrumentation-xml-http-request`, `opentelemetry-semantic-conventions`, `opentelemetry-tracing`, `opentelemetry-web`
  * [#2083](https://github.com/open-telemetry/opentelemetry-js/pull/2083) feat: add semconv generator for `semantic-conventions`-package ([@weyert](https://github.com/weyert))
* `opentelemetry-core`, `opentelemetry-grpc-utils`, `opentelemetry-instrumentation-fetch`, `opentelemetry-instrumentation-grpc`, `opentelemetry-instrumentation-http`, `opentelemetry-instrumentation-xml-http-request`, `opentelemetry-instrumentation`, `opentelemetry-node`, `opentelemetry-plugin-grpc-js`, `opentelemetry-plugin-grpc`, `opentelemetry-plugin-http`, `opentelemetry-plugin-https`, `opentelemetry-sdk-node`, `opentelemetry-web`
  * [#2081](https://github.com/open-telemetry/opentelemetry-js/pull/2081) remove plugins ([@obecny](https://github.com/obecny))
* `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-propagator-jaeger`, `opentelemetry-resource-detector-aws`, `opentelemetry-resource-detector-gcp`, `opentelemetry-resources`, `opentelemetry-sdk-node`, `opentelemetry-shim-opentracing`, `opentelemetry-tracing`, `opentelemetry-web`
  * [#2074](https://github.com/open-telemetry/opentelemetry-js/pull/2074) chore: peer depend on API ([@dyladan](https://github.com/dyladan))
  * [#2063](https://github.com/open-telemetry/opentelemetry-js/pull/2063) chore: update API dependency to 1.0.0-rc.0 ([@dyladan](https://github.com/dyladan))
* `opentelemetry-core`, `opentelemetry-propagator-b3`
  * [#2054](https://github.com/open-telemetry/opentelemetry-js/pull/2054) refactor: simplify b3 options ([@mwear](https://github.com/mwear))

### :rocket: (Enhancement)

* `opentelemetry-instrumentation`
  * [#2135](https://github.com/open-telemetry/opentelemetry-js/pull/2135) fix: add isEnabled to InstrumentationBase ([@seemk](https://github.com/seemk))
* `opentelemetry-semantic-conventions`
  * [#2115](https://github.com/open-telemetry/opentelemetry-js/pull/2115) feat: upgrade semantic conventions to v1.2.0 of spec ([@weyert](https://github.com/weyert))
* `opentelemetry-core`, `opentelemetry-exporter-zipkin`
  * [#2097](https://github.com/open-telemetry/opentelemetry-js/pull/2097) feat(zipkin): allow to configure url via environment #1675 ([@vmarchaud](https://github.com/vmarchaud))
* `opentelemetry-exporter-zipkin`
  * [#2050](https://github.com/open-telemetry/opentelemetry-js/pull/2050) chore: adding interceptor for getting headers before each request ([@obecny](https://github.com/obecny))
* `opentelemetry-exporter-collector-grpc`
  * [#2092](https://github.com/open-telemetry/opentelemetry-js/pull/2092) Migrate exporter-collector-grpc to grpc-js ([@obecny](https://github.com/obecny))
* `opentelemetry-instrumentation-http`
  * [#2043](https://github.com/open-telemetry/opentelemetry-js/pull/2043) chore: avoid unneeded context.with in http instrumentation ([@Flarna](https://github.com/Flarna))
* `opentelemetry-instrumentation-fetch`, `opentelemetry-instrumentation-xml-http-request`
  * [#2061](https://github.com/open-telemetry/opentelemetry-js/pull/2061) chore: adding info to debug whenever headers are being skipped due to cors policy ([@obecny](https://github.com/obecny))

### :bug: (Bug Fix)

* `opentelemetry-exporter-prometheus`
  * [#2121](https://github.com/open-telemetry/opentelemetry-js/pull/2121) fix: ensure the label names are sanitised ([@weyert](https://github.com/weyert))
* `opentelemetry-instrumentation`
  * [#2120](https://github.com/open-telemetry/opentelemetry-js/pull/2120) fix(instrumentation): support multiple module definitions with different versions ([@seemk](https://github.com/seemk))
* `opentelemetry-instrumentation-http`, `opentelemetry-tracing`
  * [#2105](https://github.com/open-telemetry/opentelemetry-js/pull/2105) fix: don't use spanId from invalid parent ([@Flarna](https://github.com/Flarna))
* `opentelemetry-context-async-hooks`
  * [#2088](https://github.com/open-telemetry/opentelemetry-js/pull/2088) fix: correct removeAllListeners in case no event is passed ([@Flarna](https://github.com/Flarna))
* `opentelemetry-resource-detector-aws`
  * [#2076](https://github.com/open-telemetry/opentelemetry-js/pull/2076) fix: await http response in AWS EKS detector ([@vreynolds](https://github.com/vreynolds))
* `opentelemetry-core`, `opentelemetry-propagator-b3`, `opentelemetry-propagator-jaeger`
  * [#2082](https://github.com/open-telemetry/opentelemetry-js/pull/2082) chore: do not inject span context when instrumentation is suppressed ([@dyladan](https://github.com/dyladan))
* `opentelemetry-core`
  * [#2080](https://github.com/open-telemetry/opentelemetry-js/pull/2080) fix: do not inject invalid span context ([@dyladan](https://github.com/dyladan))
* `opentelemetry-tracing`
  * [#2086](https://github.com/open-telemetry/opentelemetry-js/pull/2086) fix: exception.type should always be a string ([@YanivD](https://github.com/YanivD))
* `opentelemetry-propagator-jaeger`
  * [#1986](https://github.com/open-telemetry/opentelemetry-js/pull/1986) fix(propagator-jaeger): zero pad extracted trace id to 32 characters ([@sid-maddy](https://github.com/sid-maddy))

### :books: (Refine Doc)

* [#2094](https://github.com/open-telemetry/opentelemetry-js/pull/2094) chore: fixing readme info ([@obecny](https://github.com/obecny))
* [#2051](https://github.com/open-telemetry/opentelemetry-js/pull/2051) Add opentelemetry.io docs ([@austinlparker](https://github.com/austinlparker))

### :house: (Internal)

* `opentelemetry-exporter-collector-grpc`, `opentelemetry-metrics`, `opentelemetry-tracing`
  * [#1780](https://github.com/open-telemetry/opentelemetry-js/pull/1780) chore: no-floating-promises ([@naseemkullah](https://github.com/naseemkullah))
* `opentelemetry-context-zone`, `opentelemetry-core`, `opentelemetry-exporter-collector-grpc`, `opentelemetry-exporter-collector-proto`, `opentelemetry-exporter-collector`, `opentelemetry-exporter-jaeger`, `opentelemetry-exporter-prometheus`, `opentelemetry-exporter-zipkin`, `opentelemetry-instrumentation-fetch`, `opentelemetry-instrumentation-grpc`, `opentelemetry-instrumentation-http`, `opentelemetry-instrumentation-xml-http-request`, `opentelemetry-instrumentation`, `opentelemetry-metrics`, `opentelemetry-node`, `opentelemetry-propagator-jaeger`, `opentelemetry-resource-detector-aws`, `opentelemetry-resource-detector-gcp`, `opentelemetry-resources`, `opentelemetry-sdk-node`, `opentelemetry-shim-opentracing`, `opentelemetry-tracing`, `opentelemetry-web`
  * [#2073](https://github.com/open-telemetry/opentelemetry-js/pull/2073) chore: pin own deps ([@dyladan](https://github.com/dyladan))

### Committers: 15

* Anuraag Agrawal ([@anuraaga](https://github.com/anuraaga))
* Austin Parker ([@austinlparker](https://github.com/austinlparker))
* Bartlomiej Obecny ([@obecny](https://github.com/obecny))
* Daniel Dyla ([@dyladan](https://github.com/dyladan))
* Gerhard Stöbich ([@Flarna](https://github.com/Flarna))
* Jakub Malinowski ([@jtmalinowski](https://github.com/jtmalinowski))
* Matthew Wear ([@mwear](https://github.com/mwear))
* Naseem ([@naseemkullah](https://github.com/naseemkullah))
* Niek Kruse ([@niekert](https://github.com/niekert))
* Siddhesh Mhadnak ([@sid-maddy](https://github.com/sid-maddy))
* Siim Kallas ([@seemk](https://github.com/seemk))
* Valentin Marchaud ([@vmarchaud](https://github.com/vmarchaud))
* Vera Reynolds ([@vreynolds](https://github.com/vreynolds))
* Weyert de Boer ([@weyert](https://github.com/weyert))
* Yaniv Davidi ([@YanivD](https://github.com/YanivD))

Java

Version 1.1.0

### API

#### Bugfixes

- We now use our own internal `@GuardedBy` annotation for errorprone so there won't be an accidental 
transitive dependency on a 3rd-party jar.
- The `TraceStateBuilder` now will not crash when an empty value is provided.
  
#### Enhancements

- The `Context` class now provides methods to wrap `java.util.concurrent.Executor` and `java.util.concurrent.ExecutorService` 
instances to do context propagation using the current context. See `io.opentelemetry.context.Context.taskWrapping(...)` for
more details.
  
### OpenTracing Shim (alpha)

- The shim now supports methods that take a timestamp as a parameter. 
- You can now specify both the `TEXT_MAP` and the `HTTP_HEADER` type propagators for the shim. 
See `io.opentelemetry.opentracingshim.OpenTracingPropagators` for details.

### Extensions

- The AWS X-Ray propagator is now able to extract 64-bit trace ids.

### SDK

#### Bugfixes

- The `CompletableResultCode.join(long timeout, TimeUnit unit)` method will no longer `fail` the result
when the timeout happens. Nor will `whenComplete` actions be executed in that case.
- The `SimpleSpanProcessor` now keeps track of pending export calls and will wait for them to complete
via a CompletableResultCode when `forceFlush()` is called. Similiarly, this is also done on `shutdown()`.
- The Jaeger Thrift exporter now correctly populates the parent span id into the exporter span.

#### Enhancements

- The SpanBuilder provided by the SDK will now ignore `Link` entries that are reference an invalid SpanContext. 
This is an update from the OpenTelemetry Specification v1.1.0 release.
- The OTLP Exporters will now log more helpful messages when the collector is unavailable or misconfigured.
- The internals of the `BatchSpanProcessor` have had some optimization done on them, to reduce CPU
usage under load.
- The `Resource` class now has `builder()` and `toBuilder()` methods and a corresponding `ResourceBuilder` class
has been introduced for more fluent creation and modification of `Resource` instances.
- The standard exporters will now throttle error logging when export errors are too frequent. If more than 5
error messages are logged in a single minute by an exporter, logging will be throttled down to only a single
log message per minute.

### SDK Extensions

#### Bugfixes

- Removed a stacktrace on startup when using the `autoconfigure` module without a metrics SDK on the classpath.

#### Enhancements

- The `autoconfigure` module now supports `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` and `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`
settings, in addition to the combined `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable. Corresponding 
system properties are also supported (`-Dotel.exporter.otlp.metrics.endpoint` and `-Dotel.exporter.otlp.traces.endpoint`).
- An `SdkMeterProviderConfigurer` SPI is now available in the `autoconfigure` module. 

### Semantic Conventions (alpha)

- The SemanticAttributes and ResourceAttributes have both been updated to match the OpenTelemetry Specification v1.1.0 release.
This includes a breaking changes to the constants defined in the `ResourceAttributes` class:
`ResourceAttributes.CLOUD_ZONE` has been replaced with `ResourceAttributes.CLOUD_AVAILABILITY_ZONE`.
  
### Metrics (alpha)

#### Breaking Changes

- The `ViewRegistry` now lets you register `View` objects, rather than `AggregatorFactory` instances.
- `GlobalMetricsProvider` has been renamed to `GlobalMeterProvider`.
- `View` registration has been moved to the `SdkMeterProviderBuilder` and the methods on the `SdkMeterProvider`
to add views have been deprecated. They will be removed in the next release.

#### Enhancements

- A new option for aggregation as Histograms is now available. 

### Many thanks to all the people who contributed to this release:
@anuraaga @jkwatson @jack-berg @Oberon00 @beanliu @malafeev @sbandadd @breedx-splk @as-polyakov @kubawach @austinlparker @harshita19244 @mateuszrzeszutek @piotr-sumo @topher1120 

Python

opentelemetry v1.1.0 & v0.20b0

## [1.1.0](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.1.0) - 2021-04-20

### Added
- Added `py.typed` file to every package. This should resolve a bunch of mypy
  errors for users. ([#1720](https://github.com/open-telemetry/opentelemetry-python/pull/1720))
- Add auto generated trace and resource attributes semantic conventions ([#1759](https://github.com/open-telemetry/opentelemetry-python/pull/1759))
- Added `SpanKind` to `should_sample` parameters, suggest using parent span context's tracestate
  instead of manually passed in tracestate in `should_sample` ([#1764](https://github.com/open-telemetry/opentelemetry-python/pull/1764))
- Added experimental HTTP back propagators. ([#1762](https://github.com/open-telemetry/opentelemetry-python/pull/1762))

### Changed
- Adjust `B3Format` propagator to be spec compliant by not modifying context
  when propagation headers are not present/invalid/empty ([#1728](https://github.com/open-telemetry/opentelemetry-python/pull/1728))
- Silence unnecessary warning when creating a new Status object without description. ([#1721](https://github.com/open-telemetry/opentelemetry-python/pull/1721))
- Update bootstrap cmd to use exact version when installing instrumentation packages.  ([#1722](https://github.com/open-telemetry/opentelemetry-python/pull/1722))
- Fix B3 propagator to never return None. ([#1750](https://github.com/open-telemetry/opentelemetry-python/pull/1750))
- Added ProxyTracerProvider and ProxyTracer implementations to allow fetching provider
  and tracer instances before a global provider is set up. ([#1726](https://github.com/open-telemetry/opentelemetry-python/pull/1726))
- Added `__contains__` to `opentelementry.trace.span.TraceState`. ([#1773](https://github.com/open-telemetry/opentelemetry-python/pull/1773))
- `opentelemetry-opentracing-shim` Fix an issue in the shim where a Span was being wrapped
  in a NonRecordingSpan when it wasn't necessary. ([#1776](https://github.com/open-telemetry/opentelemetry-python/pull/1776))
- OTLP Exporter now uses the scheme in the endpoint to determine whether to establish
  a secure connection or not. ([#1771](https://github.com/open-telemetry/opentelemetry-python/pull/1771))

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-instrumentation-pg 0.17.1

### v0.17.1 / 2021-04-23

* Initial release.
* ADDED: Initial postgresql instrumentation

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.26.0

# v0.26.0 Beta

## 🛑 Breaking changes 🛑

- Change `With*Unmarshallers` signatures in Kafka exporter/receiver (#2973)
- Rename `marshall` to `marshal` in all the occurrences (#2977)
- Remove `componenterror.ErrAlreadyStarted` and `componenterror.ErrAlreadyStopped`, components should not protect against this, Service will start/stop once.
- Rename `ApplicationStartInfo` to `BuildInfo`
- Rename `ApplicationStartInfo.ExeName` to `BuildInfo.Command`
- Rename `ApplicationStartInfo.LongName` to `BuildInfo.Description`

## 💡 Enhancements 💡

- `kafka` exporter: Add logs support (#2943)
- Add AppendEmpty and deprecate Append for slices (#2970)
- Update mdatagen to create factories of init instead of new (#2978)
- `zipkin` receiver: Reduce the judgment of zipkin v1 version (#2990)
- Custom authenticator logic to accept a `component.Host` which will extract the authenticator to use based on a new authenticator name property (#2767)
- `prometheusremotewrite` exporter: Add `resource_to_telemetry_conversion` config option (#3031)
- `logging` exporter: Extract OTLP text logging (#3082)
- Format timestamps as strings instead of int in otlptext output (#3088)
- Add darwin arm64 build (#3090)

## 🧰 Bug fixes 🧰

- Fix Jaeger receiver to honor TLS Settings (#2866)
- `zipkin` translator: Handle missing starttime case for zipkin json v2 format spans (#2506)
- `prometheus` exporter: Fix OTEL resource label drops (#2899)
- `prometheusremotewrite` exporter:
  - Enable the queue internally (#2974)
  - Don't drop instance and job labels (#2979)
- `jaeger` receiver: Wait for server goroutines exit on shutdown (#2985)
- `logging` exporter: Ignore invalid handle on close (#2994)
- Fix service zpages (#2996)
- `batch` processor: Fix to avoid reordering and send max size (#3029)