gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

CHANGELOG.md (174434B)


      1 # Changelog
      2 
      3 All notable changes to this project will be documented in this file.
      4 
      5 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
      6 
      7 This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
      8 
      9 ## [Unreleased]
     10 
     11 ## [1.16.0/0.39.0] 2023-05-18
     12 
     13 This release contains the first stable release of the OpenTelemetry Go [metric API].
     14 Our project stability guarantees now apply to the `go.opentelemetry.io/otel/metric` package.
     15 See our [versioning policy](VERSIONING.md) for more information about these stability guarantees.
     16 
     17 ### Added
     18 
     19 - The `go.opentelemetry.io/otel/semconv/v1.19.0` package.
     20   The package contains semantic conventions from the `v1.19.0` version of the OpenTelemetry specification. (#3848)
     21 - The `go.opentelemetry.io/otel/semconv/v1.20.0` package.
     22   The package contains semantic conventions from the `v1.20.0` version of the OpenTelemetry specification. (#4078)
     23 
     24 ### Changed
     25 
     26 - Use `strings.Cut()` instead of `string.SplitN()` for better readability and memory use. (#4049)
     27 
     28 ### Removed
     29 
     30 - The deprecated `go.opentelemetry.io/otel/metric/instrument` package is removed.
     31   Use `go.opentelemetry.io/otel/metric` instead. (#4055)
     32 
     33 ### Fixed
     34 
     35 - Fix build for BSD based systems in `go.opentelemetry.io/otel/sdk/resource`. (#4077)
     36 
     37 ## [1.16.0-rc.1/0.39.0-rc.1] 2023-05-03
     38 
     39 This is a release candidate for the v1.16.0/v0.39.0 release.
     40 That release is expected to include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API.
     41 See our [versioning policy](VERSIONING.md) for more information about these stability guarantees.
     42 
     43 ### Added
     44 
     45 - Support global `MeterProvider` in `go.opentelemetry.io/otel`. (#4039)
     46   - Use `Meter` for a `metric.Meter` from the global `metric.MeterProvider`.
     47   - Use `GetMeterProivder` for a global `metric.MeterProvider`.
     48   - Use `SetMeterProivder` to set the global `metric.MeterProvider`.
     49 
     50 ### Changed
     51 
     52 - Move the `go.opentelemetry.io/otel/metric` module to the `stable-v1` module set.
     53   This stages the metric API to be released as a stable module. (#4038)
     54 
     55 ### Removed
     56 
     57 - The `go.opentelemetry.io/otel/metric/global` package is removed.
     58   Use `go.opentelemetry.io/otel` instead. (#4039)
     59 
     60 ## [1.15.1/0.38.1] 2023-05-02
     61 
     62 ### Fixed
     63 
     64 - Remove unused imports from `sdk/resource/host_id_bsd.go` which caused build failures. (#4040, #4041)
     65 
     66 ## [1.15.0/0.38.0] 2023-04-27
     67 
     68 ### Added
     69 
     70 - The `go.opentelemetry.io/otel/metric/embedded` package. (#3916)
     71 - The `Version` function to `go.opentelemetry.io/otel/sdk` to return the SDK version. (#3949)
     72 - Add a `WithNamespace` option to `go.opentelemetry.io/otel/exporters/prometheus` to allow users to prefix metrics with a namespace. (#3970)
     73 - The following configuration types were added to `go.opentelemetry.io/otel/metric/instrument` to be used in the configuration of measurement methods. (#3971)
     74   - The `AddConfig` used to hold configuration for addition measurements
     75     - `NewAddConfig` used to create a new `AddConfig`
     76     - `AddOption` used to configure an `AddConfig`
     77   - The `RecordConfig` used to hold configuration for recorded measurements
     78     - `NewRecordConfig` used to create a new `RecordConfig`
     79     - `RecordOption` used to configure a `RecordConfig`
     80   - The `ObserveConfig` used to hold configuration for observed measurements
     81     - `NewObserveConfig` used to create a new `ObserveConfig`
     82     - `ObserveOption` used to configure an `ObserveConfig`
     83 - `WithAttributeSet` and `WithAttributes` are added to `go.opentelemetry.io/otel/metric/instrument`.
     84   They return an option used during a measurement that defines the attribute Set associated with the measurement. (#3971)
     85 - The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` to return the OTLP metrics client version. (#3956)
     86 - The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlptrace` to return the OTLP trace client version. (#3956)
     87 
     88 ### Changed
     89 
     90 - The `Extrema` in `go.opentelemetry.io/otel/sdk/metric/metricdata` is redefined with a generic argument of `[N int64 | float64]`. (#3870)
     91 - Update all exported interfaces from `go.opentelemetry.io/otel/metric` to embed their corresponding interface from `go.opentelemetry.io/otel/metric/embedded`.
     92   This adds an implementation requirement to set the interface default behavior for unimplemented methods. (#3916)
     93 - Move No-Op implementation from `go.opentelemetry.io/otel/metric` into its own package `go.opentelemetry.io/otel/metric/noop`. (#3941)
     94   - `metric.NewNoopMeterProvider` is replaced with `noop.NewMeterProvider`
     95 - Add all the methods from `"go.opentelemetry.io/otel/trace".SpanContext` to `bridgeSpanContext` by embedding `otel.SpanContext` in `bridgeSpanContext`. (#3966)
     96 - Wrap `UploadMetrics` error in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/` to improve error message when encountering generic grpc errors. (#3974)
     97 - The measurement methods for all instruments in `go.opentelemetry.io/otel/metric/instrument` accept an option instead of the variadic `"go.opentelemetry.io/otel/attribute".KeyValue`. (#3971)
     98   - The `Int64Counter.Add` method now accepts `...AddOption`
     99   - The `Float64Counter.Add` method now accepts `...AddOption`
    100   - The `Int64UpDownCounter.Add` method now accepts `...AddOption`
    101   - The `Float64UpDownCounter.Add` method now accepts `...AddOption`
    102   - The `Int64Histogram.Record` method now accepts `...RecordOption`
    103   - The `Float64Histogram.Record` method now accepts `...RecordOption`
    104   - The `Int64Observer.Observe` method now accepts `...ObserveOption`
    105   - The `Float64Observer.Observe` method now accepts `...ObserveOption`
    106 - The `Observer` methods in `go.opentelemetry.io/otel/metric` accept an option instead of the variadic `"go.opentelemetry.io/otel/attribute".KeyValue`. (#3971)
    107   - The `Observer.ObserveInt64` method now accepts `...ObserveOption`
    108   - The `Observer.ObserveFloat64` method now accepts `...ObserveOption`
    109 - Move global metric back to `go.opentelemetry.io/otel/metric/global` from `go.opentelemetry.io/otel`. (#3986)
    110 
    111 ### Fixed
    112 
    113 - `TracerProvider` allows calling `Tracer()` while it's shutting down.
    114   It used to deadlock. (#3924)
    115 - Use the SDK version for the Telemetry SDK resource detector in `go.opentelemetry.io/otel/sdk/resource`. (#3949)
    116 - Fix a data race in `SpanProcessor` returned by `NewSimpleSpanProcessor` in `go.opentelemetry.io/otel/sdk/trace`. (#3951)
    117 - Automatically figure out the default aggregation with `aggregation.Default`. (#3967)
    118 
    119 ### Deprecated
    120 
    121 - The `go.opentelemetry.io/otel/metric/instrument` package is deprecated.
    122   Use the equivalent types added to `go.opentelemetry.io/otel/metric` instead. (#4018)
    123 
    124 ## [1.15.0-rc.2/0.38.0-rc.2] 2023-03-23
    125 
    126 This is a release candidate for the v1.15.0/v0.38.0 release.
    127 That release will include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API.
    128 See our [versioning policy](VERSIONING.md) for more information about these stability guarantees.
    129 
    130 ### Added
    131 
    132 - The `WithHostID` option to `go.opentelemetry.io/otel/sdk/resource`. (#3812)
    133 - The `WithoutTimestamps` option to `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` to sets all timestamps to zero. (#3828)
    134 - The new `Exemplar` type is added to `go.opentelemetry.io/otel/sdk/metric/metricdata`.
    135   Both the `DataPoint` and `HistogramDataPoint` types from that package have a new field of `Exemplars` containing the sampled exemplars for their timeseries. (#3849)
    136 - Configuration for each metric instrument in `go.opentelemetry.io/otel/sdk/metric/instrument`. (#3895)
    137 - The internal logging introduces a warning level verbosity equal to `V(1)`. (#3900)
    138 - Added a log message warning about usage of `SimpleSpanProcessor` in production environments. (#3854)
    139 
    140 ### Changed
    141 
    142 - Optimize memory allocation when creation a new `Set` using `NewSet` or `NewSetWithFiltered` in `go.opentelemetry.io/otel/attribute`. (#3832)
    143 - Optimize memory allocation when creation new metric instruments in `go.opentelemetry.io/otel/sdk/metric`. (#3832)
    144 - Avoid creating new objects on all calls to `WithDeferredSetup` and `SkipContextSetup` in OpenTracing bridge. (#3833)
    145 - The `New` and `Detect` functions from `go.opentelemetry.io/otel/sdk/resource` return errors that wrap underlying errors instead of just containing the underlying error strings. (#3844)
    146 - Both the `Histogram` and `HistogramDataPoint` are redefined with a generic argument of `[N int64 | float64]` in `go.opentelemetry.io/otel/sdk/metric/metricdata`. (#3849)
    147 - The metric `Export` interface from `go.opentelemetry.io/otel/sdk/metric` accepts a `*ResourceMetrics` instead of `ResourceMetrics`. (#3853)
    148 - Rename `Asynchronous` to `Observable` in `go.opentelemetry.io/otel/metric/instrument`. (#3892)
    149 - Rename `Int64ObserverOption` to `Int64ObservableOption` in `go.opentelemetry.io/otel/metric/instrument`. (#3895)
    150 - Rename `Float64ObserverOption` to `Float64ObservableOption` in `go.opentelemetry.io/otel/metric/instrument`. (#3895)
    151 - The internal logging changes the verbosity level of info to `V(4)`, the verbosity level of debug to `V(8)`. (#3900)
    152 
    153 ### Fixed
    154 
    155 - `TracerProvider` consistently doesn't allow to register a `SpanProcessor` after shutdown. (#3845)
    156 
    157 ### Removed
    158 
    159 - The deprecated `go.opentelemetry.io/otel/metric/global` package is removed. (#3829)
    160 - The unneeded `Synchronous` interface in `go.opentelemetry.io/otel/metric/instrument` was removed. (#3892)
    161 - The `Float64ObserverConfig` and `NewFloat64ObserverConfig` in `go.opentelemetry.io/otel/sdk/metric/instrument`.
    162   Use the added `float64` instrument configuration instead. (#3895)
    163 - The `Int64ObserverConfig` and `NewInt64ObserverConfig` in `go.opentelemetry.io/otel/sdk/metric/instrument`.
    164   Use the added `int64` instrument configuration instead. (#3895)
    165 - The `NewNoopMeter` function in `go.opentelemetry.io/otel/metric`, use `NewMeterProvider().Meter("")` instead. (#3893)
    166 
    167 ## [1.15.0-rc.1/0.38.0-rc.1] 2023-03-01
    168 
    169 This is a release candidate for the v1.15.0/v0.38.0 release.
    170 That release will include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API.
    171 See our [versioning policy](VERSIONING.md) for more information about these stability guarantees.
    172 
    173 This release drops the compatibility guarantee of [Go 1.18].
    174 
    175 ### Added
    176 
    177 - Support global `MeterProvider` in `go.opentelemetry.io/otel`. (#3818)
    178   - Use `Meter` for a `metric.Meter` from the global `metric.MeterProvider`.
    179   - Use `GetMeterProivder` for a global `metric.MeterProvider`.
    180   - Use `SetMeterProivder` to set the global `metric.MeterProvider`.
    181 
    182 ### Changed
    183 
    184 - Dropped compatibility testing for [Go 1.18].
    185   The project no longer guarantees support for this version of Go. (#3813)
    186 
    187 ### Fixed
    188 
    189 - Handle empty environment variable as it they were not set. (#3764)
    190 - Clarify the `httpconv` and `netconv` packages in `go.opentelemetry.io/otel/semconv/*` provide tracing semantic conventions. (#3823)
    191 
    192 ### Deprecated
    193 
    194 - The `go.opentelemetry.io/otel/metric/global` package is deprecated.
    195   Use `go.opentelemetry.io/otel` instead. (#3818)
    196 
    197 ### Removed
    198 
    199 - The deprecated `go.opentelemetry.io/otel/metric/unit` package is removed. (#3814)
    200 
    201 ## [1.14.0/0.37.0/0.0.4] 2023-02-27
    202 
    203 This release is the last to support [Go 1.18].
    204 The next release will require at least [Go 1.19].
    205 
    206 ### Added
    207 
    208 - The `event` type semantic conventions are added to `go.opentelemetry.io/otel/semconv/v1.17.0`. (#3697)
    209 - Support [Go 1.20]. (#3693)
    210 - The `go.opentelemetry.io/otel/semconv/v1.18.0` package.
    211   The package contains semantic conventions from the `v1.18.0` version of the OpenTelemetry specification. (#3719)
    212   - The following `const` renames from `go.opentelemetry.io/otel/semconv/v1.17.0` are included:
    213     - `OtelScopeNameKey` -> `OTelScopeNameKey`
    214     - `OtelScopeVersionKey` -> `OTelScopeVersionKey`
    215     - `OtelLibraryNameKey` -> `OTelLibraryNameKey`
    216     - `OtelLibraryVersionKey` -> `OTelLibraryVersionKey`
    217     - `OtelStatusCodeKey` -> `OTelStatusCodeKey`
    218     - `OtelStatusDescriptionKey` -> `OTelStatusDescriptionKey`
    219     - `OtelStatusCodeOk` -> `OTelStatusCodeOk`
    220     - `OtelStatusCodeError` -> `OTelStatusCodeError`
    221   - The following `func` renames from `go.opentelemetry.io/otel/semconv/v1.17.0` are included:
    222     - `OtelScopeName` -> `OTelScopeName`
    223     - `OtelScopeVersion` -> `OTelScopeVersion`
    224     - `OtelLibraryName` -> `OTelLibraryName`
    225     - `OtelLibraryVersion` -> `OTelLibraryVersion`
    226     - `OtelStatusDescription` -> `OTelStatusDescription`
    227 - A `IsSampled` method is added to the `SpanContext` implementation in `go.opentelemetry.io/otel/bridge/opentracing` to expose the span sampled state.
    228   See the [README](./bridge/opentracing/README.md) for more information. (#3570)
    229 - The `WithInstrumentationAttributes` option to `go.opentelemetry.io/otel/metric`. (#3738)
    230 - The `WithInstrumentationAttributes` option to `go.opentelemetry.io/otel/trace`. (#3739)
    231 - The following environment variables are supported by the periodic `Reader` in `go.opentelemetry.io/otel/sdk/metric`. (#3763)
    232   - `OTEL_METRIC_EXPORT_INTERVAL` sets the time between collections and exports.
    233   - `OTEL_METRIC_EXPORT_TIMEOUT` sets the timeout an export is attempted.
    234 
    235 ### Changed
    236 
    237 - Fall-back to `TextMapCarrier` when it's not `HttpHeader`s in `go.opentelemetry.io/otel/bridge/opentracing`. (#3679)
    238 - The `Collect` method of the `"go.opentelemetry.io/otel/sdk/metric".Reader` interface is updated to accept the `metricdata.ResourceMetrics` value the collection will be made into.
    239   This change is made to enable memory reuse by SDK users. (#3732)
    240 - The `WithUnit` option in `go.opentelemetry.io/otel/sdk/metric/instrument` is updated to accept a `string` for the unit value. (#3776)
    241 
    242 ### Fixed
    243 
    244 - Ensure `go.opentelemetry.io/otel` does not use generics. (#3723, #3725)
    245 - Multi-reader `MeterProvider`s now export metrics for all readers, instead of just the first reader. (#3720, #3724)
    246 - Remove use of deprecated `"math/rand".Seed` in `go.opentelemetry.io/otel/example/prometheus`. (#3733)
    247 - Do not silently drop unknown schema data with `Parse` in  `go.opentelemetry.io/otel/schema/v1.1`. (#3743)
    248 - Data race issue in OTLP exporter retry mechanism. (#3755, #3756)
    249 - Wrapping empty errors when exporting in `go.opentelemetry.io/otel/sdk/metric`. (#3698, #3772)
    250 - Incorrect "all" and "resource" definition for schema files in `go.opentelemetry.io/otel/schema/v1.1`. (#3777)
    251 
    252 ### Deprecated
    253 
    254 - The `go.opentelemetry.io/otel/metric/unit` package is deprecated.
    255   Use the equivalent unit string instead. (#3776)
    256   - Use `"1"` instead of `unit.Dimensionless`
    257   - Use `"By"` instead of `unit.Bytes`
    258   - Use `"ms"` instead of `unit.Milliseconds`
    259 
    260 ## [1.13.0/0.36.0] 2023-02-07
    261 
    262 ### Added
    263 
    264 - Attribute `KeyValue` creations functions to `go.opentelemetry.io/otel/semconv/v1.17.0` for all non-enum semantic conventions.
    265   These functions ensure semantic convention type correctness. (#3675)
    266 
    267 ### Fixed
    268 
    269 - Removed the `http.target` attribute from being added by `ServerRequest` in the following packages. (#3687)
    270   - `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`
    271   - `go.opentelemetry.io/otel/semconv/v1.14.0/httpconv`
    272   - `go.opentelemetry.io/otel/semconv/v1.15.0/httpconv`
    273   - `go.opentelemetry.io/otel/semconv/v1.16.0/httpconv`
    274   - `go.opentelemetry.io/otel/semconv/v1.17.0/httpconv`
    275 
    276 ### Removed
    277 
    278 - The deprecated `go.opentelemetry.io/otel/metric/instrument/asyncfloat64` package is removed. (#3631)
    279 - The deprecated `go.opentelemetry.io/otel/metric/instrument/asyncint64` package is removed. (#3631)
    280 - The deprecated `go.opentelemetry.io/otel/metric/instrument/syncfloat64` package is removed. (#3631)
    281 - The deprecated `go.opentelemetry.io/otel/metric/instrument/syncint64` package is removed. (#3631)
    282 
    283 ## [1.12.0/0.35.0] 2023-01-28
    284 
    285 ### Added
    286 
    287 - The `WithInt64Callback` option to `go.opentelemetry.io/otel/metric/instrument`.
    288   This options is used to configure `int64` Observer callbacks during their creation. (#3507)
    289 - The `WithFloat64Callback` option to `go.opentelemetry.io/otel/metric/instrument`.
    290   This options is used to configure `float64` Observer callbacks during their creation. (#3507)
    291 - The `Producer` interface and `Reader.RegisterProducer(Producer)` to `go.opentelemetry.io/otel/sdk/metric`.
    292   These additions are used to enable external metric Producers. (#3524)
    293 - The `Callback` function type to `go.opentelemetry.io/otel/metric`.
    294   This new named function type is registered with a `Meter`. (#3564)
    295 - The `go.opentelemetry.io/otel/semconv/v1.13.0` package.
    296   The package contains semantic conventions from the `v1.13.0` version of the OpenTelemetry specification. (#3499)
    297   - The `EndUserAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is merged into `ClientRequest` and `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
    298   - The `HTTPAttributesFromHTTPStatusCode` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is merged into `ClientResponse` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
    299   - The `HTTPClientAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ClientRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
    300   - The `HTTPServerAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
    301   - The `HTTPServerMetricAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
    302   - The `NetAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is split into `Transport` in `go.opentelemetry.io/otel/semconv/v1.13.0/netconv` and `ClientRequest` or `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
    303   - The `SpanStatusFromHTTPStatusCode` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ClientStatus` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
    304   - The `SpanStatusFromHTTPStatusCodeAndSpanKind` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is split into `ClientStatus` and `ServerStatus` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
    305   - The `Client` function is included in `go.opentelemetry.io/otel/semconv/v1.13.0/netconv` to generate attributes for a `net.Conn`.
    306   - The `Server` function is included in `go.opentelemetry.io/otel/semconv/v1.13.0/netconv` to generate attributes for a `net.Listener`.
    307 - The `go.opentelemetry.io/otel/semconv/v1.14.0` package.
    308   The package contains semantic conventions from the `v1.14.0` version of the OpenTelemetry specification. (#3566)
    309 - The `go.opentelemetry.io/otel/semconv/v1.15.0` package.
    310   The package contains semantic conventions from the `v1.15.0` version of the OpenTelemetry specification. (#3578)
    311 - The `go.opentelemetry.io/otel/semconv/v1.16.0` package.
    312   The package contains semantic conventions from the `v1.16.0` version of the OpenTelemetry specification. (#3579)
    313 - Metric instruments to `go.opentelemetry.io/otel/metric/instrument`.
    314   These instruments are use as replacements of the deprecated `go.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64}` packages.(#3575, #3586)
    315   - `Float64ObservableCounter` replaces the `asyncfloat64.Counter`
    316   - `Float64ObservableUpDownCounter` replaces the `asyncfloat64.UpDownCounter`
    317   - `Float64ObservableGauge` replaces the `asyncfloat64.Gauge`
    318   - `Int64ObservableCounter` replaces the `asyncint64.Counter`
    319   - `Int64ObservableUpDownCounter` replaces the `asyncint64.UpDownCounter`
    320   - `Int64ObservableGauge` replaces the `asyncint64.Gauge`
    321   - `Float64Counter` replaces the `syncfloat64.Counter`
    322   - `Float64UpDownCounter` replaces the `syncfloat64.UpDownCounter`
    323   - `Float64Histogram` replaces the `syncfloat64.Histogram`
    324   - `Int64Counter` replaces the `syncint64.Counter`
    325   - `Int64UpDownCounter` replaces the `syncint64.UpDownCounter`
    326   - `Int64Histogram` replaces the `syncint64.Histogram`
    327 - `NewTracerProvider` to `go.opentelemetry.io/otel/bridge/opentracing`.
    328   This is used to create `WrapperTracer` instances from a `TracerProvider`. (#3116)
    329 - The `Extrema` type to `go.opentelemetry.io/otel/sdk/metric/metricdata`.
    330   This type is used to represent min/max values and still be able to distinguish unset and zero values. (#3487)
    331 - The `go.opentelemetry.io/otel/semconv/v1.17.0` package.
    332   The package contains semantic conventions from the `v1.17.0` version of the OpenTelemetry specification. (#3599)
    333 
    334 ### Changed
    335 
    336 - Jaeger and Zipkin exporter use `github.com/go-logr/logr` as the logging interface, and add the `WithLogr` option. (#3497, #3500)
    337 - Instrument configuration in `go.opentelemetry.io/otel/metric/instrument` is split into specific options and configuration based on the instrument type. (#3507)
    338   - Use the added `Int64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncint64`.
    339   - Use the added `Float64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncfloat64`.
    340   - Use the added `Int64ObserverOption` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/asyncint64`.
    341   - Use the added `Float64ObserverOption` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/asyncfloat64`.
    342 - Return a `Registration` from the `RegisterCallback` method of a `Meter` in the `go.opentelemetry.io/otel/metric` package.
    343   This `Registration` can be used to unregister callbacks. (#3522)
    344 - Global error handler uses an atomic value instead of a mutex. (#3543)
    345 - Add `NewMetricProducer` to `go.opentelemetry.io/otel/bridge/opencensus`, which can be used to pass OpenCensus metrics to an OpenTelemetry Reader. (#3541)
    346 - Global logger uses an atomic value instead of a mutex. (#3545)
    347 - The `Shutdown` method of the `"go.opentelemetry.io/otel/sdk/trace".TracerProvider` releases all computational resources when called the first time. (#3551)
    348 - The `Sampler` returned from `TraceIDRatioBased` `go.opentelemetry.io/otel/sdk/trace` now uses the rightmost bits for sampling decisions.
    349   This fixes random sampling when using ID generators like `xray.IDGenerator` and increasing parity with other language implementations. (#3557)
    350 - Errors from `go.opentelemetry.io/otel/exporters/otlp/otlptrace` exporters are wrapped in errors identifying their signal name.
    351   Existing users of the exporters attempting to identify specific errors will need to use `errors.Unwrap()` to get the underlying error. (#3516)
    352 - Exporters from `go.opentelemetry.io/otel/exporters/otlp` will print the final retryable error message when attempts to retry time out. (#3514)
    353 - The instrument kind names in `go.opentelemetry.io/otel/sdk/metric` are updated to match the API. (#3562)
    354   - `InstrumentKindSyncCounter` is renamed to `InstrumentKindCounter`
    355   - `InstrumentKindSyncUpDownCounter` is renamed to `InstrumentKindUpDownCounter`
    356   - `InstrumentKindSyncHistogram` is renamed to `InstrumentKindHistogram`
    357   - `InstrumentKindAsyncCounter` is renamed to `InstrumentKindObservableCounter`
    358   - `InstrumentKindAsyncUpDownCounter` is renamed to `InstrumentKindObservableUpDownCounter`
    359   - `InstrumentKindAsyncGauge` is renamed to `InstrumentKindObservableGauge`
    360 - The `RegisterCallback` method of the `Meter` in `go.opentelemetry.io/otel/metric` changed.
    361   - The named `Callback` replaces the inline function parameter. (#3564)
    362   - `Callback` is required to return an error. (#3576)
    363   - `Callback` accepts the added `Observer` parameter added.
    364     This new parameter is used by `Callback` implementations to observe values for asynchronous instruments instead of calling the `Observe` method of the instrument directly. (#3584)
    365   - The slice of `instrument.Asynchronous` is now passed as a variadic argument. (#3587)
    366 - The exporter from `go.opentelemetry.io/otel/exporters/zipkin` is updated to use the `v1.16.0` version of semantic conventions.
    367   This means it no longer uses the removed `net.peer.ip` or `http.host` attributes to determine the remote endpoint.
    368   Instead it uses the `net.sock.peer` attributes. (#3581)
    369 - The `Min` and `Max` fields of the `HistogramDataPoint` in `go.opentelemetry.io/otel/sdk/metric/metricdata` are now defined with the added `Extrema` type instead of a `*float64`. (#3487)
    370 
    371 ### Fixed
    372 
    373 - Asynchronous instruments that use sum aggregators and attribute filters correctly add values from equivalent attribute sets that have been filtered. (#3439, #3549)
    374 - The `RegisterCallback` method of the `Meter` from `go.opentelemetry.io/otel/sdk/metric` only registers a callback for instruments created by that meter.
    375   Trying to register a callback with instruments from a different meter will result in an error being returned. (#3584)
    376 
    377 ### Deprecated
    378 
    379 - The `NewMetricExporter` in `go.opentelemetry.io/otel/bridge/opencensus` is deprecated.
    380   Use `NewMetricProducer` instead. (#3541)
    381 - The `go.opentelemetry.io/otel/metric/instrument/asyncfloat64` package is deprecated.
    382   Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. (#3575)
    383 - The `go.opentelemetry.io/otel/metric/instrument/asyncint64` package is deprecated.
    384   Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. (#3575)
    385 - The `go.opentelemetry.io/otel/metric/instrument/syncfloat64` package is deprecated.
    386   Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. (#3575)
    387 - The `go.opentelemetry.io/otel/metric/instrument/syncint64` package is deprecated.
    388   Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. (#3575)
    389 - The `NewWrappedTracerProvider` in `go.opentelemetry.io/otel/bridge/opentracing` is now deprecated.
    390   Use `NewTracerProvider` instead. (#3116)
    391 
    392 ### Removed
    393 
    394 - The deprecated `go.opentelemetry.io/otel/sdk/metric/view` package is removed. (#3520)
    395 - The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/asyncint64` is removed.
    396   Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. (#3530)
    397   - The `Counter` method is replaced by `Meter.Int64ObservableCounter`
    398   - The `UpDownCounter` method is replaced by `Meter.Int64ObservableUpDownCounter`
    399   - The `Gauge` method is replaced by `Meter.Int64ObservableGauge`
    400 - The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/asyncfloat64` is removed.
    401   Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. (#3530)
    402   - The `Counter` method is replaced by `Meter.Float64ObservableCounter`
    403   - The `UpDownCounter` method is replaced by `Meter.Float64ObservableUpDownCounter`
    404   - The `Gauge` method is replaced by `Meter.Float64ObservableGauge`
    405 - The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/syncint64` is removed.
    406   Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. (#3530)
    407   - The `Counter` method is replaced by `Meter.Int64Counter`
    408   - The `UpDownCounter` method is replaced by `Meter.Int64UpDownCounter`
    409   - The `Histogram` method is replaced by `Meter.Int64Histogram`
    410 - The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/syncfloat64` is removed.
    411   Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. (#3530)
    412   - The `Counter` method is replaced by `Meter.Float64Counter`
    413   - The `UpDownCounter` method is replaced by `Meter.Float64UpDownCounter`
    414   - The `Histogram` method is replaced by `Meter.Float64Histogram`
    415 
    416 ## [1.11.2/0.34.0] 2022-12-05
    417 
    418 ### Added
    419 
    420 - The `WithView` `Option` is added to the `go.opentelemetry.io/otel/sdk/metric` package.
    421    This option is used to configure the view(s) a `MeterProvider` will use for all `Reader`s that are registered with it. (#3387)
    422 - Add Instrumentation Scope and Version as info metric and label in Prometheus exporter.
    423   This can be disabled using the `WithoutScopeInfo()` option added to that package.(#3273, #3357)
    424 - OTLP exporters now recognize: (#3363)
    425   - `OTEL_EXPORTER_OTLP_INSECURE`
    426   - `OTEL_EXPORTER_OTLP_TRACES_INSECURE`
    427   - `OTEL_EXPORTER_OTLP_METRICS_INSECURE`
    428   - `OTEL_EXPORTER_OTLP_CLIENT_KEY`
    429   - `OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY`
    430   - `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY`
    431   - `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`
    432   - `OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE`
    433   - `OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE`
    434 - The `View` type and related `NewView` function to create a view according to the OpenTelemetry specification are added to `go.opentelemetry.io/otel/sdk/metric`.
    435   These additions are replacements for the `View` type and `New` function from `go.opentelemetry.io/otel/sdk/metric/view`. (#3459)
    436 - The `Instrument` and `InstrumentKind` type are added to `go.opentelemetry.io/otel/sdk/metric`.
    437   These additions are replacements for the `Instrument` and `InstrumentKind` types from `go.opentelemetry.io/otel/sdk/metric/view`. (#3459)
    438 - The `Stream` type is added to `go.opentelemetry.io/otel/sdk/metric` to define a metric data stream a view will produce. (#3459)
    439 - The `AssertHasAttributes` allows instrument authors to test that datapoints returned have appropriate attributes. (#3487)
    440 
    441 ### Changed
    442 
    443 - The `"go.opentelemetry.io/otel/sdk/metric".WithReader` option no longer accepts views to associate with the `Reader`.
    444    Instead, views are now registered directly with the `MeterProvider` via the new `WithView` option.
    445    The views registered with the `MeterProvider` apply to all `Reader`s. (#3387)
    446 - The `Temporality(view.InstrumentKind) metricdata.Temporality` and `Aggregation(view.InstrumentKind) aggregation.Aggregation` methods are added to the `"go.opentelemetry.io/otel/sdk/metric".Exporter` interface. (#3260)
    447 - The `Temporality(view.InstrumentKind) metricdata.Temporality` and `Aggregation(view.InstrumentKind) aggregation.Aggregation` methods are added to the `"go.opentelemetry.io/otel/exporters/otlp/otlpmetric".Client` interface. (#3260)
    448 - The `WithTemporalitySelector` and `WithAggregationSelector` `ReaderOption`s have been changed to `ManualReaderOption`s in the `go.opentelemetry.io/otel/sdk/metric` package. (#3260)
    449 - The periodic reader in the `go.opentelemetry.io/otel/sdk/metric` package now uses the temporality and aggregation selectors from its configured exporter instead of accepting them as options. (#3260)
    450 
    451 ### Fixed
    452 
    453 - The `go.opentelemetry.io/otel/exporters/prometheus` exporter fixes duplicated `_total` suffixes. (#3369)
    454 - Remove comparable requirement for `Reader`s. (#3387)
    455 - Cumulative metrics from the OpenCensus bridge (`go.opentelemetry.io/otel/bridge/opencensus`) are defined as monotonic sums, instead of non-monotonic. (#3389)
    456 - Asynchronous counters (`Counter` and `UpDownCounter`) from the metric SDK now produce delta sums when configured with delta temporality. (#3398)
    457 - Exported `Status` codes in the `go.opentelemetry.io/otel/exporters/zipkin` exporter are now exported as all upper case values. (#3340)
    458 - `Aggregation`s from `go.opentelemetry.io/otel/sdk/metric` with no data are not exported. (#3394, #3436)
    459 - Re-enabled Attribute Filters in the Metric SDK. (#3396)
    460 - Asynchronous callbacks are only called if they are registered with at least one instrument that does not use drop aggragation. (#3408)
    461 - Do not report empty partial-success responses in the `go.opentelemetry.io/otel/exporters/otlp` exporters. (#3438, #3432)
    462 - Handle partial success responses in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` exporters. (#3162, #3440)
    463 - Prevent duplicate Prometheus description, unit, and type. (#3469)
    464 - Prevents panic when using incorrect `attribute.Value.As[Type]Slice()`. (#3489)
    465 
    466 ### Removed
    467 
    468 - The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric.Client` interface is removed. (#3486)
    469 - The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric.New` function is removed. Use the `otlpmetric[http|grpc].New` directly. (#3486)
    470 
    471 ### Deprecated
    472 
    473 - The `go.opentelemetry.io/otel/sdk/metric/view` package is deprecated.
    474   Use `Instrument`, `InstrumentKind`, `View`, and `NewView` in `go.opentelemetry.io/otel/sdk/metric` instead. (#3476)
    475 
    476 ## [1.11.1/0.33.0] 2022-10-19
    477 
    478 ### Added
    479 
    480 - The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` registers with a Prometheus registerer on creation.
    481    By default, it will register with the default Prometheus registerer.
    482    A non-default registerer can be used by passing the `WithRegisterer` option. (#3239)
    483 - Added the `WithAggregationSelector` option to the `go.opentelemetry.io/otel/exporters/prometheus` package to change the default `AggregationSelector` used. (#3341)
    484 - The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` converts the `Resource` associated with metric exports into a `target_info` metric. (#3285)
    485 
    486 ### Changed
    487 
    488 - The `"go.opentelemetry.io/otel/exporters/prometheus".New` function is updated to return an error.
    489    It will return an error if the exporter fails to register with Prometheus. (#3239)
    490 
    491 ### Fixed
    492 
    493 - The URL-encoded values from the `OTEL_RESOURCE_ATTRIBUTES` environment variable are decoded. (#2963)
    494 - The `baggage.NewMember` function decodes the `value` parameter instead of directly using it.
    495    This fixes the implementation to be compliant with the W3C specification. (#3226)
    496 - Slice attributes of the `attribute` package are now comparable based on their value, not instance. (#3108 #3252)
    497 - The `Shutdown` and `ForceFlush` methods of the `"go.opentelemetry.io/otel/sdk/trace".TraceProvider` no longer return an error when no processor is registered. (#3268)
    498 - The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` cumulatively sums histogram buckets. (#3281)
    499 - The sum of each histogram data point is now uniquely exported by the `go.opentelemetry.io/otel/exporters/otlpmetric` exporters. (#3284, #3293)
    500 - Recorded values for asynchronous counters (`Counter` and `UpDownCounter`) are interpreted as exact, not incremental, sum values by the metric SDK. (#3350, #3278)
    501 - `UpDownCounters` are now correctly output as Prometheus gauges in the `go.opentelemetry.io/otel/exporters/prometheus` exporter. (#3358)
    502 - The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` no longer describes the metrics it will send to Prometheus on startup.
    503    Instead the exporter is defined as an "unchecked" collector for Prometheus.
    504    This fixes the `reader is not registered` warning currently emitted on startup. (#3291 #3342)
    505 - The `go.opentelemetry.io/otel/exporters/prometheus` exporter now correctly adds `_total` suffixes to counter metrics. (#3360)
    506 - The `go.opentelemetry.io/otel/exporters/prometheus` exporter now adds a unit suffix to metric names.
    507    This can be disabled using the `WithoutUnits()` option added to that package. (#3352)
    508 
    509 ## [1.11.0/0.32.3] 2022-10-12
    510 
    511 ### Added
    512 
    513 - Add default User-Agent header to OTLP exporter requests (`go.opentelemetry.io/otel/exporters/otlptrace/otlptracegrpc` and `go.opentelemetry.io/otel/exporters/otlptrace/otlptracehttp`). (#3261)
    514 
    515 ### Changed
    516 
    517 - `span.SetStatus` has been updated such that calls that lower the status are now no-ops. (#3214)
    518 - Upgrade `golang.org/x/sys/unix` from `v0.0.0-20210423185535-09eb48e85fd7` to `v0.0.0-20220919091848-fb04ddd9f9c8`.
    519   This addresses [GO-2022-0493](https://pkg.go.dev/vuln/GO-2022-0493). (#3235)
    520 
    521 ## [0.32.2] Metric SDK (Alpha) - 2022-10-11
    522 
    523 ### Added
    524 
    525 - Added an example of using metric views to customize instruments. (#3177)
    526 - Add default User-Agent header to OTLP exporter requests (`go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetricgrpc` and `go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetrichttp`). (#3261)
    527 
    528 ### Changed
    529 
    530 - Flush pending measurements with the `PeriodicReader` in the `go.opentelemetry.io/otel/sdk/metric` when `ForceFlush` or `Shutdown` are called. (#3220)
    531 - Update histogram default bounds to match the requirements of the latest specification. (#3222)
    532 - Encode the HTTP status code in the OpenTracing bridge (`go.opentelemetry.io/otel/bridge/opentracing`) as an integer.  (#3265)
    533 
    534 ### Fixed
    535 
    536 - Use default view if instrument does not match any registered view of a reader. (#3224, #3237)
    537 - Return the same instrument every time a user makes the exact same instrument creation call. (#3229, #3251)
    538 - Return the existing instrument when a view transforms a creation call to match an existing instrument. (#3240, #3251)
    539 - Log a warning when a conflicting instrument (e.g. description, unit, data-type) is created instead of returning an error. (#3251)
    540 - The OpenCensus bridge no longer sends empty batches of metrics. (#3263)
    541 
    542 ## [0.32.1] Metric SDK (Alpha) - 2022-09-22
    543 
    544 ### Changed
    545 
    546 - The Prometheus exporter sanitizes OpenTelemetry instrument names when exporting.
    547    Invalid characters are replaced with `_`. (#3212)
    548 
    549 ### Added
    550 
    551 - The metric portion of the OpenCensus bridge (`go.opentelemetry.io/otel/bridge/opencensus`) has been reintroduced. (#3192)
    552 - The OpenCensus bridge example (`go.opentelemetry.io/otel/example/opencensus`) has been reintroduced. (#3206)
    553 
    554 ### Fixed
    555 
    556 - Updated go.mods to point to valid versions of the sdk. (#3216)
    557 - Set the `MeterProvider` resource on all exported metric data. (#3218)
    558 
    559 ## [0.32.0] Revised Metric SDK (Alpha) - 2022-09-18
    560 
    561 ### Changed
    562 
    563 - The metric SDK in `go.opentelemetry.io/otel/sdk/metric` is completely refactored to comply with the OpenTelemetry specification.
    564   Please see the package documentation for how the new SDK is initialized and configured. (#3175)
    565 - Update the minimum supported go version to go1.18. Removes support for go1.17 (#3179)
    566 
    567 ### Removed
    568 
    569 - The metric portion of the OpenCensus bridge (`go.opentelemetry.io/otel/bridge/opencensus`) has been removed.
    570   A new bridge compliant with the revised metric SDK will be added back in a future release. (#3175)
    571 - The `go.opentelemetry.io/otel/sdk/metric/aggregator/aggregatortest` package is removed, see the new metric SDK. (#3175)
    572 - The `go.opentelemetry.io/otel/sdk/metric/aggregator/histogram` package is removed, see the new metric SDK. (#3175)
    573 - The `go.opentelemetry.io/otel/sdk/metric/aggregator/lastvalue` package is removed, see the new metric SDK. (#3175)
    574 - The `go.opentelemetry.io/otel/sdk/metric/aggregator/sum` package is removed, see the new metric SDK. (#3175)
    575 - The `go.opentelemetry.io/otel/sdk/metric/aggregator` package is removed, see the new metric SDK. (#3175)
    576 - The `go.opentelemetry.io/otel/sdk/metric/controller/basic` package is removed, see the new metric SDK. (#3175)
    577 - The `go.opentelemetry.io/otel/sdk/metric/controller/controllertest` package is removed, see the new metric SDK. (#3175)
    578 - The `go.opentelemetry.io/otel/sdk/metric/controller/time` package is removed, see the new metric SDK. (#3175)
    579 - The `go.opentelemetry.io/otel/sdk/metric/export/aggregation` package is removed, see the new metric SDK. (#3175)
    580 - The `go.opentelemetry.io/otel/sdk/metric/export` package is removed, see the new metric SDK. (#3175)
    581 - The `go.opentelemetry.io/otel/sdk/metric/metrictest` package is removed.
    582   A replacement package that supports the new metric SDK will be added back in a future release. (#3175)
    583 - The `go.opentelemetry.io/otel/sdk/metric/number` package is removed, see the new metric SDK. (#3175)
    584 - The `go.opentelemetry.io/otel/sdk/metric/processor/basic` package is removed, see the new metric SDK. (#3175)
    585 - The `go.opentelemetry.io/otel/sdk/metric/processor/processortest` package is removed, see the new metric SDK. (#3175)
    586 - The `go.opentelemetry.io/otel/sdk/metric/processor/reducer` package is removed, see the new metric SDK. (#3175)
    587 - The `go.opentelemetry.io/otel/sdk/metric/registry` package is removed, see the new metric SDK. (#3175)
    588 - The `go.opentelemetry.io/otel/sdk/metric/sdkapi` package is removed, see the new metric SDK. (#3175)
    589 - The `go.opentelemetry.io/otel/sdk/metric/selector/simple` package is removed, see the new metric SDK. (#3175)
    590 - The `"go.opentelemetry.io/otel/sdk/metric".ErrUninitializedInstrument` variable was removed. (#3175)
    591 - The `"go.opentelemetry.io/otel/sdk/metric".ErrBadInstrument` variable was removed. (#3175)
    592 - The `"go.opentelemetry.io/otel/sdk/metric".Accumulator` type was removed, see the `MeterProvider`in the new metric SDK. (#3175)
    593 - The `"go.opentelemetry.io/otel/sdk/metric".NewAccumulator` function was removed, see `NewMeterProvider`in the new metric SDK. (#3175)
    594 - The deprecated `"go.opentelemetry.io/otel/sdk/metric".AtomicFieldOffsets` function was removed. (#3175)
    595 
    596 ## [1.10.0] - 2022-09-09
    597 
    598 ### Added
    599 
    600 - Support Go 1.19. (#3077)
    601   Include compatibility testing and document support. (#3077)
    602 - Support the OTLP ExportTracePartialSuccess response; these are passed to the registered error handler. (#3106)
    603 - Upgrade go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0 (#3107)
    604 
    605 ### Changed
    606 
    607 - Fix misidentification of OpenTelemetry `SpanKind` in OpenTracing bridge (`go.opentelemetry.io/otel/bridge/opentracing`).  (#3096)
    608 - Attempting to start a span with a nil `context` will no longer cause a panic. (#3110)
    609 - All exporters will be shutdown even if one reports an error (#3091)
    610 - Ensure valid UTF-8 when truncating over-length attribute values. (#3156)
    611 
    612 ## [1.9.0/0.0.3] - 2022-08-01
    613 
    614 ### Added
    615 
    616 - Add support for Schema Files format 1.1.x (metric "split" transform) with the new `go.opentelemetry.io/otel/schema/v1.1` package. (#2999)
    617 - Add the `go.opentelemetry.io/otel/semconv/v1.11.0` package.
    618   The package contains semantic conventions from the `v1.11.0` version of the OpenTelemetry specification. (#3009)
    619 - Add the `go.opentelemetry.io/otel/semconv/v1.12.0` package.
    620   The package contains semantic conventions from the `v1.12.0` version of the OpenTelemetry specification. (#3010)
    621 - Add the `http.method` attribute to HTTP server metric from all `go.opentelemetry.io/otel/semconv/*` packages. (#3018)
    622 
    623 ### Fixed
    624 
    625 - Invalid warning for context setup being deferred in `go.opentelemetry.io/otel/bridge/opentracing` package. (#3029)
    626 
    627 ## [1.8.0/0.31.0] - 2022-07-08
    628 
    629 ### Added
    630 
    631 - Add support for `opentracing.TextMap` format in the `Inject` and `Extract` methods
    632 of the `"go.opentelemetry.io/otel/bridge/opentracing".BridgeTracer` type. (#2911)
    633 
    634 ### Changed
    635 
    636 - The `crosslink` make target has been updated to use the `go.opentelemetry.io/build-tools/crosslink` package. (#2886)
    637 - In the `go.opentelemetry.io/otel/sdk/instrumentation` package rename `Library` to `Scope` and alias `Library` as `Scope` (#2976)
    638 - Move metric no-op implementation form `nonrecording` to `metric` package. (#2866)
    639 
    640 ### Removed
    641 
    642 - Support for go1.16. Support is now only for go1.17 and go1.18 (#2917)
    643 
    644 ### Deprecated
    645 
    646 - The `Library` struct in the `go.opentelemetry.io/otel/sdk/instrumentation` package is deprecated.
    647   Use the equivalent `Scope` struct instead. (#2977)
    648 - The `ReadOnlySpan.InstrumentationLibrary` method from the `go.opentelemetry.io/otel/sdk/trace` package is deprecated.
    649   Use the equivalent `ReadOnlySpan.InstrumentationScope` method instead. (#2977)
    650 
    651 ## [1.7.0/0.30.0] - 2022-04-28
    652 
    653 ### Added
    654 
    655 - Add the `go.opentelemetry.io/otel/semconv/v1.8.0` package.
    656   The package contains semantic conventions from the `v1.8.0` version of the OpenTelemetry specification. (#2763)
    657 - Add the `go.opentelemetry.io/otel/semconv/v1.9.0` package.
    658   The package contains semantic conventions from the `v1.9.0` version of the OpenTelemetry specification. (#2792)
    659 - Add the `go.opentelemetry.io/otel/semconv/v1.10.0` package.
    660   The package contains semantic conventions from the `v1.10.0` version of the OpenTelemetry specification. (#2842)
    661 - Added an in-memory exporter to metrictest to aid testing with a full SDK. (#2776)
    662 
    663 ### Fixed
    664 
    665 - Globally delegated instruments are unwrapped before delegating asynchronous callbacks. (#2784)
    666 - Remove import of `testing` package in non-tests builds of the `go.opentelemetry.io/otel` package. (#2786)
    667 
    668 ### Changed
    669 
    670 - The `WithLabelEncoder` option from the `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` package is renamed to `WithAttributeEncoder`. (#2790)
    671 - The `LabelFilterSelector` interface from `go.opentelemetry.io/otel/sdk/metric/processor/reducer` is renamed to `AttributeFilterSelector`.
    672   The method included in the renamed interface also changed from `LabelFilterFor` to `AttributeFilterFor`. (#2790)
    673 - The `Metadata.Labels` method from the `go.opentelemetry.io/otel/sdk/metric/export` package is renamed to `Metadata.Attributes`.
    674   Consequentially, the `Record` type from the same package also has had the embedded method renamed. (#2790)
    675 
    676 ### Deprecated
    677 
    678 - The `Iterator.Label` method in the `go.opentelemetry.io/otel/attribute` package is deprecated.
    679   Use the equivalent `Iterator.Attribute` method instead. (#2790)
    680 - The `Iterator.IndexedLabel` method in the `go.opentelemetry.io/otel/attribute` package is deprecated.
    681   Use the equivalent `Iterator.IndexedAttribute` method instead. (#2790)
    682 - The `MergeIterator.Label` method in the `go.opentelemetry.io/otel/attribute` package is deprecated.
    683   Use the equivalent `MergeIterator.Attribute` method instead. (#2790)
    684 
    685 ### Removed
    686 
    687 - Removed the `Batch` type from the `go.opentelemetry.io/otel/sdk/metric/metrictest` package. (#2864)
    688 - Removed the `Measurement` type from the `go.opentelemetry.io/otel/sdk/metric/metrictest` package. (#2864)
    689 
    690 ## [0.29.0] - 2022-04-11
    691 
    692 ### Added
    693 
    694 - The metrics global package was added back into several test files. (#2764)
    695 - The `Meter` function is added back to the `go.opentelemetry.io/otel/metric/global` package.
    696   This function is a convenience function equivalent to calling `global.MeterProvider().Meter(...)`. (#2750)
    697 
    698 ### Removed
    699 
    700 - Removed module the `go.opentelemetry.io/otel/sdk/export/metric`.
    701   Use the `go.opentelemetry.io/otel/sdk/metric` module instead. (#2720)
    702 
    703 ### Changed
    704 
    705 - Don't panic anymore when setting a global MeterProvider to itself. (#2749)
    706 - Upgrade `go.opentelemetry.io/proto/otlp` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` from `v0.12.1` to `v0.15.0`.
    707   This replaces the use of the now deprecated `InstrumentationLibrary` and `InstrumentationLibraryMetrics` types and fields in the proto library with the equivalent `InstrumentationScope` and `ScopeMetrics`. (#2748)
    708 
    709 ## [1.6.3] - 2022-04-07
    710 
    711 ### Fixed
    712 
    713 - Allow non-comparable global `MeterProvider`, `TracerProvider`, and `TextMapPropagator` types to be set. (#2772, #2773)
    714 
    715 ## [1.6.2] - 2022-04-06
    716 
    717 ### Changed
    718 
    719 - Don't panic anymore when setting a global TracerProvider or TextMapPropagator to itself. (#2749)
    720 - Upgrade `go.opentelemetry.io/proto/otlp` in `go.opentelemetry.io/otel/exporters/otlp/otlptrace` from `v0.12.1` to `v0.15.0`.
    721   This replaces the use of the now deprecated `InstrumentationLibrary` and `InstrumentationLibrarySpans` types and fields in the proto library with the equivalent `InstrumentationScope` and `ScopeSpans`. (#2748)
    722 
    723 ## [1.6.1] - 2022-03-28
    724 
    725 ### Fixed
    726 
    727 - The `go.opentelemetry.io/otel/schema/*` packages now use the correct schema URL for their `SchemaURL` constant.
    728   Instead of using `"https://opentelemetry.io/schemas/v<version>"` they now use the correct URL without a `v` prefix, `"https://opentelemetry.io/schemas/<version>"`. (#2743, #2744)
    729 
    730 ### Security
    731 
    732 - Upgrade `go.opentelemetry.io/proto/otlp` from `v0.12.0` to `v0.12.1`.
    733   This includes an indirect upgrade of `github.com/grpc-ecosystem/grpc-gateway` which resolves [a vulnerability](https://nvd.nist.gov/vuln/detail/CVE-2019-11254) from `gopkg.in/yaml.v2` in version `v2.2.3`. (#2724, #2728)
    734 
    735 ## [1.6.0/0.28.0] - 2022-03-23
    736 
    737 ### ⚠️ Notice ⚠️
    738 
    739 This update is a breaking change of the unstable Metrics API.
    740 Code instrumented with the `go.opentelemetry.io/otel/metric` will need to be modified.
    741 
    742 ### Added
    743 
    744 - Add metrics exponential histogram support.
    745   New mapping functions have been made available in `sdk/metric/aggregator/exponential/mapping` for other OpenTelemetry projects to take dependencies on. (#2502)
    746 - Add Go 1.18 to our compatibility tests. (#2679)
    747 - Allow configuring the Sampler with the `OTEL_TRACES_SAMPLER` and `OTEL_TRACES_SAMPLER_ARG` environment variables. (#2305, #2517)
    748 - Add the `metric/global` for obtaining and setting the global `MeterProvider`. (#2660)
    749 
    750 ### Changed
    751 
    752 - The metrics API has been significantly changed to match the revised OpenTelemetry specification.
    753   High-level changes include:
    754 
    755   - Synchronous and asynchronous instruments are now handled by independent `InstrumentProvider`s.
    756     These `InstrumentProvider`s are managed with a `Meter`.
    757   - Synchronous and asynchronous instruments are grouped into their own packages based on value types.
    758   - Asynchronous callbacks can now be registered with a `Meter`.
    759 
    760   Be sure to check out the metric module documentation for more information on how to use the revised API. (#2587, #2660)
    761 
    762 ### Fixed
    763 
    764 - Fallback to general attribute limits when span specific ones are not set in the environment. (#2675, #2677)
    765 
    766 ## [1.5.0] - 2022-03-16
    767 
    768 ### Added
    769 
    770 - Log the Exporters configuration in the TracerProviders message. (#2578)
    771 - Added support to configure the span limits with environment variables.
    772   The following environment variables are supported. (#2606, #2637)
    773   - `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT`
    774   - `OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT`
    775   - `OTEL_SPAN_EVENT_COUNT_LIMIT`
    776   - `OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT`
    777   - `OTEL_SPAN_LINK_COUNT_LIMIT`
    778   - `OTEL_LINK_ATTRIBUTE_COUNT_LIMIT`
    779 
    780   If the provided environment variables are invalid (negative), the default values would be used.
    781 - Rename the `gc` runtime name to `go` (#2560)
    782 - Add resource container ID detection. (#2418)
    783 - Add span attribute value length limit.
    784   The new `AttributeValueLengthLimit` field is added to the `"go.opentelemetry.io/otel/sdk/trace".SpanLimits` type to configure this limit for a `TracerProvider`.
    785   The default limit for this resource is "unlimited". (#2637)
    786 - Add the `WithRawSpanLimits` option to `go.opentelemetry.io/otel/sdk/trace`.
    787   This option replaces the `WithSpanLimits` option.
    788   Zero or negative values will not be changed to the default value like `WithSpanLimits` does.
    789   Setting a limit to zero will effectively disable the related resource it limits and setting to a negative value will mean that resource is unlimited.
    790   Consequentially, limits should be constructed using `NewSpanLimits` and updated accordingly. (#2637)
    791 
    792 ### Changed
    793 
    794 - Drop oldest tracestate `Member` when capacity is reached. (#2592)
    795 - Add event and link drop counts to the exported data from the `oltptrace` exporter. (#2601)
    796 - Unify path cleaning functionally in the `otlpmetric` and `otlptrace` configuration. (#2639)
    797 - Change the debug message from the `sdk/trace.BatchSpanProcessor` to reflect the count is cumulative. (#2640)
    798 - Introduce new internal `envconfig` package for OTLP exporters. (#2608)
    799 - If `http.Request.Host` is empty, fall back to use `URL.Host` when populating `http.host` in the `semconv` packages. (#2661)
    800 
    801 ### Fixed
    802 
    803 - Remove the OTLP trace exporter limit of SpanEvents when exporting. (#2616)
    804 - Default to port `4318` instead of `4317` for the `otlpmetrichttp` and `otlptracehttp` client. (#2614, #2625)
    805 - Unlimited span limits are now supported (negative values). (#2636, #2637)
    806 
    807 ### Deprecated
    808 
    809 - Deprecated `"go.opentelemetry.io/otel/sdk/trace".WithSpanLimits`.
    810   Use `WithRawSpanLimits` instead.
    811   That option allows setting unlimited and zero limits, this option does not.
    812   This option will be kept until the next major version incremented release. (#2637)
    813 
    814 ## [1.4.1] - 2022-02-16
    815 
    816 ### Fixed
    817 
    818 - Fix race condition in reading the dropped spans number for the `BatchSpanProcessor`. (#2615)
    819 
    820 ## [1.4.0] - 2022-02-11
    821 
    822 ### Added
    823 
    824 - Use `OTEL_EXPORTER_ZIPKIN_ENDPOINT` environment variable to specify zipkin collector endpoint. (#2490)
    825 - Log the configuration of `TracerProvider`s, and `Tracer`s for debugging.
    826   To enable use a logger with Verbosity (V level) `>=1`. (#2500)
    827 - Added support to configure the batch span-processor with environment variables.
    828   The following environment variables are used. (#2515)
    829   - `OTEL_BSP_SCHEDULE_DELAY`
    830   - `OTEL_BSP_EXPORT_TIMEOUT`
    831   - `OTEL_BSP_MAX_QUEUE_SIZE`.
    832   - `OTEL_BSP_MAX_EXPORT_BATCH_SIZE`
    833 
    834 ### Changed
    835 
    836 - Zipkin exporter exports `Resource` attributes in the `Tags` field. (#2589)
    837 
    838 ### Deprecated
    839 
    840 - Deprecate module the `go.opentelemetry.io/otel/sdk/export/metric`.
    841   Use the `go.opentelemetry.io/otel/sdk/metric` module instead. (#2382)
    842 - Deprecate `"go.opentelemetry.io/otel/sdk/metric".AtomicFieldOffsets`. (#2445)
    843 
    844 ### Fixed
    845 
    846 - Fixed the instrument kind for noop async instruments to correctly report an implementation. (#2461)
    847 - Fix UDP packets overflowing with Jaeger payloads. (#2489, #2512)
    848 - Change the `otlpmetric.Client` interface's `UploadMetrics` method to accept a single `ResourceMetrics` instead of a slice of them. (#2491)
    849 - Specify explicit buckets in Prometheus example, fixing issue where example only has `+inf` bucket. (#2419, #2493)
    850 - W3C baggage will now decode urlescaped values. (#2529)
    851 - Baggage members are now only validated once, when calling `NewMember` and not also when adding it to the baggage itself. (#2522)
    852 - The order attributes are dropped from spans in the `go.opentelemetry.io/otel/sdk/trace` package when capacity is reached is fixed to be in compliance with the OpenTelemetry specification.
    853   Instead of dropping the least-recently-used attribute, the last added attribute is dropped.
    854   This drop order still only applies to attributes with unique keys not already contained in the span.
    855   If an attribute is added with a key already contained in the span, that attribute is updated to the new value being added. (#2576)
    856 
    857 ### Removed
    858 
    859 - Updated `go.opentelemetry.io/proto/otlp` from `v0.11.0` to `v0.12.0`. This version removes a number of deprecated methods. (#2546)
    860   - [`Metric.GetIntGauge()`](https://pkg.go.dev/go.opentelemetry.io/proto/otlp@v0.11.0/metrics/v1#Metric.GetIntGauge)
    861   - [`Metric.GetIntHistogram()`](https://pkg.go.dev/go.opentelemetry.io/proto/otlp@v0.11.0/metrics/v1#Metric.GetIntHistogram)
    862   - [`Metric.GetIntSum()`](https://pkg.go.dev/go.opentelemetry.io/proto/otlp@v0.11.0/metrics/v1#Metric.GetIntSum)
    863 
    864 ## [1.3.0] - 2021-12-10
    865 
    866 ### ⚠️ Notice ⚠️
    867 
    868 We have updated the project minimum supported Go version to 1.16
    869 
    870 ### Added
    871 
    872 - Added an internal Logger.
    873   This can be used by the SDK and API to provide users with feedback of the internal state.
    874   To enable verbose logs configure the logger which will print V(1) logs. For debugging information configure to print V(5) logs. (#2343)
    875 - Add the `WithRetry` `Option` and the `RetryConfig` type to the `go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp` package to specify retry behavior consistently. (#2425)
    876 - Add `SpanStatusFromHTTPStatusCodeAndSpanKind` to all `semconv` packages to return a span status code similar to `SpanStatusFromHTTPStatusCode`, but exclude `4XX` HTTP errors as span errors if the span is of server kind. (#2296)
    877 
    878 ### Changed
    879 
    880 - The `"go.opentelemetry.io/otel/exporter/otel/otlptrace/otlptracegrpc".Client` now uses the underlying gRPC `ClientConn` to handle name resolution, TCP connection establishment (with retries and backoff) and TLS handshakes, and handling errors on established connections by re-resolving the name and reconnecting. (#2329)
    881 - The `"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetricgrpc".Client` now uses the underlying gRPC `ClientConn` to handle name resolution, TCP connection establishment (with retries and backoff) and TLS handshakes, and handling errors on established connections by re-resolving the name and reconnecting. (#2425)
    882 - The `"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetricgrpc".RetrySettings` type is renamed to `RetryConfig`. (#2425)
    883 - The `go.opentelemetry.io/otel/exporter/otel/*` gRPC exporters now default to using the host's root CA set if none are provided by the user and `WithInsecure` is not specified. (#2432)
    884 - Change `resource.Default` to be evaluated the first time it is called, rather than on import. This allows the caller the option to update `OTEL_RESOURCE_ATTRIBUTES` first, such as with `os.Setenv`. (#2371)
    885 
    886 ### Fixed
    887 
    888 - The `go.opentelemetry.io/otel/exporter/otel/*` exporters are updated to handle per-signal and universal endpoints according to the OpenTelemetry specification.
    889   Any per-signal endpoint set via an `OTEL_EXPORTER_OTLP_<signal>_ENDPOINT` environment variable is now used without modification of the path.
    890   When `OTEL_EXPORTER_OTLP_ENDPOINT` is set, if it contains a path, that path is used as a base path which per-signal paths are appended to. (#2433)
    891 - Basic metric controller updated to use sync.Map to avoid blocking calls (#2381)
    892 - The `go.opentelemetry.io/otel/exporter/jaeger` correctly sets the `otel.status_code` value to be a string of `ERROR` or `OK` instead of an integer code. (#2439, #2440)
    893 
    894 ### Deprecated
    895 
    896 - Deprecated the `"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithMaxAttempts` `Option`, use the new `WithRetry` `Option` instead. (#2425)
    897 - Deprecated the `"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithBackoff` `Option`, use the new `WithRetry` `Option` instead. (#2425)
    898 
    899 ### Removed
    900 
    901 - Remove the metric Processor's ability to convert cumulative to delta aggregation temporality. (#2350)
    902 - Remove the metric Bound Instruments interface and implementations. (#2399)
    903 - Remove the metric MinMaxSumCount kind aggregation and the corresponding OTLP export path. (#2423)
    904 - Metric SDK removes the "exact" aggregator for histogram instruments, as it performed a non-standard aggregation for OTLP export (creating repeated Gauge points) and worked its way into a number of confusing examples. (#2348)
    905 
    906 ## [1.2.0] - 2021-11-12
    907 
    908 ### Changed
    909 
    910 - Metric SDK `export.ExportKind`, `export.ExportKindSelector` types have been renamed to `aggregation.Temporality` and `aggregation.TemporalitySelector` respectively to keep in line with current specification and protocol along with built-in selectors (e.g., `aggregation.CumulativeTemporalitySelector`, ...). (#2274)
    911 - The Metric `Exporter` interface now requires a `TemporalitySelector` method instead of an `ExportKindSelector`. (#2274)
    912 - Metrics API cleanup. The `metric/sdkapi` package has been created to relocate the API-to-SDK interface:
    913   - The following interface types simply moved from `metric` to `metric/sdkapi`: `Descriptor`, `MeterImpl`, `InstrumentImpl`, `SyncImpl`, `BoundSyncImpl`, `AsyncImpl`, `AsyncRunner`, `AsyncSingleRunner`, and `AsyncBatchRunner`
    914   - The following struct types moved and are replaced with type aliases, since they are exposed to the user: `Observation`, `Measurement`.
    915   - The No-op implementations of sync and async instruments are no longer exported, new functions `sdkapi.NewNoopAsyncInstrument()` and `sdkapi.NewNoopSyncInstrument()` are provided instead. (#2271)
    916 - Update the SDK `BatchSpanProcessor` to export all queued spans when `ForceFlush` is called. (#2080, #2335)
    917 
    918 ### Added
    919 
    920 - Add the `"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc".WithGRPCConn` option so the exporter can reuse an existing gRPC connection. (#2002)
    921 - Added a new `schema` module to help parse Schema Files in OTEP 0152 format. (#2267)
    922 - Added a new `MapCarrier` to the `go.opentelemetry.io/otel/propagation` package to hold propagated cross-cutting concerns as a `map[string]string` held in memory. (#2334)
    923 
    924 ## [1.1.0] - 2021-10-27
    925 
    926 ### Added
    927 
    928 - Add the `"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".WithGRPCConn` option so the exporter can reuse an existing gRPC connection. (#2002)
    929 - Add the `go.opentelemetry.io/otel/semconv/v1.7.0` package.
    930   The package contains semantic conventions from the `v1.7.0` version of the OpenTelemetry specification. (#2320)
    931 - Add the `go.opentelemetry.io/otel/semconv/v1.6.1` package.
    932   The package contains semantic conventions from the `v1.6.1` version of the OpenTelemetry specification. (#2321)
    933 - Add the `go.opentelemetry.io/otel/semconv/v1.5.0` package.
    934   The package contains semantic conventions from the `v1.5.0` version of the OpenTelemetry specification. (#2322)
    935   - When upgrading from the `semconv/v1.4.0` package note the following name changes:
    936     - `K8SReplicasetUIDKey` -> `K8SReplicaSetUIDKey`
    937     - `K8SReplicasetNameKey` -> `K8SReplicaSetNameKey`
    938     - `K8SStatefulsetUIDKey` -> `K8SStatefulSetUIDKey`
    939     - `k8SStatefulsetNameKey` -> `K8SStatefulSetNameKey`
    940     - `K8SDaemonsetUIDKey` -> `K8SDaemonSetUIDKey`
    941     - `K8SDaemonsetNameKey` -> `K8SDaemonSetNameKey`
    942 
    943 ### Changed
    944 
    945 - Links added to a span will be dropped by the SDK if they contain an invalid span context (#2275).
    946 
    947 ### Fixed
    948 
    949 - The `"go.opentelemetry.io/otel/semconv/v1.4.0".HTTPServerAttributesFromHTTPRequest` now correctly only sets the HTTP client IP attribute even if the connection was routed with proxies and there are multiple addresses in the `X-Forwarded-For` header. (#2282, #2284)
    950 - The `"go.opentelemetry.io/otel/semconv/v1.4.0".NetAttributesFromHTTPRequest` function correctly handles IPv6 addresses as IP addresses and sets the correct net peer IP instead of the net peer hostname attribute. (#2283, #2285)
    951 - The simple span processor shutdown method deterministically returns the exporter error status if it simultaneously finishes when the deadline is reached. (#2290, #2289)
    952 
    953 ## [1.0.1] - 2021-10-01
    954 
    955 ### Fixed
    956 
    957 - json stdout exporter no longer crashes due to concurrency bug. (#2265)
    958 
    959 ## [Metrics 0.24.0] - 2021-10-01
    960 
    961 ### Changed
    962 
    963 - NoopMeterProvider is now private and NewNoopMeterProvider must be used to obtain a noopMeterProvider. (#2237)
    964 - The Metric SDK `Export()` function takes a new two-level reader interface for iterating over results one instrumentation library at a time. (#2197)
    965   - The former `"go.opentelemetry.io/otel/sdk/export/metric".CheckpointSet` is renamed `Reader`.
    966   - The new interface is named `"go.opentelemetry.io/otel/sdk/export/metric".InstrumentationLibraryReader`.
    967 
    968 ## [1.0.0] - 2021-09-20
    969 
    970 This is the first stable release for the project.
    971 This release includes an API and SDK for the tracing signal that will comply with the stability guarantees defined by the projects [versioning policy](./VERSIONING.md).
    972 
    973 ### Added
    974 
    975 - OTLP trace exporter now sets the `SchemaURL` field in the exported telemetry if the Tracer has `WithSchemaURL` option. (#2242)
    976 
    977 ### Fixed
    978 
    979 - Slice-valued attributes can correctly be used as map keys. (#2223)
    980 
    981 ### Removed
    982 
    983 - Removed the `"go.opentelemetry.io/otel/exporters/zipkin".WithSDKOptions` function. (#2248)
    984 - Removed the deprecated package `go.opentelemetry.io/otel/oteltest`. (#2234)
    985 - Removed the deprecated package `go.opentelemetry.io/otel/bridge/opencensus/utils`. (#2233)
    986 - Removed deprecated functions, types, and methods from `go.opentelemetry.io/otel/attribute` package.
    987   Use the typed functions and methods added to the package instead. (#2235)
    988   - The `Key.Array` method is removed.
    989   - The `Array` function is removed.
    990   - The `Any` function is removed.
    991   - The `ArrayValue` function is removed.
    992   - The `AsArray` function is removed.
    993 
    994 ## [1.0.0-RC3] - 2021-09-02
    995 
    996 ### Added
    997 
    998 - Added `ErrorHandlerFunc` to use a function as an `"go.opentelemetry.io/otel".ErrorHandler`. (#2149)
    999 - Added `"go.opentelemetry.io/otel/trace".WithStackTrace` option to add a stack trace when using `span.RecordError` or when panic is handled in `span.End`. (#2163)
   1000 - Added typed slice attribute types and functionality to the `go.opentelemetry.io/otel/attribute` package to replace the existing array type and functions. (#2162)
   1001   - `BoolSlice`, `IntSlice`, `Int64Slice`, `Float64Slice`, and `StringSlice` replace the use of the `Array` function in the package.
   1002 - Added the `go.opentelemetry.io/otel/example/fib` example package.
   1003   Included is an example application that computes Fibonacci numbers. (#2203)
   1004 
   1005 ### Changed
   1006 
   1007 - Metric instruments have been renamed to match the (feature-frozen) metric API specification:
   1008   - ValueRecorder becomes Histogram
   1009   - ValueObserver becomes Gauge
   1010   - SumObserver becomes CounterObserver
   1011   - UpDownSumObserver becomes UpDownCounterObserver
   1012   The API exported from this project is still considered experimental. (#2202)
   1013 - Metric SDK/API implementation type `InstrumentKind` moves into `sdkapi` sub-package. (#2091)
   1014 - The Metrics SDK export record no longer contains a Resource pointer, the SDK `"go.opentelemetry.io/otel/sdk/trace/export/metric".Exporter.Export()` function for push-based exporters now takes a single Resource argument, pull-based exporters use `"go.opentelemetry.io/otel/sdk/metric/controller/basic".Controller.Resource()`. (#2120)
   1015 - The JSON output of the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` is harmonized now such that the output is "plain" JSON objects after each other of the form `{ ... } { ... } { ... }`. Earlier the JSON objects describing a span were wrapped in a slice for each `Exporter.ExportSpans` call, like `[ { ... } ][ { ... } { ... } ]`. Outputting JSON object directly after each other is consistent with JSON loggers, and a bit easier to parse and read. (#2196)
   1016 - Update the `NewTracerConfig`, `NewSpanStartConfig`, `NewSpanEndConfig`, and `NewEventConfig` function in the `go.opentelemetry.io/otel/trace` package to return their respective configurations as structs instead of pointers to the struct. (#2212)
   1017 
   1018 ### Deprecated
   1019 
   1020 - The `go.opentelemetry.io/otel/bridge/opencensus/utils` package is deprecated.
   1021   All functionality from this package now exists in the `go.opentelemetry.io/otel/bridge/opencensus` package.
   1022   The functions from that package should be used instead. (#2166)
   1023 - The `"go.opentelemetry.io/otel/attribute".Array` function and the related `ARRAY` value type is deprecated.
   1024   Use the typed `*Slice` functions and types added to the package instead. (#2162)
   1025 - The `"go.opentelemetry.io/otel/attribute".Any` function is deprecated.
   1026   Use the typed functions instead. (#2181)
   1027 - The `go.opentelemetry.io/otel/oteltest` package is deprecated.
   1028   The `"go.opentelemetry.io/otel/sdk/trace/tracetest".SpanRecorder` can be registered with the default SDK (`go.opentelemetry.io/otel/sdk/trace`) as a `SpanProcessor` and used as a replacement for this deprecated package. (#2188)
   1029 
   1030 ### Removed
   1031 
   1032 - Removed metrics test package `go.opentelemetry.io/otel/sdk/export/metric/metrictest`. (#2105)
   1033 
   1034 ### Fixed
   1035 
   1036 - The `fromEnv` detector no longer throws an error when `OTEL_RESOURCE_ATTRIBUTES` environment variable is not set or empty. (#2138)
   1037 - Setting the global `ErrorHandler` with `"go.opentelemetry.io/otel".SetErrorHandler` multiple times is now supported. (#2160, #2140)
   1038 - The `"go.opentelemetry.io/otel/attribute".Any` function now supports `int32` values. (#2169)
   1039 - Multiple calls to `"go.opentelemetry.io/otel/sdk/metric/controller/basic".WithResource()` are handled correctly, and when no resources are provided `"go.opentelemetry.io/otel/sdk/resource".Default()` is used. (#2120)
   1040 - The `WithoutTimestamps` option for the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` exporter causes the exporter to correctly omit timestamps. (#2195)
   1041 - Fixed typos in resources.go. (#2201)
   1042 
   1043 ## [1.0.0-RC2] - 2021-07-26
   1044 
   1045 ### Added
   1046 
   1047 - Added `WithOSDescription` resource configuration option to set OS (Operating System) description resource attribute (`os.description`). (#1840)
   1048 - Added `WithOS` resource configuration option to set all OS (Operating System) resource attributes at once. (#1840)
   1049 - Added the `WithRetry` option to the `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` package.
   1050   This option is a replacement for the removed `WithMaxAttempts` and `WithBackoff` options. (#2095)
   1051 - Added API `LinkFromContext` to return Link which encapsulates SpanContext from provided context and also encapsulates attributes. (#2115)
   1052 - Added a new `Link` type under the SDK `otel/sdk/trace` package that counts the number of attributes that were dropped for surpassing the `AttributePerLinkCountLimit` configured in the Span's `SpanLimits`.
   1053   This new type replaces the equal-named API `Link` type found in the `otel/trace` package for most usages within the SDK.
   1054   For example, instances of this type are now returned by the `Links()` function of `ReadOnlySpan`s provided in places like the `OnEnd` function of `SpanProcessor` implementations. (#2118)
   1055 - Added the `SpanRecorder` type to the `go.opentelemetry.io/otel/skd/trace/tracetest` package.
   1056   This type can be used with the default SDK as a `SpanProcessor` during testing. (#2132)
   1057 
   1058 ### Changed
   1059 
   1060 - The `SpanModels` function is now exported from the `go.opentelemetry.io/otel/exporters/zipkin` package to convert OpenTelemetry spans into Zipkin model spans. (#2027)
   1061 - Rename the `"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".RetrySettings` to `RetryConfig`. (#2095)
   1062 
   1063 ### Deprecated
   1064 
   1065 - The `TextMapCarrier` and `TextMapPropagator` from the `go.opentelemetry.io/otel/oteltest` package and their associated creation functions (`TextMapCarrier`, `NewTextMapPropagator`) are deprecated. (#2114)
   1066 - The `Harness` type from the `go.opentelemetry.io/otel/oteltest` package and its associated creation function, `NewHarness` are deprecated and will be removed in the next release. (#2123)
   1067 - The `TraceStateFromKeyValues` function from the `go.opentelemetry.io/otel/oteltest` package is deprecated.
   1068   Use the `trace.ParseTraceState` function instead. (#2122)
   1069 
   1070 ### Removed
   1071 
   1072 - Removed the deprecated package `go.opentelemetry.io/otel/exporters/trace/jaeger`. (#2020)
   1073 - Removed the deprecated package `go.opentelemetry.io/otel/exporters/trace/zipkin`. (#2020)
   1074 - Removed the `"go.opentelemetry.io/otel/sdk/resource".WithBuiltinDetectors` function.
   1075   The explicit `With*` options for every built-in detector should be used instead. (#2026 #2097)
   1076 - Removed the `WithMaxAttempts` and `WithBackoff` options from the `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` package.
   1077   The retry logic of the package has been updated to match the `otlptracegrpc` package and accordingly a `WithRetry` option is added that should be used instead. (#2095)
   1078 - Removed `DroppedAttributeCount` field from `otel/trace.Link` struct. (#2118)
   1079 
   1080 ### Fixed
   1081 
   1082 - When using WithNewRoot, don't use the parent context for making sampling decisions. (#2032)
   1083 - `oteltest.Tracer` now creates a valid `SpanContext` when using `WithNewRoot`. (#2073)
   1084 - OS type detector now sets the correct `dragonflybsd` value for DragonFly BSD. (#2092)
   1085 - The OTel span status is correctly transformed into the OTLP status in the `go.opentelemetry.io/otel/exporters/otlp/otlptrace` package.
   1086   This fix will by default set the status to `Unset` if it is not explicitly set to `Ok` or `Error`. (#2099 #2102)
   1087 - The `Inject` method for the `"go.opentelemetry.io/otel/propagation".TraceContext` type no longer injects empty `tracestate` values. (#2108)
   1088 - Use `6831` as default Jaeger agent port instead of `6832`. (#2131)
   1089 
   1090 ## [Experimental Metrics v0.22.0] - 2021-07-19
   1091 
   1092 ### Added
   1093 
   1094 - Adds HTTP support for OTLP metrics exporter. (#2022)
   1095 
   1096 ### Removed
   1097 
   1098 - Removed the deprecated package `go.opentelemetry.io/otel/exporters/metric/prometheus`. (#2020)
   1099 
   1100 ## [1.0.0-RC1] / 0.21.0 - 2021-06-18
   1101 
   1102 With this release we are introducing a split in module versions.  The tracing API and SDK are entering the `v1.0.0` Release Candidate phase with `v1.0.0-RC1`
   1103 while the experimental metrics API and SDK continue with `v0.x` releases at `v0.21.0`.  Modules at major version 1 or greater will not depend on modules
   1104 with major version 0.
   1105 
   1106 ### Added
   1107 
   1108 - Adds `otlpgrpc.WithRetry`option for configuring the retry policy for transient errors on the otlp/gRPC exporter. (#1832)
   1109   - The following status codes are defined as transient errors:
   1110       | gRPC Status Code | Description |
   1111       | ---------------- | ----------- |
   1112       | 1  | Cancelled |
   1113       | 4  | Deadline Exceeded |
   1114       | 8  | Resource Exhausted |
   1115       | 10 | Aborted |
   1116       | 10 | Out of Range |
   1117       | 14 | Unavailable |
   1118       | 15 | Data Loss |
   1119 - Added `Status` type to the `go.opentelemetry.io/otel/sdk/trace` package to represent the status of a span. (#1874)
   1120 - Added `SpanStub` type and its associated functions to the `go.opentelemetry.io/otel/sdk/trace/tracetest` package.
   1121   This type can be used as a testing replacement for the `SpanSnapshot` that was removed from the `go.opentelemetry.io/otel/sdk/trace` package. (#1873)
   1122 - Adds support for scheme in `OTEL_EXPORTER_OTLP_ENDPOINT` according to the spec. (#1886)
   1123 - Adds `trace.WithSchemaURL` option for configuring the tracer with a Schema URL. (#1889)
   1124 - Added an example of using OpenTelemetry Go as a trace context forwarder. (#1912)
   1125 - `ParseTraceState` is added to the `go.opentelemetry.io/otel/trace` package.
   1126   It can be used to decode a `TraceState` from a `tracestate` header string value. (#1937)
   1127 - Added `Len` method to the `TraceState` type in the `go.opentelemetry.io/otel/trace` package.
   1128   This method returns the number of list-members the `TraceState` holds. (#1937)
   1129 - Creates package `go.opentelemetry.io/otel/exporters/otlp/otlptrace` that defines a trace exporter that uses a `otlptrace.Client` to send data.
   1130   Creates package `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` implementing a gRPC `otlptrace.Client` and offers convenience functions, `NewExportPipeline` and `InstallNewPipeline`, to setup and install a `otlptrace.Exporter` in tracing .(#1922)
   1131 - Added `Baggage`, `Member`, and `Property` types to the `go.opentelemetry.io/otel/baggage` package along with their related functions. (#1967)
   1132 - Added `ContextWithBaggage`, `ContextWithoutBaggage`, and `FromContext` functions to the `go.opentelemetry.io/otel/baggage` package.
   1133   These functions replace the `Set`, `Value`, `ContextWithValue`, `ContextWithoutValue`, and `ContextWithEmpty` functions from that package and directly work with the new `Baggage` type. (#1967)
   1134 - The `OTEL_SERVICE_NAME` environment variable is the preferred source for `service.name`, used by the environment resource detector if a service name is present both there and in `OTEL_RESOURCE_ATTRIBUTES`. (#1969)
   1135 - Creates package `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` implementing an HTTP `otlptrace.Client` and offers convenience functions, `NewExportPipeline` and `InstallNewPipeline`, to setup and install a `otlptrace.Exporter` in tracing. (#1963)
   1136 - Changes `go.opentelemetry.io/otel/sdk/resource.NewWithAttributes` to require a schema URL. The old function is still available as `resource.NewSchemaless`. This is a breaking change. (#1938)
   1137 - Several builtin resource detectors now correctly populate the schema URL. (#1938)
   1138 - Creates package `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` that defines a metrics exporter that uses a `otlpmetric.Client` to send data.
   1139 - Creates package `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` implementing a gRPC `otlpmetric.Client` and offers convenience functions, `New` and `NewUnstarted`, to create an `otlpmetric.Exporter`.(#1991)
   1140 - Added `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` exporter. (#2005)
   1141 - Added `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` exporter. (#2005)
   1142 - Added a `TracerProvider()` method to the `"go.opentelemetry.io/otel/trace".Span` interface. This can be used to obtain a `TracerProvider` from a given span that utilizes the same trace processing pipeline.  (#2009)
   1143 
   1144 ### Changed
   1145 
   1146 - Make `NewSplitDriver` from `go.opentelemetry.io/otel/exporters/otlp` take variadic arguments instead of a `SplitConfig` item.
   1147   `NewSplitDriver` now automatically implements an internal `noopDriver` for `SplitConfig` fields that are not initialized. (#1798)
   1148 - `resource.New()` now creates a Resource without builtin detectors. Previous behavior is now achieved by using `WithBuiltinDetectors` Option. (#1810)
   1149 - Move the `Event` type from the `go.opentelemetry.io/otel` package to the `go.opentelemetry.io/otel/sdk/trace` package. (#1846)
   1150 - CI builds validate against last two versions of Go, dropping 1.14 and adding 1.16. (#1865)
   1151 - BatchSpanProcessor now report export failures when calling `ForceFlush()` method. (#1860)
   1152 - `Set.Encoded(Encoder)` no longer caches the result of an encoding. (#1855)
   1153 - Renamed `CloudZoneKey` to `CloudAvailabilityZoneKey` in Resource semantic conventions according to spec. (#1871)
   1154 - The `StatusCode` and `StatusMessage` methods of the `ReadOnlySpan` interface and the `Span` produced by the `go.opentelemetry.io/otel/sdk/trace` package have been replaced with a single `Status` method.
   1155   This method returns the status of a span using the new `Status` type. (#1874)
   1156 - Updated `ExportSpans` method of the`SpanExporter` interface type to accept `ReadOnlySpan`s instead of the removed `SpanSnapshot`.
   1157   This brings the export interface into compliance with the specification in that it now accepts an explicitly immutable type instead of just an implied one. (#1873)
   1158 - Unembed `SpanContext` in `Link`. (#1877)
   1159 - Generate Semantic conventions from the specification YAML. (#1891)
   1160 - Spans created by the global `Tracer` obtained from `go.opentelemetry.io/otel`, prior to a functioning `TracerProvider` being set, now propagate the span context from their parent if one exists. (#1901)
   1161 - The `"go.opentelemetry.io/otel".Tracer` function now accepts tracer options. (#1902)
   1162 - Move the `go.opentelemetry.io/otel/unit` package to `go.opentelemetry.io/otel/metric/unit`. (#1903)
   1163 - Changed `go.opentelemetry.io/otel/trace.TracerConfig` to conform to the [Contributing guidelines](CONTRIBUTING.md#config.) (#1921)
   1164 - Changed `go.opentelemetry.io/otel/trace.SpanConfig` to conform to the [Contributing guidelines](CONTRIBUTING.md#config). (#1921)
   1165 - Changed `span.End()` now only accepts Options that are allowed at `End()`. (#1921)
   1166 - Changed `go.opentelemetry.io/otel/metric.InstrumentConfig` to conform to the [Contributing guidelines](CONTRIBUTING.md#config). (#1921)
   1167 - Changed `go.opentelemetry.io/otel/metric.MeterConfig` to conform to the [Contributing guidelines](CONTRIBUTING.md#config). (#1921)
   1168 - Refactored option types according to the contribution style guide. (#1882)
   1169 - Move the `go.opentelemetry.io/otel/trace.TraceStateFromKeyValues` function to the `go.opentelemetry.io/otel/oteltest` package.
   1170   This function is preserved for testing purposes where it may be useful to create a `TraceState` from `attribute.KeyValue`s, but it is not intended for production use.
   1171   The new `ParseTraceState` function should be used to create a `TraceState`. (#1931)
   1172 - Updated `MarshalJSON` method of the `go.opentelemetry.io/otel/trace.TraceState` type to marshal the type into the string representation of the `TraceState`. (#1931)
   1173 - The `TraceState.Delete` method from the `go.opentelemetry.io/otel/trace` package no longer returns an error in addition to a `TraceState`. (#1931)
   1174 - Updated `Get` method of the `TraceState` type from the `go.opentelemetry.io/otel/trace` package to accept a `string` instead of an `attribute.Key` type. (#1931)
   1175 - Updated `Insert` method of the `TraceState` type from the `go.opentelemetry.io/otel/trace` package to accept a pair of `string`s instead of an `attribute.KeyValue` type. (#1931)
   1176 - Updated `Delete` method of the `TraceState` type from the `go.opentelemetry.io/otel/trace` package to accept a `string` instead of an `attribute.Key` type. (#1931)
   1177 - Renamed `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/stdout` package. (#1985)
   1178 - Renamed `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/metric/prometheus` package. (#1985)
   1179 - Renamed `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/trace/jaeger` package. (#1985)
   1180 - Renamed `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/trace/zipkin` package. (#1985)
   1181 - Renamed `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/otlp` package. (#1985)
   1182 - Renamed `NewUnstartedExporter` to `NewUnstarted` in the `go.opentelemetry.io/otel/exporters/otlp` package. (#1985)
   1183 - The `go.opentelemetry.io/otel/semconv` package has been moved to `go.opentelemetry.io/otel/semconv/v1.4.0` to allow for multiple [telemetry schema](https://github.com/open-telemetry/oteps/blob/main/text/0152-telemetry-schemas.md) versions to be used concurrently. (#1987)
   1184 - Metrics test helpers in `go.opentelemetry.io/otel/oteltest` have been moved to `go.opentelemetry.io/otel/metric/metrictest`. (#1988)
   1185 
   1186 ### Deprecated
   1187 
   1188 - The `go.opentelemetry.io/otel/exporters/metric/prometheus` is deprecated, use `go.opentelemetry.io/otel/exporters/prometheus` instead. (#1993)
   1189 - The `go.opentelemetry.io/otel/exporters/trace/jaeger` is deprecated, use `go.opentelemetry.io/otel/exporters/jaeger` instead. (#1993)
   1190 - The `go.opentelemetry.io/otel/exporters/trace/zipkin` is deprecated, use `go.opentelemetry.io/otel/exporters/zipkin` instead. (#1993)
   1191 
   1192 ### Removed
   1193 
   1194 - Removed `resource.WithoutBuiltin()`. Use `resource.New()`. (#1810)
   1195 - Unexported types `resource.FromEnv`, `resource.Host`, and `resource.TelemetrySDK`, Use the corresponding `With*()` to use individually. (#1810)
   1196 - Removed the `Tracer` and `IsRecording` method from the `ReadOnlySpan` in the `go.opentelemetry.io/otel/sdk/trace`.
   1197   The `Tracer` method is not a required to be included in this interface and given the mutable nature of the tracer that is associated with a span, this method is not appropriate.
   1198   The `IsRecording` method returns if the span is recording or not.
   1199   A read-only span value does not need to know if updates to it will be recorded or not.
   1200   By definition, it cannot be updated so there is no point in communicating if an update is recorded. (#1873)
   1201 - Removed the `SpanSnapshot` type from the `go.opentelemetry.io/otel/sdk/trace` package.
   1202   The use of this type has been replaced with the use of the explicitly immutable `ReadOnlySpan` type.
   1203   When a concrete representation of a read-only span is needed for testing, the newly added `SpanStub` in the `go.opentelemetry.io/otel/sdk/trace/tracetest` package should be used. (#1873)
   1204 - Removed the `Tracer` method from the `Span` interface in the `go.opentelemetry.io/otel/trace` package.
   1205   Using the same tracer that created a span introduces the error where an instrumentation library's `Tracer` is used by other code instead of their own.
   1206   The `"go.opentelemetry.io/otel".Tracer` function or a `TracerProvider` should be used to acquire a library specific `Tracer` instead. (#1900)
   1207   - The `TracerProvider()` method on the `Span` interface may also be used to obtain a `TracerProvider` using the same trace processing pipeline. (#2009)
   1208 - The `http.url` attribute generated by `HTTPClientAttributesFromHTTPRequest` will no longer include username or password information. (#1919)
   1209 - Removed `IsEmpty` method of the `TraceState` type in the `go.opentelemetry.io/otel/trace` package in favor of using the added `TraceState.Len` method. (#1931)
   1210 - Removed `Set`, `Value`, `ContextWithValue`, `ContextWithoutValue`, and `ContextWithEmpty` functions in the `go.opentelemetry.io/otel/baggage` package.
   1211   Handling of baggage is now done using the added `Baggage` type and related context functions (`ContextWithBaggage`, `ContextWithoutBaggage`, and `FromContext`) in that package. (#1967)
   1212 - The `InstallNewPipeline` and `NewExportPipeline` creation functions in all the exporters (prometheus, otlp, stdout, jaeger, and zipkin) have been removed.
   1213   These functions were deemed premature attempts to provide convenience that did not achieve this aim. (#1985)
   1214 - The `go.opentelemetry.io/otel/exporters/otlp` exporter has been removed.  Use `go.opentelemetry.io/otel/exporters/otlp/otlptrace` instead. (#1990)
   1215 - The `go.opentelemetry.io/otel/exporters/stdout` exporter has been removed.  Use `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` or `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` instead. (#2005)
   1216 
   1217 ### Fixed
   1218 
   1219 - Only report errors from the `"go.opentelemetry.io/otel/sdk/resource".Environment` function when they are not `nil`. (#1850, #1851)
   1220 - The `Shutdown` method of the simple `SpanProcessor` in the `go.opentelemetry.io/otel/sdk/trace` package now honors the context deadline or cancellation. (#1616, #1856)
   1221 - BatchSpanProcessor now drops span batches that failed to be exported. (#1860)
   1222 - Use `http://localhost:14268/api/traces` as default Jaeger collector endpoint instead of `http://localhost:14250`. (#1898)
   1223 - Allow trailing and leading whitespace in the parsing of a `tracestate` header. (#1931)
   1224 - Add logic to determine if the channel is closed to fix Jaeger exporter test panic with close closed channel. (#1870, #1973)
   1225 - Avoid transport security when OTLP endpoint is a Unix socket. (#2001)
   1226 
   1227 ### Security
   1228 
   1229 ## [0.20.0] - 2021-04-23
   1230 
   1231 ### Added
   1232 
   1233 - The OTLP exporter now has two new convenience functions, `NewExportPipeline` and `InstallNewPipeline`, setup and install the exporter in tracing and metrics pipelines. (#1373)
   1234 - Adds semantic conventions for exceptions. (#1492)
   1235 - Added Jaeger Environment variables: `OTEL_EXPORTER_JAEGER_AGENT_HOST`, `OTEL_EXPORTER_JAEGER_AGENT_PORT`
   1236   These environment variables can be used to override Jaeger agent hostname and port (#1752)
   1237 - Option `ExportTimeout` was added to batch span processor. (#1755)
   1238 - `trace.TraceFlags` is now a defined type over `byte` and `WithSampled(bool) TraceFlags` and `IsSampled() bool` methods have been added to it. (#1770)
   1239 - 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)
   1240 - The Jaeger exporter now reports dropped attributes for a Span event in the exported log. (#1771)
   1241 - Adds test to check BatchSpanProcessor ignores `OnEnd` and `ForceFlush` post `Shutdown`. (#1772)
   1242 - 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)
   1243 - Added `WithOSType` resource configuration option to set OS (Operating System) type resource attribute (`os.type`). (#1788)
   1244 - Added `WithProcess*` resource configuration options to set Process resource attributes. (#1788)
   1245   - `process.pid`
   1246   - `process.executable.name`
   1247   - `process.executable.path`
   1248   - `process.command_args`
   1249   - `process.owner`
   1250   - `process.runtime.name`
   1251   - `process.runtime.version`
   1252   - `process.runtime.description`
   1253 - Adds `k8s.node.name` and `k8s.node.uid` attribute keys to the `semconv` package. (#1789)
   1254 - Added support for configuring OTLP/HTTP and OTLP/gRPC Endpoints, TLS Certificates, Headers, Compression and Timeout via Environment Variables. (#1758, #1769 and #1811)
   1255   - `OTEL_EXPORTER_OTLP_ENDPOINT`
   1256   - `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`
   1257   - `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`
   1258   - `OTEL_EXPORTER_OTLP_HEADERS`
   1259   - `OTEL_EXPORTER_OTLP_TRACES_HEADERS`
   1260   - `OTEL_EXPORTER_OTLP_METRICS_HEADERS`
   1261   - `OTEL_EXPORTER_OTLP_COMPRESSION`
   1262   - `OTEL_EXPORTER_OTLP_TRACES_COMPRESSION`
   1263   - `OTEL_EXPORTER_OTLP_METRICS_COMPRESSION`
   1264   - `OTEL_EXPORTER_OTLP_TIMEOUT`
   1265   - `OTEL_EXPORTER_OTLP_TRACES_TIMEOUT`
   1266   - `OTEL_EXPORTER_OTLP_METRICS_TIMEOUT`
   1267   - `OTEL_EXPORTER_OTLP_CERTIFICATE`
   1268   - `OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE`
   1269   - `OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE`
   1270 - Adds `otlpgrpc.WithTimeout` option for configuring timeout to the otlp/gRPC exporter. (#1821)
   1271 - Adds `jaeger.WithMaxPacketSize` option for configuring maximum UDP packet size used when connecting to the Jaeger agent. (#1853)
   1272 
   1273 ### Fixed
   1274 
   1275 - The `Span.IsRecording` implementation from `go.opentelemetry.io/otel/sdk/trace` always returns false when not being sampled. (#1750)
   1276 - The Jaeger exporter now correctly sets tags for the Span status code and message.
   1277   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)
   1278 - The Jaeger exporter now correctly records Span event's names using the `"event"` key for a tag.
   1279   Additionally, this tag is overridden, as specified in the OTel specification, if the event contains an attribute with that key. (#1768)
   1280 - Zipkin Exporter: Ensure mapping between OTel and Zipkin span data complies with the specification. (#1688)
   1281 - Fixed typo for default service name in Jaeger Exporter. (#1797)
   1282 - Fix flaky OTLP for the reconnnection of the client connection. (#1527, #1814)
   1283 - Fix Jaeger exporter dropping of span batches that exceed the UDP packet size limit.
   1284   Instead, the exporter now splits the batch into smaller sendable batches. (#1828)
   1285 
   1286 ### Changed
   1287 
   1288 - Span `RecordError` now records an `exception` event to comply with the semantic convention specification. (#1492)
   1289 - Jaeger exporter was updated to use thrift v0.14.1. (#1712)
   1290 - Migrate from using internally built and maintained version of the OTLP to the one hosted at `go.opentelemetry.io/proto/otlp`. (#1713)
   1291 - Migrate from using `github.com/gogo/protobuf` to `google.golang.org/protobuf` to match `go.opentelemetry.io/proto/otlp`. (#1713)
   1292 - The storage of a local or remote Span in a `context.Context` using its SpanContext is unified to store just the current Span.
   1293   The Span's SpanContext can now self-identify as being remote or not.
   1294   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)
   1295 - Improve OTLP/gRPC exporter connection errors. (#1737)
   1296 - Information about a parent span context in a `"go.opentelemetry.io/otel/export/trace".SpanSnapshot` is unified in a new `Parent` field.
   1297   The existing `ParentSpanID` and `HasRemoteParent` fields are removed in favor of this. (#1748)
   1298 - The `ParentContext` field of the `"go.opentelemetry.io/otel/sdk/trace".SamplingParameters` is updated to hold a `context.Context` containing the parent span.
   1299   This changes it to make `SamplingParameters` conform with the OpenTelemetry specification. (#1749)
   1300 - Updated Jaeger Environment Variables: `JAEGER_ENDPOINT`, `JAEGER_USER`, `JAEGER_PASSWORD`
   1301   to `OTEL_EXPORTER_JAEGER_ENDPOINT`, `OTEL_EXPORTER_JAEGER_USER`, `OTEL_EXPORTER_JAEGER_PASSWORD` in compliance with OTel specification. (#1752)
   1302 - Modify `BatchSpanProcessor.ForceFlush` to abort after timeout/cancellation. (#1757)
   1303 - 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.
   1304   It no longer is a conglomerate of itself, events, and link attributes that have been dropped. (#1771)
   1305 - Make `ExportSpans` in Jaeger Exporter honor context deadline. (#1773)
   1306 - Modify Zipkin Exporter default service name, use default resource's serviceName instead of empty. (#1777)
   1307 - The `go.opentelemetry.io/otel/sdk/export/trace` package is merged into the `go.opentelemetry.io/otel/sdk/trace` package. (#1778)
   1308 - The prometheus.InstallNewPipeline example is moved from comment to example test (#1796)
   1309 - The convenience functions for the stdout exporter have been updated to return the `TracerProvider` implementation and enable the shutdown of the exporter. (#1800)
   1310 - Replace the flush function returned from the Jaeger exporter's convenience creation functions (`InstallNewPipeline` and `NewExportPipeline`) with the `TracerProvider` implementation they create.
   1311   This enables the caller to shutdown and flush using the related `TracerProvider` methods. (#1822)
   1312 - Updated the Jaeger exporter to have a default endpoint, `http://localhost:14250`, for the collector. (#1824)
   1313 - Changed the function `WithCollectorEndpoint` in the Jaeger exporter to no longer accept an endpoint as an argument.
   1314   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)
   1315 - The Jaeger exporter no longer batches exported spans itself, instead it relies on the SDK's `BatchSpanProcessor` for this functionality. (#1830)
   1316 - The Jaeger exporter creation functions (`NewRawExporter`, `NewExportPipeline`, and `InstallNewPipeline`) no longer accept the removed `Option` type as a variadic argument. (#1830)
   1317 
   1318 ### Removed
   1319 
   1320 - Removed Jaeger Environment variables: `JAEGER_SERVICE_NAME`, `JAEGER_DISABLED`, `JAEGER_TAGS`
   1321   These environment variables will no longer be used to override values of the Jaeger exporter (#1752)
   1322 - No longer set the links for a `Span` in `go.opentelemetry.io/otel/sdk/trace` that is configured to be a new root.
   1323   This is unspecified behavior that the OpenTelemetry community plans to standardize in the future.
   1324   To prevent backwards incompatible changes when it is specified, these links are removed. (#1726)
   1325 - Setting error status while recording error with Span from oteltest package. (#1729)
   1326 - The concept of a remote and local Span stored in a context is unified to just the current Span.
   1327   Because of this `"go.opentelemetry.io/otel/trace".RemoteSpanContextFromContext` is removed as it is no longer needed.
   1328   Instead, `"go.opentelemetry.io/otel/trace".SpanContextFromContex` can be used to return the current Span.
   1329   If needed, that Span's `SpanContext.IsRemote()` can then be used to determine if it is remote or not. (#1731)
   1330 - The `HasRemoteParent` field of the `"go.opentelemetry.io/otel/sdk/trace".SamplingParameters` is removed.
   1331   This field is redundant to the information returned from the `Remote` method of the `SpanContext` held in the `ParentContext` field. (#1749)
   1332 - The `trace.FlagsDebug` and `trace.FlagsDeferred` constants have been removed and will be localized to the B3 propagator. (#1770)
   1333 - Remove `Process` configuration, `WithProcessFromEnv` and `ProcessFromEnv`, and type from the Jaeger exporter package.
   1334   The information that could be configured in the `Process` struct should be configured in a `Resource` instead. (#1776, #1804)
   1335 - Remove the `WithDisabled` option from the Jaeger exporter.
   1336   To disable the exporter unregister it from the `TracerProvider` or use a no-operation `TracerProvider`. (#1806)
   1337 - Removed the functions `CollectorEndpointFromEnv` and `WithCollectorEndpointOptionFromEnv` from the Jaeger exporter.
   1338   These functions for retrieving specific environment variable values are redundant of other internal functions and
   1339   are not intended for end user use. (#1824)
   1340 - Removed the Jaeger exporter `WithSDKOptions` `Option`.
   1341   This option was used to set SDK options for the exporter creation convenience functions.
   1342   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.
   1343   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)
   1344 - The `WithBufferMaxCount` and `WithBatchMaxCount` `Option`s from the Jaeger exporter are removed.
   1345   The exporter no longer batches exports, instead relying on the SDK's `BatchSpanProcessor` for this functionality. (#1830)
   1346 - The Jaeger exporter `Option` type is removed.
   1347   The type is no longer used by the exporter to configure anything.
   1348   All the previous configurations these options provided were duplicates of SDK configuration.
   1349   They have 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)
   1350 
   1351 ## [0.19.0] - 2021-03-18
   1352 
   1353 ### Added
   1354 
   1355 - Added `Marshaler` config option to `otlphttp` to enable otlp over json or protobufs. (#1586)
   1356 - A `ForceFlush` method to the `"go.opentelemetry.io/otel/sdk/trace".TracerProvider` to flush all registered `SpanProcessor`s. (#1608)
   1357 - Added `WithSampler` and `WithSpanLimits` to tracer provider. (#1633, #1702)
   1358 - `"go.opentelemetry.io/otel/trace".SpanContext` now has a `remote` property, and `IsRemote()` predicate, that is true when the `SpanContext` has been extracted from remote context data. (#1701)
   1359 - A `Valid` method to the `"go.opentelemetry.io/otel/attribute".KeyValue` type. (#1703)
   1360 
   1361 ### Changed
   1362 
   1363 - `trace.SpanContext` is now immutable and has no exported fields. (#1573)
   1364   - `trace.NewSpanContext()` can be used in conjunction with the `trace.SpanContextConfig` struct to initialize a new `SpanContext` where all values are known.
   1365 - Update the `ForceFlush` method signature to the `"go.opentelemetry.io/otel/sdk/trace".SpanProcessor` to accept a `context.Context` and return an error. (#1608)
   1366 - Update the `Shutdown` method to the `"go.opentelemetry.io/otel/sdk/trace".TracerProvider` return an error on shutdown failure. (#1608)
   1367 - The SimpleSpanProcessor will now shut down the enclosed `SpanExporter` and gracefully ignore subsequent calls to `OnEnd` after `Shutdown` is called. (#1612)
   1368 - `"go.opentelemetry.io/sdk/metric/controller.basic".WithPusher` is replaced with `WithExporter` to provide consistent naming across project. (#1656)
   1369 - Added non-empty string check for trace `Attribute` keys. (#1659)
   1370 - Add `description` to SpanStatus only when `StatusCode` is set to error. (#1662)
   1371 - Jaeger exporter falls back to `resource.Default`'s `service.name` if the exported Span does not have one. (#1673)
   1372 - Jaeger exporter populates Jaeger's Span Process from Resource. (#1673)
   1373 - Renamed the `LabelSet` method of `"go.opentelemetry.io/otel/sdk/resource".Resource` to `Set`. (#1692)
   1374 - Changed `WithSDK` to `WithSDKOptions` to accept variadic arguments of `TracerProviderOption` type in `go.opentelemetry.io/otel/exporters/trace/jaeger` package. (#1693)
   1375 - Changed `WithSDK` to `WithSDKOptions` to accept variadic arguments of `TracerProviderOption` type in `go.opentelemetry.io/otel/exporters/trace/zipkin` package. (#1693)
   1376 
   1377 ### Removed
   1378 
   1379 - Removed `serviceName` parameter from Zipkin exporter and uses resource instead. (#1549)
   1380 - Removed `WithConfig` from tracer provider to avoid overriding configuration. (#1633)
   1381 - Removed the exported `SimpleSpanProcessor` and `BatchSpanProcessor` structs.
   1382    These are now returned as a SpanProcessor interface from their respective constructors. (#1638)
   1383 - Removed `WithRecord()` from `trace.SpanOption` when creating a span. (#1660)
   1384 - Removed setting status to `Error` while recording an error as a span event in `RecordError`. (#1663)
   1385 - Removed `jaeger.WithProcess` configuration option. (#1673)
   1386 - Removed `ApplyConfig` method from `"go.opentelemetry.io/otel/sdk/trace".TracerProvider` and the now unneeded `Config` struct. (#1693)
   1387 
   1388 ### Fixed
   1389 
   1390 - Jaeger Exporter: Ensure mapping between OTEL and Jaeger span data complies with the specification. (#1626)
   1391 - `SamplingResult.TraceState` is correctly propagated to a newly created span's `SpanContext`. (#1655)
   1392 - The `otel-collector` example now correctly flushes metric events prior to shutting down the exporter. (#1678)
   1393 - Do not set span status message in `SpanStatusFromHTTPStatusCode` if it can be inferred from `http.status_code`. (#1681)
   1394 - Synchronization issues in global trace delegate implementation. (#1686)
   1395 - Reduced excess memory usage by global `TracerProvider`. (#1687)
   1396 
   1397 ## [0.18.0] - 2021-03-03
   1398 
   1399 ### Added
   1400 
   1401 - Added `resource.Default()` for use with meter and tracer providers. (#1507)
   1402 - `AttributePerEventCountLimit` and `AttributePerLinkCountLimit` for `SpanLimits`. (#1535)
   1403 - Added `Keys()` method to `propagation.TextMapCarrier` and `propagation.HeaderCarrier` to adapt `http.Header` to this interface. (#1544)
   1404 - Added `code` attributes to `go.opentelemetry.io/otel/semconv` package. (#1558)
   1405 - Compatibility testing suite in the CI system for the following systems. (#1567)
   1406    | OS      | Go Version | Architecture |
   1407    | ------- | ---------- | ------------ |
   1408    | Ubuntu  | 1.15       | amd64        |
   1409    | Ubuntu  | 1.14       | amd64        |
   1410    | Ubuntu  | 1.15       | 386          |
   1411    | Ubuntu  | 1.14       | 386          |
   1412    | MacOS   | 1.15       | amd64        |
   1413    | MacOS   | 1.14       | amd64        |
   1414    | Windows | 1.15       | amd64        |
   1415    | Windows | 1.14       | amd64        |
   1416    | Windows | 1.15       | 386          |
   1417    | Windows | 1.14       | 386          |
   1418 
   1419 ### Changed
   1420 
   1421 - Replaced interface `oteltest.SpanRecorder` with its existing implementation
   1422   `StandardSpanRecorder`. (#1542)
   1423 - Default span limit values to 128. (#1535)
   1424 - Rename `MaxEventsPerSpan`, `MaxAttributesPerSpan` and `MaxLinksPerSpan` to `EventCountLimit`, `AttributeCountLimit` and `LinkCountLimit`, and move these fields into `SpanLimits`. (#1535)
   1425 - Renamed the `otel/label` package to `otel/attribute`. (#1541)
   1426 - Vendor the Jaeger exporter's dependency on Apache Thrift. (#1551)
   1427 - Parallelize the CI linting and testing. (#1567)
   1428 - Stagger timestamps in exact aggregator tests. (#1569)
   1429 - Changed all examples to use `WithBatchTimeout(5 * time.Second)` rather than `WithBatchTimeout(5)`. (#1621)
   1430 - Prevent end-users from implementing some interfaces (#1575)
   1431 
   1432   ```
   1433       "otel/exporters/otlp/otlphttp".Option
   1434       "otel/exporters/stdout".Option
   1435       "otel/oteltest".Option
   1436       "otel/trace".TracerOption
   1437       "otel/trace".SpanOption
   1438       "otel/trace".EventOption
   1439       "otel/trace".LifeCycleOption
   1440       "otel/trace".InstrumentationOption
   1441       "otel/sdk/resource".Option
   1442       "otel/sdk/trace".ParentBasedSamplerOption
   1443       "otel/sdk/trace".ReadOnlySpan
   1444       "otel/sdk/trace".ReadWriteSpan
   1445   ```
   1446 
   1447 ### Removed
   1448 
   1449 - Removed attempt to resample spans upon changing the span name with `span.SetName()`. (#1545)
   1450 - The `test-benchmark` is no longer a dependency of the `precommit` make target. (#1567)
   1451 - Removed the `test-386` make target.
   1452    This was replaced with a full compatibility testing suite (i.e. multi OS/arch) in the CI system. (#1567)
   1453 
   1454 ### Fixed
   1455 
   1456 - The sequential timing check of timestamps in the stdout exporter are now setup explicitly to be sequential (#1571). (#1572)
   1457 - Windows build of Jaeger tests now compiles with OS specific functions (#1576). (#1577)
   1458 - The sequential timing check of timestamps of go.opentelemetry.io/otel/sdk/metric/aggregator/lastvalue are now setup explicitly to be sequential (#1578). (#1579)
   1459 - Validate tracestate header keys with vendors according to the W3C TraceContext specification (#1475). (#1581)
   1460 - The OTLP exporter includes related labels for translations of a GaugeArray (#1563). (#1570)
   1461 
   1462 ## [0.17.0] - 2021-02-12
   1463 
   1464 ### Changed
   1465 
   1466 - Rename project default branch from `master` to `main`. (#1505)
   1467 - Reverse order in which `Resource` attributes are merged, per change in spec. (#1501)
   1468 - Add tooling to maintain "replace" directives in go.mod files automatically. (#1528)
   1469 - Create new modules: otel/metric, otel/trace, otel/oteltest, otel/sdk/export/metric, otel/sdk/metric (#1528)
   1470 - Move metric-related public global APIs from otel to otel/metric/global. (#1528)
   1471 
   1472 ## Fixed
   1473 
   1474 - Fixed otlpgrpc reconnection issue.
   1475 - The example code in the README.md of `go.opentelemetry.io/otel/exporters/otlp` is moved to a compiled example test and used the new `WithAddress` instead of `WithEndpoint`. (#1513)
   1476 - The otel-collector example now uses the default OTLP receiver port of the collector.
   1477 
   1478 ## [0.16.0] - 2021-01-13
   1479 
   1480 ### Added
   1481 
   1482 - Add the `ReadOnlySpan` and `ReadWriteSpan` interfaces to provide better control for accessing span data. (#1360)
   1483 - `NewGRPCDriver` function returns a `ProtocolDriver` that maintains a single gRPC connection to the collector. (#1369)
   1484 - Added documentation about the project's versioning policy. (#1388)
   1485 - Added `NewSplitDriver` for OTLP exporter that allows sending traces and metrics to different endpoints. (#1418)
   1486 - Added codeql workflow to GitHub Actions (#1428)
   1487 - Added Gosec workflow to GitHub Actions (#1429)
   1488 - Add new HTTP driver for OTLP exporter in `exporters/otlp/otlphttp`. Currently it only supports the binary protobuf payloads. (#1420)
   1489 - Add an OpenCensus exporter bridge. (#1444)
   1490 
   1491 ### Changed
   1492 
   1493 - Rename `internal/testing` to `internal/internaltest`. (#1449)
   1494 - Rename `export.SpanData` to `export.SpanSnapshot` and use it only for exporting spans. (#1360)
   1495 - Store the parent's full `SpanContext` rather than just its span ID in the `span` struct. (#1360)
   1496 - Improve span duration accuracy. (#1360)
   1497 - Migrated CI/CD from CircleCI to GitHub Actions (#1382)
   1498 - Remove duplicate checkout from GitHub Actions workflow (#1407)
   1499 - Metric `array` aggregator renamed `exact` to match its `aggregation.Kind` (#1412)
   1500 - Metric `exact` aggregator includes per-point timestamps (#1412)
   1501 - Metric stdout exporter uses MinMaxSumCount aggregator for ValueRecorder instruments (#1412)
   1502 - `NewExporter` from `exporters/otlp` now takes a `ProtocolDriver` as a parameter. (#1369)
   1503 - Many OTLP Exporter options became gRPC ProtocolDriver options. (#1369)
   1504 - Unify endpoint API that related to OTel exporter. (#1401)
   1505 - Optimize metric histogram aggregator to re-use its slice of buckets. (#1435)
   1506 - Metric aggregator Count() and histogram Bucket.Counts are consistently `uint64`. (1430)
   1507 - Histogram aggregator accepts functional options, uses default boundaries if none given. (#1434)
   1508 - `SamplingResult` now passed a `Tracestate` from the parent `SpanContext` (#1432)
   1509 - Moved gRPC driver for OTLP exporter to `exporters/otlp/otlpgrpc`. (#1420)
   1510 - The `TraceContext` propagator now correctly propagates `TraceState` through the `SpanContext`. (#1447)
   1511 - Metric Push and Pull Controller components are combined into a single "basic" Controller:
   1512   - `WithExporter()` and `Start()` to configure Push behavior
   1513   - `Start()` is optional; use `Collect()` and `ForEach()` for Pull behavior
   1514   - `Start()` and `Stop()` accept Context. (#1378)
   1515 - The `Event` type is moved from the `otel/sdk/export/trace` package to the `otel/trace` API package. (#1452)
   1516 
   1517 ### Removed
   1518 
   1519 - Remove `errUninitializedSpan` as its only usage is now obsolete. (#1360)
   1520 - Remove Metric export functionality related to quantiles and summary data points: this is not specified (#1412)
   1521 - Remove DDSketch metric aggregator; our intention is to re-introduce this as an option of the histogram aggregator after [new OTLP histogram data types](https://github.com/open-telemetry/opentelemetry-proto/pull/226) are released (#1412)
   1522 
   1523 ### Fixed
   1524 
   1525 - `BatchSpanProcessor.Shutdown()` will now shutdown underlying `export.SpanExporter`. (#1443)
   1526 
   1527 ## [0.15.0] - 2020-12-10
   1528 
   1529 ### Added
   1530 
   1531 - The `WithIDGenerator` `TracerProviderOption` is added to the `go.opentelemetry.io/otel/trace` package to configure an `IDGenerator` for the `TracerProvider`. (#1363)
   1532 
   1533 ### Changed
   1534 
   1535 - The Zipkin exporter now uses the Span status code to determine. (#1328)
   1536 - `NewExporter` and `Start` functions in `go.opentelemetry.io/otel/exporters/otlp` now receive `context.Context` as a first parameter. (#1357)
   1537 - Move the OpenCensus example into `example` directory. (#1359)
   1538 - Moved the SDK's `internal.IDGenerator` interface in to the `sdk/trace` package to enable support for externally-defined ID generators. (#1363)
   1539 - Bump `github.com/google/go-cmp` from 0.5.3 to 0.5.4 (#1374)
   1540 - Bump `github.com/golangci/golangci-lint` in `/internal/tools` (#1375)
   1541 
   1542 ### Fixed
   1543 
   1544 - Metric SDK `SumObserver` and `UpDownSumObserver` instruments correctness fixes. (#1381)
   1545 
   1546 ## [0.14.0] - 2020-11-19
   1547 
   1548 ### Added
   1549 
   1550 - An `EventOption` and the related `NewEventConfig` function are added to the `go.opentelemetry.io/otel` package to configure Span events. (#1254)
   1551 - A `TextMapPropagator` and associated `TextMapCarrier` are added to the `go.opentelemetry.io/otel/oteltest` package to test `TextMap` type propagators and their use. (#1259)
   1552 - `SpanContextFromContext` returns `SpanContext` from context. (#1255)
   1553 - `TraceState` has been added to `SpanContext`. (#1340)
   1554 - `DeploymentEnvironmentKey` added to `go.opentelemetry.io/otel/semconv` package. (#1323)
   1555 - Add an OpenCensus to OpenTelemetry tracing bridge. (#1305)
   1556 - Add a parent context argument to `SpanProcessor.OnStart` to follow the specification. (#1333)
   1557 - Add missing tests for `sdk/trace/attributes_map.go`. (#1337)
   1558 
   1559 ### Changed
   1560 
   1561 - Move the `go.opentelemetry.io/otel/api/trace` package into `go.opentelemetry.io/otel/trace` with the following changes. (#1229) (#1307)
   1562   - `ID` has been renamed to `TraceID`.
   1563   - `IDFromHex` has been renamed to `TraceIDFromHex`.
   1564   - `EmptySpanContext` is removed.
   1565 - Move the `go.opentelemetry.io/otel/api/trace/tracetest` package into `go.opentelemetry.io/otel/oteltest`. (#1229)
   1566 - OTLP Exporter updates:
   1567   - supports OTLP v0.6.0 (#1230, #1354)
   1568   - supports configurable aggregation temporality (default: Cumulative, optional: Stateless). (#1296)
   1569 - The Sampler is now called on local child spans. (#1233)
   1570 - The `Kind` type from the `go.opentelemetry.io/otel/api/metric` package was renamed to `InstrumentKind` to more specifically describe what it is and avoid semantic ambiguity. (#1240)
   1571 - The `MetricKind` method of the `Descriptor` type in the `go.opentelemetry.io/otel/api/metric` package was renamed to `Descriptor.InstrumentKind`.
   1572    This matches the returned type and fixes misuse of the term metric. (#1240)
   1573 - Move test harness from the `go.opentelemetry.io/otel/api/apitest` package into `go.opentelemetry.io/otel/oteltest`. (#1241)
   1574 - Move the `go.opentelemetry.io/otel/api/metric/metrictest` package into `go.opentelemetry.io/oteltest` as part of #964. (#1252)
   1575 - Move the `go.opentelemetry.io/otel/api/metric` package into `go.opentelemetry.io/otel/metric` as part of #1303. (#1321)
   1576 - Move the `go.opentelemetry.io/otel/api/metric/registry` package into `go.opentelemetry.io/otel/metric/registry` as a part of #1303. (#1316)
   1577 - Move the `Number` type (together with related functions) from `go.opentelemetry.io/otel/api/metric` package into `go.opentelemetry.io/otel/metric/number` as a part of #1303. (#1316)
   1578 - The function signature of the Span `AddEvent` method in `go.opentelemetry.io/otel` is updated to no longer take an unused context and instead take a required name and a variable number of `EventOption`s. (#1254)
   1579 - The function signature of the Span `RecordError` method in `go.opentelemetry.io/otel` is updated to no longer take an unused context and instead take a required error value and a variable number of `EventOption`s. (#1254)
   1580 - Move the `go.opentelemetry.io/otel/api/global` package to `go.opentelemetry.io/otel`. (#1262) (#1330)
   1581 - Move the `Version` function from `go.opentelemetry.io/otel/sdk` to `go.opentelemetry.io/otel`. (#1330)
   1582 - Rename correlation context header from `"otcorrelations"` to `"baggage"` to match the OpenTelemetry specification. (#1267)
   1583 - Fix `Code.UnmarshalJSON` to work with valid JSON only. (#1276)
   1584 - The `resource.New()` method changes signature to support builtin attributes and functional options, including `telemetry.sdk.*` and
   1585   `host.name` semantic conventions; the former method is renamed `resource.NewWithAttributes`. (#1235)
   1586 - The Prometheus exporter now exports non-monotonic counters (i.e. `UpDownCounter`s) as gauges. (#1210)
   1587 - Correct the `Span.End` method documentation in the `otel` API to state updates are not allowed on a span after it has ended. (#1310)
   1588 - Updated span collection limits for attribute, event and link counts to 1000 (#1318)
   1589 - Renamed `semconv.HTTPUrlKey` to `semconv.HTTPURLKey`. (#1338)
   1590 
   1591 ### Removed
   1592 
   1593 - The `ErrInvalidHexID`, `ErrInvalidTraceIDLength`, `ErrInvalidSpanIDLength`, `ErrInvalidSpanIDLength`, or `ErrNilSpanID` from the `go.opentelemetry.io/otel` package are unexported now. (#1243)
   1594 - The `AddEventWithTimestamp` method on the `Span` interface in `go.opentelemetry.io/otel` is removed due to its redundancy.
   1595    It is replaced by using the `AddEvent` method with a `WithTimestamp` option. (#1254)
   1596 - The `MockSpan` and `MockTracer` types are removed from `go.opentelemetry.io/otel/oteltest`.
   1597    `Tracer` and `Span` from the same module should be used in their place instead. (#1306)
   1598 - `WorkerCount` option is removed from `go.opentelemetry.io/otel/exporters/otlp`. (#1350)
   1599 - Remove the following labels types: INT32, UINT32, UINT64 and FLOAT32. (#1314)
   1600 
   1601 ### Fixed
   1602 
   1603 - Rename `MergeItererator` to `MergeIterator` in the `go.opentelemetry.io/otel/label` package. (#1244)
   1604 - The `go.opentelemetry.io/otel/api/global` packages global TextMapPropagator now delegates functionality to a globally set delegate for all previously returned propagators. (#1258)
   1605 - Fix condition in `label.Any`. (#1299)
   1606 - Fix global `TracerProvider` to pass options to its configured provider. (#1329)
   1607 - Fix missing handler for `ExactKind` aggregator in OTLP metrics transformer (#1309)
   1608 
   1609 ## [0.13.0] - 2020-10-08
   1610 
   1611 ### Added
   1612 
   1613 - OTLP Metric exporter supports Histogram aggregation. (#1209)
   1614 - The `Code` struct from the `go.opentelemetry.io/otel/codes` package now supports JSON marshaling and unmarshaling as well as implements the `Stringer` interface. (#1214)
   1615 - A Baggage API to implement the OpenTelemetry specification. (#1217)
   1616 - Add Shutdown method to sdk/trace/provider, shutdown processors in the order they were registered. (#1227)
   1617 
   1618 ### Changed
   1619 
   1620 - Set default propagator to no-op propagator. (#1184)
   1621 - The `HTTPSupplier`, `HTTPExtractor`, `HTTPInjector`, and `HTTPPropagator` from the `go.opentelemetry.io/otel/api/propagation` package were replaced with unified `TextMapCarrier` and `TextMapPropagator` in the `go.opentelemetry.io/otel/propagation` package. (#1212) (#1325)
   1622 - The `New` function from the `go.opentelemetry.io/otel/api/propagation` package was replaced with `NewCompositeTextMapPropagator` in the `go.opentelemetry.io/otel` package. (#1212)
   1623 - The status codes of the `go.opentelemetry.io/otel/codes` package have been updated to match the latest OpenTelemetry specification.
   1624    They now are `Unset`, `Error`, and `Ok`.
   1625    They no longer track the gRPC codes. (#1214)
   1626 - The `StatusCode` field of the `SpanData` struct in the `go.opentelemetry.io/otel/sdk/export/trace` package now uses the codes package from this package instead of the gRPC project. (#1214)
   1627 - Move the `go.opentelemetry.io/otel/api/baggage` package into `go.opentelemetry.io/otel/baggage`. (#1217) (#1325)
   1628 - A `Shutdown` method of `SpanProcessor` and all its implementations receives a context and returns an error. (#1264)
   1629 
   1630 ### Fixed
   1631 
   1632 - Copies of data from arrays and slices passed to `go.opentelemetry.io/otel/label.ArrayValue()` are now used in the returned `Value` instead of using the mutable data itself. (#1226)
   1633 
   1634 ### Removed
   1635 
   1636 - The `ExtractHTTP` and `InjectHTTP` functions from the `go.opentelemetry.io/otel/api/propagation` package were removed. (#1212)
   1637 - The `Propagators` interface from the `go.opentelemetry.io/otel/api/propagation` package was removed to conform to the OpenTelemetry specification.
   1638    The explicit `TextMapPropagator` type can be used in its place as this is the `Propagator` type the specification defines. (#1212)
   1639 - The `SetAttribute` method of the `Span` from the `go.opentelemetry.io/otel/api/trace` package was removed given its redundancy with the `SetAttributes` method. (#1216)
   1640 - The internal implementation of Baggage storage is removed in favor of using the new Baggage API functionality. (#1217)
   1641 - Remove duplicate hostname key `HostHostNameKey` in Resource semantic conventions. (#1219)
   1642 - Nested array/slice support has been removed. (#1226)
   1643 
   1644 ## [0.12.0] - 2020-09-24
   1645 
   1646 ### Added
   1647 
   1648 - A `SpanConfigure` function in `go.opentelemetry.io/otel/api/trace` to create a new `SpanConfig` from `SpanOption`s. (#1108)
   1649 - In the `go.opentelemetry.io/otel/api/trace` package, `NewTracerConfig` was added to construct new `TracerConfig`s.
   1650    This addition was made to conform with our project option conventions. (#1155)
   1651 - Instrumentation library information was added to the Zipkin exporter. (#1119)
   1652 - The `SpanProcessor` interface now has a `ForceFlush()` method. (#1166)
   1653 - More semantic conventions for k8s as resource attributes. (#1167)
   1654 
   1655 ### Changed
   1656 
   1657 - Add reconnecting udp connection type to Jaeger exporter.
   1658    This change adds a new optional implementation of the udp conn interface used to detect changes to an agent's host dns record.
   1659    It then adopts the new destination address to ensure the exporter doesn't get stuck. This change was ported from jaegertracing/jaeger-client-go#520. (#1063)
   1660 - Replace `StartOption` and `EndOption` in `go.opentelemetry.io/otel/api/trace` with `SpanOption`.
   1661    This change is matched by replacing the `StartConfig` and `EndConfig` with a unified `SpanConfig`. (#1108)
   1662 - Replace the `LinkedTo` span option in `go.opentelemetry.io/otel/api/trace` with `WithLinks`.
   1663    This is be more consistent with our other option patterns, i.e. passing the item to be configured directly instead of its component parts, and provides a cleaner function signature. (#1108)
   1664 - The `go.opentelemetry.io/otel/api/trace` `TracerOption` was changed to an interface to conform to project option conventions. (#1109)
   1665 - Move the `B3` and `TraceContext` from within the `go.opentelemetry.io/otel/api/trace` package to their own `go.opentelemetry.io/otel/propagators` package.
   1666     This removal of the propagators is reflective of the OpenTelemetry specification for these propagators as well as cleans up the `go.opentelemetry.io/otel/api/trace` API. (#1118)
   1667 - Rename Jaeger tags used for instrumentation library information to reflect changes in OpenTelemetry specification. (#1119)
   1668 - Rename `ProbabilitySampler` to `TraceIDRatioBased` and change semantics to ignore parent span sampling status. (#1115)
   1669 - Move `tools` package under `internal`. (#1141)
   1670 - Move `go.opentelemetry.io/otel/api/correlation` package to `go.opentelemetry.io/otel/api/baggage`. (#1142)
   1671    The `correlation.CorrelationContext` propagator has been renamed `baggage.Baggage`.  Other exported functions and types are unchanged.
   1672 - Rename `ParentOrElse` sampler to `ParentBased` and allow setting samplers depending on parent span. (#1153)
   1673 - In the `go.opentelemetry.io/otel/api/trace` package, `SpanConfigure` was renamed to `NewSpanConfig`. (#1155)
   1674 - Change `dependabot.yml` to add a `Skip Changelog` label to dependabot-sourced PRs. (#1161)
   1675 - The [configuration style guide](https://github.com/open-telemetry/opentelemetry-go/blob/master/CONTRIBUTING.md#config) has been updated to
   1676    recommend the use of `newConfig()` instead of `configure()`. (#1163)
   1677 - The `otlp.Config` type has been unexported and changed to `otlp.config`, along with its initializer. (#1163)
   1678 - Ensure exported interface types include parameter names and update the
   1679    Style Guide to reflect this styling rule. (#1172)
   1680 - Don't consider unset environment variable for resource detection to be an error. (#1170)
   1681 - Rename `go.opentelemetry.io/otel/api/metric.ConfigureInstrument` to `NewInstrumentConfig` and
   1682   `go.opentelemetry.io/otel/api/metric.ConfigureMeter` to `NewMeterConfig`.
   1683 - ValueObserver instruments use LastValue aggregator by default. (#1165)
   1684 - OTLP Metric exporter supports LastValue aggregation. (#1165)
   1685 - Move the `go.opentelemetry.io/otel/api/unit` package to `go.opentelemetry.io/otel/unit`. (#1185)
   1686 - Rename `Provider` to `MeterProvider` in the `go.opentelemetry.io/otel/api/metric` package. (#1190)
   1687 - Rename `NoopProvider` to `NoopMeterProvider` in the `go.opentelemetry.io/otel/api/metric` package. (#1190)
   1688 - Rename `NewProvider` to `NewMeterProvider` in the `go.opentelemetry.io/otel/api/metric/metrictest` package. (#1190)
   1689 - Rename `Provider` to `MeterProvider` in the `go.opentelemetry.io/otel/api/metric/registry` package. (#1190)
   1690 - Rename `NewProvider` to `NewMeterProvider` in the `go.opentelemetry.io/otel/api/metri/registryc` package. (#1190)
   1691 - Rename `Provider` to `TracerProvider` in the `go.opentelemetry.io/otel/api/trace` package. (#1190)
   1692 - Rename `NoopProvider` to `NoopTracerProvider` in the `go.opentelemetry.io/otel/api/trace` package. (#1190)
   1693 - Rename `Provider` to `TracerProvider` in the `go.opentelemetry.io/otel/api/trace/tracetest` package. (#1190)
   1694 - Rename `NewProvider` to `NewTracerProvider` in the `go.opentelemetry.io/otel/api/trace/tracetest` package. (#1190)
   1695 - Rename `WrapperProvider` to `WrapperTracerProvider` in the `go.opentelemetry.io/otel/bridge/opentracing` package. (#1190)
   1696 - Rename `NewWrapperProvider` to `NewWrapperTracerProvider` in the `go.opentelemetry.io/otel/bridge/opentracing` package. (#1190)
   1697 - Rename `Provider` method of the pull controller to `MeterProvider` in the `go.opentelemetry.io/otel/sdk/metric/controller/pull` package. (#1190)
   1698 - Rename `Provider` method of the push controller to `MeterProvider` in the `go.opentelemetry.io/otel/sdk/metric/controller/push` package. (#1190)
   1699 - Rename `ProviderOptions` to `TracerProviderConfig` in the `go.opentelemetry.io/otel/sdk/trace` package. (#1190)
   1700 - Rename `ProviderOption` to `TracerProviderOption` in the `go.opentelemetry.io/otel/sdk/trace` package. (#1190)
   1701 - Rename `Provider` to `TracerProvider` in the `go.opentelemetry.io/otel/sdk/trace` package. (#1190)
   1702 - Rename `NewProvider` to `NewTracerProvider` in the `go.opentelemetry.io/otel/sdk/trace` package. (#1190)
   1703 - Renamed `SamplingDecision` values to comply with OpenTelemetry specification change. (#1192)
   1704 - Renamed Zipkin attribute names from `ot.status_code & ot.status_description` to `otel.status_code & otel.status_description`. (#1201)
   1705 - The default SDK now invokes registered `SpanProcessor`s in the order they were registered with the `TracerProvider`. (#1195)
   1706 - Add test of spans being processed by the `SpanProcessor`s in the order they were registered. (#1203)
   1707 
   1708 ### Removed
   1709 
   1710 - Remove the B3 propagator from `go.opentelemetry.io/otel/propagators`. It is now located in the
   1711    `go.opentelemetry.io/contrib/propagators/` module. (#1191)
   1712 - Remove the semantic convention for HTTP status text, `HTTPStatusTextKey` from package `go.opentelemetry.io/otel/semconv`. (#1194)
   1713 
   1714 ### Fixed
   1715 
   1716 - Zipkin example no longer mentions `ParentSampler`, corrected to `ParentBased`. (#1171)
   1717 - Fix missing shutdown processor in otel-collector example. (#1186)
   1718 - Fix missing shutdown processor in basic and namedtracer examples. (#1197)
   1719 
   1720 ## [0.11.0] - 2020-08-24
   1721 
   1722 ### Added
   1723 
   1724 - Support for exporting array-valued attributes via OTLP. (#992)
   1725 - `Noop` and `InMemory` `SpanBatcher` implementations to help with testing integrations. (#994)
   1726 - Support for filtering metric label sets. (#1047)
   1727 - A dimensionality-reducing metric Processor. (#1057)
   1728 - Integration tests for more OTel Collector Attribute types. (#1062)
   1729 - A new `WithSpanProcessor` `ProviderOption` is added to the `go.opentelemetry.io/otel/sdk/trace` package to create a `Provider` and automatically register the `SpanProcessor`. (#1078)
   1730 
   1731 ### Changed
   1732 
   1733 - Rename `sdk/metric/processor/test` to `sdk/metric/processor/processortest`. (#1049)
   1734 - Rename `sdk/metric/controller/test` to `sdk/metric/controller/controllertest`. (#1049)
   1735 - Rename `api/testharness` to `api/apitest`. (#1049)
   1736 - Rename `api/trace/testtrace` to `api/trace/tracetest`. (#1049)
   1737 - Change Metric Processor to merge multiple observations. (#1024)
   1738 - The `go.opentelemetry.io/otel/bridge/opentracing` bridge package has been made into its own module.
   1739    This removes the package dependencies of this bridge from the rest of the OpenTelemetry based project. (#1038)
   1740 - Renamed `go.opentelemetry.io/otel/api/standard` package to `go.opentelemetry.io/otel/semconv` to avoid the ambiguous and generic name `standard` and better describe the package as containing OpenTelemetry semantic conventions. (#1016)
   1741 - The environment variable used for resource detection has been changed from `OTEL_RESOURCE_LABELS` to `OTEL_RESOURCE_ATTRIBUTES` (#1042)
   1742 - Replace `WithSyncer` with `WithBatcher` in examples. (#1044)
   1743 - Replace the `google.golang.org/grpc/codes` dependency in the API with an equivalent `go.opentelemetry.io/otel/codes` package. (#1046)
   1744 - Merge the `go.opentelemetry.io/otel/api/label` and `go.opentelemetry.io/otel/api/kv` into the new `go.opentelemetry.io/otel/label` package. (#1060)
   1745 - Unify Callback Function Naming.
   1746    Rename `*Callback` with `*Func`. (#1061)
   1747 - CI builds validate against last two versions of Go, dropping 1.13 and adding 1.15. (#1064)
   1748 - The `go.opentelemetry.io/otel/sdk/export/trace` interfaces `SpanSyncer` and `SpanBatcher` have been replaced with a specification compliant `Exporter` interface.
   1749    This interface still supports the export of `SpanData`, but only as a slice.
   1750    Implementation are also required now to return any error from `ExportSpans` if one occurs as well as implement a `Shutdown` method for exporter clean-up. (#1078)
   1751 - The `go.opentelemetry.io/otel/sdk/trace` `NewBatchSpanProcessor` function no longer returns an error.
   1752    If a `nil` exporter is passed as an argument to this function, instead of it returning an error, it now returns a `BatchSpanProcessor` that handles the export of `SpanData` by not taking any action. (#1078)
   1753 - The `go.opentelemetry.io/otel/sdk/trace` `NewProvider` function to create a `Provider` no longer returns an error, instead only a `*Provider`.
   1754    This change is related to `NewBatchSpanProcessor` not returning an error which was the only error this function would return. (#1078)
   1755 
   1756 ### Removed
   1757 
   1758 - Duplicate, unused API sampler interface. (#999)
   1759    Use the [`Sampler` interface](https://github.com/open-telemetry/opentelemetry-go/blob/v0.11.0/sdk/trace/sampling.go) provided by the SDK instead.
   1760 - The `grpctrace` instrumentation was moved to the `go.opentelemetry.io/contrib` repository and out of this repository.
   1761    This move includes moving the `grpc` example to the `go.opentelemetry.io/contrib` as well. (#1027)
   1762 - The `WithSpan` method of the `Tracer` interface.
   1763    The functionality this method provided was limited compared to what a user can provide themselves.
   1764    It was removed with the understanding that if there is sufficient user need it can be added back based on actual user usage. (#1043)
   1765 - The `RegisterSpanProcessor` and `UnregisterSpanProcessor` functions.
   1766    These were holdovers from an approach prior to the TracerProvider design. They were not used anymore. (#1077)
   1767 - The `oterror` package. (#1026)
   1768 - The `othttp` and `httptrace` instrumentations were moved to `go.opentelemetry.io/contrib`. (#1032)
   1769 
   1770 ### Fixed
   1771 
   1772 - The `semconv.HTTPServerMetricAttributesFromHTTPRequest()` function no longer generates the high-cardinality `http.request.content.length` label. (#1031)
   1773 - Correct instrumentation version tag in Jaeger exporter. (#1037)
   1774 - The SDK span will now set an error event if the `End` method is called during a panic (i.e. it was deferred). (#1043)
   1775 - Move internally generated protobuf code from the `go.opentelemetry.io/otel` to the OTLP exporter to reduce dependency overhead. (#1050)
   1776 - The `otel-collector` example referenced outdated collector processors. (#1006)
   1777 
   1778 ## [0.10.0] - 2020-07-29
   1779 
   1780 This release migrates the default OpenTelemetry SDK into its own Go module, decoupling the SDK from the API and reducing dependencies for instrumentation packages.
   1781 
   1782 ### Added
   1783 
   1784 - The Zipkin exporter now has `NewExportPipeline` and `InstallNewPipeline` constructor functions to match the common pattern.
   1785     These function build a new exporter with default SDK options and register the exporter with the `global` package respectively. (#944)
   1786 - Add propagator option for gRPC instrumentation. (#986)
   1787 - The `testtrace` package now tracks the `trace.SpanKind` for each span. (#987)
   1788 
   1789 ### Changed
   1790 
   1791 - Replace the `RegisterGlobal` `Option` in the Jaeger exporter with an `InstallNewPipeline` constructor function.
   1792    This matches the other exporter constructor patterns and will register a new exporter after building it with default configuration. (#944)
   1793 - The trace (`go.opentelemetry.io/otel/exporters/trace/stdout`) and metric (`go.opentelemetry.io/otel/exporters/metric/stdout`) `stdout` exporters are now merged into a single exporter at `go.opentelemetry.io/otel/exporters/stdout`.
   1794    This new exporter was made into its own Go module to follow the pattern of all exporters and decouple it from the `go.opentelemetry.io/otel` module. (#956, #963)
   1795 - Move the `go.opentelemetry.io/otel/exporters/test` test package to `go.opentelemetry.io/otel/sdk/export/metric/metrictest`. (#962)
   1796 - The `go.opentelemetry.io/otel/api/kv/value` package was merged into the parent `go.opentelemetry.io/otel/api/kv` package. (#968)
   1797   - `value.Bool` was replaced with `kv.BoolValue`.
   1798   - `value.Int64` was replaced with `kv.Int64Value`.
   1799   - `value.Uint64` was replaced with `kv.Uint64Value`.
   1800   - `value.Float64` was replaced with `kv.Float64Value`.
   1801   - `value.Int32` was replaced with `kv.Int32Value`.
   1802   - `value.Uint32` was replaced with `kv.Uint32Value`.
   1803   - `value.Float32` was replaced with `kv.Float32Value`.
   1804   - `value.String` was replaced with `kv.StringValue`.
   1805   - `value.Int` was replaced with `kv.IntValue`.
   1806   - `value.Uint` was replaced with `kv.UintValue`.
   1807   - `value.Array` was replaced with `kv.ArrayValue`.
   1808 - Rename `Infer` to `Any` in the `go.opentelemetry.io/otel/api/kv` package. (#972)
   1809 - Change `othttp` to use the `httpsnoop` package to wrap the `ResponseWriter` so that optional interfaces (`http.Hijacker`, `http.Flusher`, etc.) that are implemented by the original `ResponseWriter`are also implemented by the wrapped `ResponseWriter`. (#979)
   1810 - Rename `go.opentelemetry.io/otel/sdk/metric/aggregator/test` package to `go.opentelemetry.io/otel/sdk/metric/aggregator/aggregatortest`. (#980)
   1811 - Make the SDK into its own Go module called `go.opentelemetry.io/otel/sdk`. (#985)
   1812 - Changed the default trace `Sampler` from `AlwaysOn` to `ParentOrElse(AlwaysOn)`. (#989)
   1813 
   1814 ### Removed
   1815 
   1816 - The `IndexedAttribute` function from the `go.opentelemetry.io/otel/api/label` package was removed in favor of `IndexedLabel` which it was synonymous with. (#970)
   1817 
   1818 ### Fixed
   1819 
   1820 - Bump github.com/golangci/golangci-lint from 1.28.3 to 1.29.0 in /tools. (#953)
   1821 - Bump github.com/google/go-cmp from 0.5.0 to 0.5.1. (#957)
   1822 - Use `global.Handle` for span export errors in the OTLP exporter. (#946)
   1823 - Correct Go language formatting in the README documentation. (#961)
   1824 - Remove default SDK dependencies from the `go.opentelemetry.io/otel/api` package. (#977)
   1825 - Remove default SDK dependencies from the `go.opentelemetry.io/otel/instrumentation` package. (#983)
   1826 - Move documented examples for `go.opentelemetry.io/otel/instrumentation/grpctrace` interceptors into Go example tests. (#984)
   1827 
   1828 ## [0.9.0] - 2020-07-20
   1829 
   1830 ### Added
   1831 
   1832 - A new Resource Detector interface is included to allow resources to be automatically detected and included. (#939)
   1833 - A Detector to automatically detect resources from an environment variable. (#939)
   1834 - Github action to generate protobuf Go bindings locally in `internal/opentelemetry-proto-gen`. (#938)
   1835 - OTLP .proto files from `open-telemetry/opentelemetry-proto` imported as a git submodule under `internal/opentelemetry-proto`.
   1836    References to `github.com/open-telemetry/opentelemetry-proto` changed to `go.opentelemetry.io/otel/internal/opentelemetry-proto-gen`. (#942)
   1837 
   1838 ### Changed
   1839 
   1840 - Non-nil value `struct`s for key-value pairs will be marshalled using JSON rather than `Sprintf`. (#948)
   1841 
   1842 ### Removed
   1843 
   1844 - Removed dependency on `github.com/open-telemetry/opentelemetry-collector`. (#943)
   1845 
   1846 ## [0.8.0] - 2020-07-09
   1847 
   1848 ### Added
   1849 
   1850 - The `B3Encoding` type to represent the B3 encoding(s) the B3 propagator can inject.
   1851    A value for HTTP supported encodings (Multiple Header: `MultipleHeader`, Single Header: `SingleHeader`) are included. (#882)
   1852 - The `FlagsDeferred` trace flag to indicate if the trace sampling decision has been deferred. (#882)
   1853 - The `FlagsDebug` trace flag to indicate if the trace is a debug trace. (#882)
   1854 - Add `peer.service` semantic attribute. (#898)
   1855 - Add database-specific semantic attributes. (#899)
   1856 - Add semantic convention for `faas.coldstart` and `container.id`. (#909)
   1857 - Add http content size semantic conventions. (#905)
   1858 - Include `http.request_content_length` in HTTP request basic attributes. (#905)
   1859 - Add semantic conventions for operating system process resource attribute keys. (#919)
   1860 - The Jaeger exporter now has a `WithBatchMaxCount` option to specify the maximum number of spans sent in a batch. (#931)
   1861 
   1862 ### Changed
   1863 
   1864 - Update `CONTRIBUTING.md` to ask for updates to `CHANGELOG.md` with each pull request. (#879)
   1865 - Use lowercase header names for B3 Multiple Headers. (#881)
   1866 - The B3 propagator `SingleHeader` field has been replaced with `InjectEncoding`.
   1867    This new field can be set to combinations of the `B3Encoding` bitmasks and will inject trace information in these encodings.
   1868    If no encoding is set, the propagator will default to `MultipleHeader` encoding. (#882)
   1869 - The B3 propagator now extracts from either HTTP encoding of B3 (Single Header or Multiple Header) based on what is contained in the header.
   1870    Preference is given to Single Header encoding with Multiple Header being the fallback if Single Header is not found or is invalid.
   1871    This behavior change is made to dynamically support all correctly encoded traces received instead of having to guess the expected encoding prior to receiving. (#882)
   1872 - Extend semantic conventions for RPC. (#900)
   1873 - To match constant naming conventions in the `api/standard` package, the `FaaS*` key names are appended with a suffix of `Key`. (#920)
   1874   - `"api/standard".FaaSName` -> `FaaSNameKey`
   1875   - `"api/standard".FaaSID` -> `FaaSIDKey`
   1876   - `"api/standard".FaaSVersion` -> `FaaSVersionKey`
   1877   - `"api/standard".FaaSInstance` -> `FaaSInstanceKey`
   1878 
   1879 ### Removed
   1880 
   1881 - The `FlagsUnused` trace flag is removed.
   1882    The purpose of this flag was to act as the inverse of `FlagsSampled`, the inverse of `FlagsSampled` is used instead. (#882)
   1883 - The B3 header constants (`B3SingleHeader`, `B3DebugFlagHeader`, `B3TraceIDHeader`, `B3SpanIDHeader`, `B3SampledHeader`, `B3ParentSpanIDHeader`) are removed.
   1884    If B3 header keys are needed [the authoritative OpenZipkin package constants](https://pkg.go.dev/github.com/openzipkin/zipkin-go@v0.2.2/propagation/b3?tab=doc#pkg-constants) should be used instead. (#882)
   1885 
   1886 ### Fixed
   1887 
   1888 - The B3 Single Header name is now correctly `b3` instead of the previous `X-B3`. (#881)
   1889 - The B3 propagator now correctly supports sampling only values (`b3: 0`, `b3: 1`, or `b3: d`) for a Single B3 Header. (#882)
   1890 - The B3 propagator now propagates the debug flag.
   1891    This removes the behavior of changing the debug flag into a set sampling bit.
   1892    Instead, this now follow the B3 specification and omits the `X-B3-Sampling` header. (#882)
   1893 - The B3 propagator now tracks "unset" sampling state (meaning "defer the decision") and does not set the `X-B3-Sampling` header when injecting. (#882)
   1894 - Bump github.com/itchyny/gojq from 0.10.3 to 0.10.4 in /tools. (#883)
   1895 - Bump github.com/opentracing/opentracing-go from v1.1.1-0.20190913142402-a7454ce5950e to v1.2.0. (#885)
   1896 - The tracing time conversion for OTLP spans is now correctly set to `UnixNano`. (#896)
   1897 - Ensure span status is not set to `Unknown` when no HTTP status code is provided as it is assumed to be `200 OK`. (#908)
   1898 - Ensure `httptrace.clientTracer` closes `http.headers` span. (#912)
   1899 - Prometheus exporter will not apply stale updates or forget inactive metrics. (#903)
   1900 - Add test for api.standard `HTTPClientAttributesFromHTTPRequest`. (#905)
   1901 - Bump github.com/golangci/golangci-lint from 1.27.0 to 1.28.1 in /tools. (#901, #913)
   1902 - Update otel-colector example to use the v0.5.0 collector. (#915)
   1903 - The `grpctrace` instrumentation uses a span name conforming to the OpenTelemetry semantic conventions (does not contain a leading slash (`/`)). (#922)
   1904 - The `grpctrace` instrumentation includes an `rpc.method` attribute now set to the gRPC method name. (#900, #922)
   1905 - The `grpctrace` instrumentation `rpc.service` attribute now contains the package name if one exists.
   1906    This is in accordance with OpenTelemetry semantic conventions. (#922)
   1907 - Correlation Context extractor will no longer insert an empty map into the returned context when no valid values are extracted. (#923)
   1908 - Bump google.golang.org/api from 0.28.0 to 0.29.0 in /exporters/trace/jaeger. (#925)
   1909 - Bump github.com/itchyny/gojq from 0.10.4 to 0.11.0 in /tools. (#926)
   1910 - Bump github.com/golangci/golangci-lint from 1.28.1 to 1.28.2 in /tools. (#930)
   1911 
   1912 ## [0.7.0] - 2020-06-26
   1913 
   1914 This release implements the v0.5.0 version of the OpenTelemetry specification.
   1915 
   1916 ### Added
   1917 
   1918 - The othttp instrumentation now includes default metrics. (#861)
   1919 - This CHANGELOG file to track all changes in the project going forward.
   1920 - Support for array type attributes. (#798)
   1921 - Apply transitive dependabot go.mod dependency updates as part of a new automatic Github workflow. (#844)
   1922 - Timestamps are now passed to exporters for each export. (#835)
   1923 - Add new `Accumulation` type to metric SDK to transport telemetry from `Accumulator`s to `Processor`s.
   1924    This replaces the prior `Record` `struct` use for this purpose. (#835)
   1925 - New dependabot integration to automate package upgrades. (#814)
   1926 - `Meter` and `Tracer` implementations accept instrumentation version version as an optional argument.
   1927    This instrumentation version is passed on to exporters. (#811) (#805) (#802)
   1928 - The OTLP exporter includes the instrumentation version in telemetry it exports. (#811)
   1929 - Environment variables for Jaeger exporter are supported. (#796)
   1930 - New `aggregation.Kind` in the export metric API. (#808)
   1931 - New example that uses OTLP and the collector. (#790)
   1932 - Handle errors in the span `SetName` during span initialization. (#791)
   1933 - Default service config to enable retries for retry-able failed requests in the OTLP exporter and an option to override this default. (#777)
   1934 - New `go.opentelemetry.io/otel/api/oterror` package to uniformly support error handling and definitions for the project. (#778)
   1935 - New `global` default implementation of the `go.opentelemetry.io/otel/api/oterror.Handler` interface to be used to handle errors prior to an user defined `Handler`.
   1936    There is also functionality for the user to register their `Handler` as well as a convenience function `Handle` to handle an error with this global `Handler`(#778)
   1937 - Options to specify propagators for httptrace and grpctrace instrumentation. (#784)
   1938 - The required `application/json` header for the Zipkin exporter is included in all exports. (#774)
   1939 - Integrate HTTP semantics helpers from the contrib repository into the `api/standard` package. #769
   1940 
   1941 ### Changed
   1942 
   1943 - Rename `Integrator` to `Processor` in the metric SDK. (#863)
   1944 - Rename `AggregationSelector` to `AggregatorSelector`. (#859)
   1945 - Rename `SynchronizedCopy` to `SynchronizedMove`. (#858)
   1946 - Rename `simple` integrator to `basic` integrator. (#857)
   1947 - Merge otlp collector examples. (#841)
   1948 - Change the metric SDK to support cumulative, delta, and pass-through exporters directly.
   1949    With these changes, cumulative and delta specific exporters are able to request the correct kind of aggregation from the SDK. (#840)
   1950 - The `Aggregator.Checkpoint` API is renamed to `SynchronizedCopy` and adds an argument, a different `Aggregator` into which the copy is stored. (#812)
   1951 - The `export.Aggregator` contract is that `Update()` and `SynchronizedCopy()` are synchronized with each other.
   1952    All the aggregation interfaces (`Sum`, `LastValue`, ...) are not meant to be synchronized, as the caller is expected to synchronize aggregators at a higher level after the `Accumulator`.
   1953    Some of the `Aggregators` used unnecessary locking and that has been cleaned up. (#812)
   1954 - Use of `metric.Number` was replaced by `int64` now that we use `sync.Mutex` in the `MinMaxSumCount` and `Histogram` `Aggregators`. (#812)
   1955 - Replace `AlwaysParentSample` with `ParentSample(fallback)` to match the OpenTelemetry v0.5.0 specification. (#810)
   1956 - Rename `sdk/export/metric/aggregator` to `sdk/export/metric/aggregation`. #808
   1957 - Send configured headers with every request in the OTLP exporter, instead of just on connection creation. (#806)
   1958 - Update error handling for any one off error handlers, replacing, instead, with the `global.Handle` function. (#791)
   1959 - Rename `plugin` directory to `instrumentation` to match the OpenTelemetry specification. (#779)
   1960 - Makes the argument order to Histogram and DDSketch `New()` consistent. (#781)
   1961 
   1962 ### Removed
   1963 
   1964 - `Uint64NumberKind` and related functions from the API. (#864)
   1965 - Context arguments from `Aggregator.Checkpoint` and `Integrator.Process` as they were unused. (#803)
   1966 - `SpanID` is no longer included in parameters for sampling decision to match the OpenTelemetry specification. (#775)
   1967 
   1968 ### Fixed
   1969 
   1970 - Upgrade OTLP exporter to opentelemetry-proto matching the opentelemetry-collector v0.4.0 release. (#866)
   1971 - Allow changes to `go.sum` and `go.mod` when running dependabot tidy-up. (#871)
   1972 - Bump github.com/stretchr/testify from 1.4.0 to 1.6.1. (#824)
   1973 - Bump github.com/prometheus/client_golang from 1.7.0 to 1.7.1 in /exporters/metric/prometheus. (#867)
   1974 - Bump google.golang.org/grpc from 1.29.1 to 1.30.0 in /exporters/trace/jaeger. (#853)
   1975 - Bump google.golang.org/grpc from 1.29.1 to 1.30.0 in /exporters/trace/zipkin. (#854)
   1976 - Bumps github.com/golang/protobuf from 1.3.2 to 1.4.2 (#848)
   1977 - Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/otlp (#817)
   1978 - Bump github.com/golangci/golangci-lint from 1.25.1 to 1.27.0 in /tools (#828)
   1979 - Bump github.com/prometheus/client_golang from 1.5.0 to 1.7.0 in /exporters/metric/prometheus (#838)
   1980 - Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/trace/jaeger (#829)
   1981 - Bump github.com/benbjohnson/clock from 1.0.0 to 1.0.3 (#815)
   1982 - Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/trace/zipkin (#823)
   1983 - Bump github.com/itchyny/gojq from 0.10.1 to 0.10.3 in /tools (#830)
   1984 - Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/metric/prometheus (#822)
   1985 - Bump google.golang.org/grpc from 1.27.1 to 1.29.1 in /exporters/trace/zipkin (#820)
   1986 - Bump google.golang.org/grpc from 1.27.1 to 1.29.1 in /exporters/trace/jaeger (#831)
   1987 - Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 (#836)
   1988 - Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 in /exporters/trace/jaeger (#837)
   1989 - Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 in /exporters/otlp (#839)
   1990 - Bump google.golang.org/api from 0.20.0 to 0.28.0 in /exporters/trace/jaeger (#843)
   1991 - Set span status from HTTP status code in the othttp instrumentation. (#832)
   1992 - Fixed typo in push controller comment. (#834)
   1993 - The `Aggregator` testing has been updated and cleaned. (#812)
   1994 - `metric.Number(0)` expressions are replaced by `0` where possible. (#812)
   1995 - Fixed `global` `handler_test.go` test failure. #804
   1996 - Fixed `BatchSpanProcessor.Shutdown` to wait until all spans are processed. (#766)
   1997 - Fixed OTLP example's accidental early close of exporter. (#807)
   1998 - Ensure zipkin exporter reads and closes response body. (#788)
   1999 - Update instrumentation to use `api/standard` keys instead of custom keys. (#782)
   2000 - Clean up tools and RELEASING documentation. (#762)
   2001 
   2002 ## [0.6.0] - 2020-05-21
   2003 
   2004 ### Added
   2005 
   2006 - Support for `Resource`s in the prometheus exporter. (#757)
   2007 - New pull controller. (#751)
   2008 - New `UpDownSumObserver` instrument. (#750)
   2009 - OpenTelemetry collector demo. (#711)
   2010 - New `SumObserver` instrument. (#747)
   2011 - New `UpDownCounter` instrument. (#745)
   2012 - New timeout `Option` and configuration function `WithTimeout` to the push controller. (#742)
   2013 - New `api/standards` package to implement semantic conventions and standard key-value generation. (#731)
   2014 
   2015 ### Changed
   2016 
   2017 - Rename `Register*` functions in the metric API to `New*` for all `Observer` instruments. (#761)
   2018 - Use `[]float64` for histogram boundaries, not `[]metric.Number`. (#758)
   2019 - Change OTLP example to use exporter as a trace `Syncer` instead of as an unneeded `Batcher`. (#756)
   2020 - Replace `WithResourceAttributes()` with `WithResource()` in the trace SDK. (#754)
   2021 - The prometheus exporter now uses the new pull controller. (#751)
   2022 - Rename `ScheduleDelayMillis` to `BatchTimeout` in the trace `BatchSpanProcessor`.(#752)
   2023 - Support use of synchronous instruments in asynchronous callbacks (#725)
   2024 - Move `Resource` from the `Export` method parameter into the metric export `Record`. (#739)
   2025 - Rename `Observer` instrument to `ValueObserver`. (#734)
   2026 - The push controller now has a method (`Provider()`) to return a `metric.Provider` instead of the old `Meter` method that acted as a `metric.Provider`. (#738)
   2027 - Replace `Measure` instrument by `ValueRecorder` instrument. (#732)
   2028 - Rename correlation context header from `"Correlation-Context"` to `"otcorrelations"` to match the OpenTelemetry specification. (#727)
   2029 
   2030 ### Fixed
   2031 
   2032 - Ensure gRPC `ClientStream` override methods do not panic in grpctrace package. (#755)
   2033 - Disable parts of `BatchSpanProcessor` test until a fix is found. (#743)
   2034 - Fix `string` case in `kv` `Infer` function. (#746)
   2035 - Fix panic in grpctrace client interceptors. (#740)
   2036 - Refactor the `api/metrics` push controller and add `CheckpointSet` synchronization. (#737)
   2037 - Rewrite span batch process queue batching logic. (#719)
   2038 - Remove the push controller named Meter map. (#738)
   2039 - Fix Histogram aggregator initial state (fix #735). (#736)
   2040 - Ensure golang alpine image is running `golang-1.14` for examples. (#733)
   2041 - Added test for grpctrace `UnaryInterceptorClient`. (#695)
   2042 - Rearrange `api/metric` code layout. (#724)
   2043 
   2044 ## [0.5.0] - 2020-05-13
   2045 
   2046 ### Added
   2047 
   2048 - Batch `Observer` callback support. (#717)
   2049 - Alias `api` types to root package of project. (#696)
   2050 - Create basic `othttp.Transport` for simple client instrumentation. (#678)
   2051 - `SetAttribute(string, interface{})` to the trace API. (#674)
   2052 - Jaeger exporter option that allows user to specify custom http client. (#671)
   2053 - `Stringer` and `Infer` methods to `key`s. (#662)
   2054 
   2055 ### Changed
   2056 
   2057 - Rename `NewKey` in the `kv` package to just `Key`. (#721)
   2058 - Move `core` and `key` to `kv` package. (#720)
   2059 - Make the metric API `Meter` a `struct` so the abstract `MeterImpl` can be passed and simplify implementation. (#709)
   2060 - Rename SDK `Batcher` to `Integrator` to match draft OpenTelemetry SDK specification. (#710)
   2061 - Rename SDK `Ungrouped` integrator to `simple.Integrator` to match draft OpenTelemetry SDK specification. (#710)
   2062 - Rename SDK `SDK` `struct` to `Accumulator` to match draft OpenTelemetry SDK specification. (#710)
   2063 - Move `Number` from `core` to `api/metric` package. (#706)
   2064 - Move `SpanContext` from `core` to `trace` package. (#692)
   2065 - Change traceparent header from `Traceparent` to `traceparent` to implement the W3C specification. (#681)
   2066 
   2067 ### Fixed
   2068 
   2069 - Update tooling to run generators in all submodules. (#705)
   2070 - gRPC interceptor regexp to match methods without a service name. (#683)
   2071 - Use a `const` for padding 64-bit B3 trace IDs. (#701)
   2072 - Update `mockZipkin` listen address from `:0` to `127.0.0.1:0`. (#700)
   2073 - Left-pad 64-bit B3 trace IDs with zero. (#698)
   2074 - Propagate at least the first W3C tracestate header. (#694)
   2075 - Remove internal `StateLocker` implementation. (#688)
   2076 - Increase instance size CI system uses. (#690)
   2077 - Add a `key` benchmark and use reflection in `key.Infer()`. (#679)
   2078 - Fix internal `global` test by using `global.Meter` with `RecordBatch()`. (#680)
   2079 - Reimplement histogram using mutex instead of `StateLocker`. (#669)
   2080 - Switch `MinMaxSumCount` to a mutex lock implementation instead of `StateLocker`. (#667)
   2081 - Update documentation to not include any references to `WithKeys`. (#672)
   2082 - Correct misspelling. (#668)
   2083 - Fix clobbering of the span context if extraction fails. (#656)
   2084 - Bump `golangci-lint` and work around the corrupting bug. (#666) (#670)
   2085 
   2086 ## [0.4.3] - 2020-04-24
   2087 
   2088 ### Added
   2089 
   2090 - `Dockerfile` and `docker-compose.yml` to run example code. (#635)
   2091 - New `grpctrace` package that provides gRPC client and server interceptors for both unary and stream connections. (#621)
   2092 - New `api/label` package, providing common label set implementation. (#651)
   2093 - Support for JSON marshaling of `Resources`. (#654)
   2094 - `TraceID` and `SpanID` implementations for `Stringer` interface. (#642)
   2095 - `RemoteAddrKey` in the othttp plugin to include the HTTP client address in top-level spans. (#627)
   2096 - `WithSpanFormatter` option to the othttp plugin. (#617)
   2097 - Updated README to include section for compatible libraries and include reference to the contrib repository. (#612)
   2098 - The prometheus exporter now supports exporting histograms. (#601)
   2099 - A `String` method to the `Resource` to return a hashable identifier for a now unique resource. (#613)
   2100 - An `Iter` method to the `Resource` to return an array `AttributeIterator`. (#613)
   2101 - An `Equal` method to the `Resource` test the equivalence of resources. (#613)
   2102 - An iterable structure (`AttributeIterator`) for `Resource` attributes.
   2103 
   2104 ### Changed
   2105 
   2106 - zipkin export's `NewExporter` now requires a `serviceName` argument to ensure this needed values is provided. (#644)
   2107 - Pass `Resources` through the metrics export pipeline. (#659)
   2108 
   2109 ### Removed
   2110 
   2111 - `WithKeys` option from the metric API. (#639)
   2112 
   2113 ### Fixed
   2114 
   2115 - Use the `label.Set.Equivalent` value instead of an encoding in the batcher. (#658)
   2116 - Correct typo `trace.Exporter` to `trace.SpanSyncer` in comments. (#653)
   2117 - Use type names for return values in jaeger exporter. (#648)
   2118 - Increase the visibility of the `api/key` package by updating comments and fixing usages locally. (#650)
   2119 - `Checkpoint` only after `Update`; Keep records in the `sync.Map` longer. (#647)
   2120 - Do not cache `reflect.ValueOf()` in metric Labels. (#649)
   2121 - Batch metrics exported from the OTLP exporter based on `Resource` and labels. (#626)
   2122 - Add error wrapping to the prometheus exporter. (#631)
   2123 - Update the OTLP exporter batching of traces to use a unique `string` representation of an associated `Resource` as the batching key. (#623)
   2124 - Update OTLP `SpanData` transform to only include the `ParentSpanID` if one exists. (#614)
   2125 - Update `Resource` internal representation to uniquely and reliably identify resources. (#613)
   2126 - Check return value from `CheckpointSet.ForEach` in prometheus exporter. (#622)
   2127 - Ensure spans created by httptrace client tracer reflect operation structure. (#618)
   2128 - Create a new recorder rather than reuse when multiple observations in same epoch for asynchronous instruments. #610
   2129 - The default port the OTLP exporter uses to connect to the OpenTelemetry collector is updated to match the one the collector listens on by default. (#611)
   2130 
   2131 ## [0.4.2] - 2020-03-31
   2132 
   2133 ### Fixed
   2134 
   2135 - Fix `pre_release.sh` to update version in `sdk/opentelemetry.go`. (#607)
   2136 - Fix time conversion from internal to OTLP in OTLP exporter. (#606)
   2137 
   2138 ## [0.4.1] - 2020-03-31
   2139 
   2140 ### Fixed
   2141 
   2142 - Update `tag.sh` to create signed tags. (#604)
   2143 
   2144 ## [0.4.0] - 2020-03-30
   2145 
   2146 ### Added
   2147 
   2148 - New API package `api/metric/registry` that exposes a `MeterImpl` wrapper for use by SDKs to generate unique instruments. (#580)
   2149 - Script to verify examples after a new release. (#579)
   2150 
   2151 ### Removed
   2152 
   2153 - The dogstatsd exporter due to lack of support.
   2154    This additionally removes support for statsd. (#591)
   2155 - `LabelSet` from the metric API.
   2156    This is replaced by a `[]core.KeyValue` slice. (#595)
   2157 - `Labels` from the metric API's `Meter` interface. (#595)
   2158 
   2159 ### Changed
   2160 
   2161 - The metric `export.Labels` became an interface which the SDK implements and the `export` package provides a simple, immutable implementation of this interface intended for testing purposes. (#574)
   2162 - Renamed `internal/metric.Meter` to `MeterImpl`. (#580)
   2163 - Renamed `api/global/internal.obsImpl` to `asyncImpl`. (#580)
   2164 
   2165 ### Fixed
   2166 
   2167 - Corrected missing return in mock span. (#582)
   2168 - Update License header for all source files to match CNCF guidelines and include a test to ensure it is present. (#586) (#596)
   2169 - Update to v0.3.0 of the OTLP in the OTLP exporter. (#588)
   2170 - Update pre-release script to be compatible between GNU and BSD based systems. (#592)
   2171 - Add a `RecordBatch` benchmark. (#594)
   2172 - Moved span transforms of the OTLP exporter to the internal package. (#593)
   2173 - Build both go-1.13 and go-1.14 in circleci to test for all supported versions of Go. (#569)
   2174 - Removed unneeded allocation on empty labels in OLTP exporter. (#597)
   2175 - Update `BatchedSpanProcessor` to process the queue until no data but respect max batch size. (#599)
   2176 - Update project documentation godoc.org links to pkg.go.dev. (#602)
   2177 
   2178 ## [0.3.0] - 2020-03-21
   2179 
   2180 This is a first official beta release, which provides almost fully complete metrics, tracing, and context propagation functionality.
   2181 There is still a possibility of breaking changes.
   2182 
   2183 ### Added
   2184 
   2185 - Add `Observer` metric instrument. (#474)
   2186 - Add global `Propagators` functionality to enable deferred initialization for propagators registered before the first Meter SDK is installed. (#494)
   2187 - Simplified export setup pipeline for the jaeger exporter to match other exporters. (#459)
   2188 - The zipkin trace exporter. (#495)
   2189 - The OTLP exporter to export metric and trace telemetry to the OpenTelemetry collector. (#497) (#544) (#545)
   2190 - Add `StatusMessage` field to the trace `Span`. (#524)
   2191 - Context propagation in OpenTracing bridge in terms of OpenTelemetry context propagation. (#525)
   2192 - The `Resource` type was added to the SDK. (#528)
   2193 - The global API now supports a `Tracer` and `Meter` function as shortcuts to getting a global `*Provider` and calling these methods directly. (#538)
   2194 - The metric API now defines a generic `MeterImpl` interface to support general purpose `Meter` construction.
   2195    Additionally, `SyncImpl` and `AsyncImpl` are added to support general purpose instrument construction. (#560)
   2196 - A metric `Kind` is added to represent the `MeasureKind`, `ObserverKind`, and `CounterKind`. (#560)
   2197 - Scripts to better automate the release process. (#576)
   2198 
   2199 ### Changed
   2200 
   2201 - Default to to use `AlwaysSampler` instead of `ProbabilitySampler` to match OpenTelemetry specification. (#506)
   2202 - Renamed `AlwaysSampleSampler` to `AlwaysOnSampler` in the trace API. (#511)
   2203 - Renamed `NeverSampleSampler` to `AlwaysOffSampler` in the trace API. (#511)
   2204 - The `Status` field of the `Span` was changed to `StatusCode` to disambiguate with the added `StatusMessage`. (#524)
   2205 - Updated the trace `Sampler` interface conform to the OpenTelemetry specification. (#531)
   2206 - Rename metric API `Options` to `Config`. (#541)
   2207 - Rename metric `Counter` aggregator to be `Sum`. (#541)
   2208 - Unify metric options into `Option` from instrument specific options. (#541)
   2209 - The trace API's `TraceProvider` now support `Resource`s. (#545)
   2210 - Correct error in zipkin module name. (#548)
   2211 - The jaeger trace exporter now supports `Resource`s. (#551)
   2212 - Metric SDK now supports `Resource`s.
   2213    The `WithResource` option was added to configure a `Resource` on creation and the `Resource` method was added to the metric `Descriptor` to return the associated `Resource`. (#552)
   2214 - Replace `ErrNoLastValue` and `ErrEmptyDataSet` by `ErrNoData` in the metric SDK. (#557)
   2215 - The stdout trace exporter now supports `Resource`s. (#558)
   2216 - The metric `Descriptor` is now included at the API instead of the SDK. (#560)
   2217 - Replace `Ordered` with an iterator in `export.Labels`. (#567)
   2218 
   2219 ### Removed
   2220 
   2221 - The vendor specific Stackdriver. It is now hosted on 3rd party vendor infrastructure. (#452)
   2222 - The `Unregister` method for metric observers as it is not in the OpenTelemetry specification. (#560)
   2223 - `GetDescriptor` from the metric SDK. (#575)
   2224 - The `Gauge` instrument from the metric API. (#537)
   2225 
   2226 ### Fixed
   2227 
   2228 - Make histogram aggregator checkpoint consistent. (#438)
   2229 - Update README with import instructions and how to build and test. (#505)
   2230 - The default label encoding was updated to be unique. (#508)
   2231 - Use `NewRoot` in the othttp plugin for public endpoints. (#513)
   2232 - Fix data race in `BatchedSpanProcessor`. (#518)
   2233 - Skip test-386 for Mac OS 10.15.x (Catalina and upwards). #521
   2234 - Use a variable-size array to represent ordered labels in maps. (#523)
   2235 - Update the OTLP protobuf and update changed import path. (#532)
   2236 - Use `StateLocker` implementation in `MinMaxSumCount`. (#546)
   2237 - Eliminate goroutine leak in histogram stress test. (#547)
   2238 - Update OTLP exporter with latest protobuf. (#550)
   2239 - Add filters to the othttp plugin. (#556)
   2240 - Provide an implementation of the `Header*` filters that do not depend on Go 1.14. (#565)
   2241 - Encode labels once during checkpoint.
   2242    The checkpoint function is executed in a single thread so we can do the encoding lazily before passing the encoded version of labels to the exporter.
   2243    This is a cheap and quick way to avoid encoding the labels on every collection interval. (#572)
   2244 - Run coverage over all packages in `COVERAGE_MOD_DIR`. (#573)
   2245 
   2246 ## [0.2.3] - 2020-03-04
   2247 
   2248 ### Added
   2249 
   2250 - `RecordError` method on `Span`s in the trace API to Simplify adding error events to spans. (#473)
   2251 - Configurable push frequency for exporters setup pipeline. (#504)
   2252 
   2253 ### Changed
   2254 
   2255 - Rename the `exporter` directory to `exporters`.
   2256    The `go.opentelemetry.io/otel/exporter/trace/jaeger` package was mistakenly released with a `v1.0.0` tag instead of `v0.1.0`.
   2257    This resulted in all subsequent releases not becoming the default latest.
   2258    A consequence of this was that all `go get`s pulled in the incompatible `v0.1.0` release of that package when pulling in more recent packages from other otel packages.
   2259    Renaming the `exporter` directory to `exporters` fixes this issue by renaming the package and therefore clearing any existing dependency tags.
   2260    Consequentially, this action also renames *all* exporter packages. (#502)
   2261 
   2262 ### Removed
   2263 
   2264 - The `CorrelationContextHeader` constant in the `correlation` package is no longer exported. (#503)
   2265 
   2266 ## [0.2.2] - 2020-02-27
   2267 
   2268 ### Added
   2269 
   2270 - `HTTPSupplier` interface in the propagation API to specify methods to retrieve and store a single value for a key to be associated with a carrier. (#467)
   2271 - `HTTPExtractor` interface in the propagation API to extract information from an `HTTPSupplier` into a context. (#467)
   2272 - `HTTPInjector` interface in the propagation API to inject information into an `HTTPSupplier.` (#467)
   2273 - `Config` and configuring `Option` to the propagator API. (#467)
   2274 - `Propagators` interface in the propagation API to contain the set of injectors and extractors for all supported carrier formats. (#467)
   2275 - `HTTPPropagator` interface in the propagation API to inject and extract from an `HTTPSupplier.` (#467)
   2276 - `WithInjectors` and `WithExtractors` functions to the propagator API to configure injectors and extractors to use. (#467)
   2277 - `ExtractHTTP` and `InjectHTTP` functions to apply configured HTTP extractors and injectors to a passed context. (#467)
   2278 - Histogram aggregator. (#433)
   2279 - `DefaultPropagator` function and have it return `trace.TraceContext` as the default context propagator. (#456)
   2280 - `AlwaysParentSample` sampler to the trace API. (#455)
   2281 - `WithNewRoot` option function to the trace API to specify the created span should be considered a root span. (#451)
   2282 
   2283 ### Changed
   2284 
   2285 - Renamed `WithMap` to `ContextWithMap` in the correlation package. (#481)
   2286 - Renamed `FromContext` to `MapFromContext` in the correlation package. (#481)
   2287 - Move correlation context propagation to correlation package. (#479)
   2288 - Do not default to putting remote span context into links. (#480)
   2289 - `Tracer.WithSpan` updated to accept `StartOptions`. (#472)
   2290 - Renamed `MetricKind` to `Kind` to not stutter in the type usage. (#432)
   2291 - Renamed the `export` package to `metric` to match directory structure. (#432)
   2292 - Rename the `api/distributedcontext` package to `api/correlation`. (#444)
   2293 - Rename the `api/propagators` package to `api/propagation`. (#444)
   2294 - Move the propagators from the `propagators` package into the `trace` API package. (#444)
   2295 - Update `Float64Gauge`, `Int64Gauge`, `Float64Counter`, `Int64Counter`, `Float64Measure`, and `Int64Measure` metric methods to use value receivers instead of pointers. (#462)
   2296 - Moved all dependencies of tools package to a tools directory. (#466)
   2297 
   2298 ### Removed
   2299 
   2300 - Binary propagators. (#467)
   2301 - NOOP propagator. (#467)
   2302 
   2303 ### Fixed
   2304 
   2305 - Upgraded `github.com/golangci/golangci-lint` from `v1.21.0` to `v1.23.6` in `tools/`. (#492)
   2306 - Fix a possible nil-dereference crash (#478)
   2307 - Correct comments for `InstallNewPipeline` in the stdout exporter. (#483)
   2308 - Correct comments for `InstallNewPipeline` in the dogstatsd exporter. (#484)
   2309 - Correct comments for `InstallNewPipeline` in the prometheus exporter. (#482)
   2310 - Initialize `onError` based on `Config` in prometheus exporter. (#486)
   2311 - Correct module name in prometheus exporter README. (#475)
   2312 - Removed tracer name prefix from span names. (#430)
   2313 - Fix `aggregator_test.go` import package comment. (#431)
   2314 - Improved detail in stdout exporter. (#436)
   2315 - Fix a dependency issue (generate target should depend on stringer, not lint target) in Makefile. (#442)
   2316 - Reorders the Makefile targets within `precommit` target so we generate files and build the code before doing linting, so we can get much nicer errors about syntax errors from the compiler. (#442)
   2317 - Reword function documentation in gRPC plugin. (#446)
   2318 - Send the `span.kind` tag to Jaeger from the jaeger exporter. (#441)
   2319 - Fix `metadataSupplier` in the jaeger exporter to overwrite the header if existing instead of appending to it. (#441)
   2320 - Upgraded to Go 1.13 in CI. (#465)
   2321 - Correct opentelemetry.io URL in trace SDK documentation. (#464)
   2322 - Refactored reference counting logic in SDK determination of stale records. (#468)
   2323 - Add call to `runtime.Gosched` in instrument `acquireHandle` logic to not block the collector. (#469)
   2324 
   2325 ## [0.2.1.1] - 2020-01-13
   2326 
   2327 ### Fixed
   2328 
   2329 - Use stateful batcher on Prometheus exporter fixing regression introduced in #395. (#428)
   2330 
   2331 ## [0.2.1] - 2020-01-08
   2332 
   2333 ### Added
   2334 
   2335 - Global meter forwarding implementation.
   2336    This enables deferred initialization for metric instruments registered before the first Meter SDK is installed. (#392)
   2337 - Global trace forwarding implementation.
   2338    This enables deferred initialization for tracers registered before the first Trace SDK is installed. (#406)
   2339 - Standardize export pipeline creation in all exporters. (#395)
   2340 - A testing, organization, and comments for 64-bit field alignment. (#418)
   2341 - Script to tag all modules in the project. (#414)
   2342 
   2343 ### Changed
   2344 
   2345 - Renamed `propagation` package to `propagators`. (#362)
   2346 - Renamed `B3Propagator` propagator to `B3`. (#362)
   2347 - Renamed `TextFormatPropagator` propagator to `TextFormat`. (#362)
   2348 - Renamed `BinaryPropagator` propagator to `Binary`. (#362)
   2349 - Renamed `BinaryFormatPropagator` propagator to `BinaryFormat`. (#362)
   2350 - Renamed `NoopTextFormatPropagator` propagator to `NoopTextFormat`. (#362)
   2351 - Renamed `TraceContextPropagator` propagator to `TraceContext`. (#362)
   2352 - Renamed `SpanOption` to `StartOption` in the trace API. (#369)
   2353 - Renamed `StartOptions` to `StartConfig` in the trace API. (#369)
   2354 - Renamed `EndOptions` to `EndConfig` in the trace API. (#369)
   2355 - `Number` now has a pointer receiver for its methods. (#375)
   2356 - Renamed `CurrentSpan` to `SpanFromContext` in the trace API. (#379)
   2357 - Renamed `SetCurrentSpan` to `ContextWithSpan` in the trace API. (#379)
   2358 - Renamed `Message` in Event to `Name` in the trace API. (#389)
   2359 - Prometheus exporter no longer aggregates metrics, instead it only exports them. (#385)
   2360 - Renamed `HandleImpl` to `BoundInstrumentImpl` in the metric API. (#400)
   2361 - Renamed `Float64CounterHandle` to `Float64CounterBoundInstrument` in the metric API. (#400)
   2362 - Renamed `Int64CounterHandle` to `Int64CounterBoundInstrument` in the metric API. (#400)
   2363 - Renamed `Float64GaugeHandle` to `Float64GaugeBoundInstrument` in the metric API. (#400)
   2364 - Renamed `Int64GaugeHandle` to `Int64GaugeBoundInstrument` in the metric API. (#400)
   2365 - Renamed `Float64MeasureHandle` to `Float64MeasureBoundInstrument` in the metric API. (#400)
   2366 - Renamed `Int64MeasureHandle` to `Int64MeasureBoundInstrument` in the metric API. (#400)
   2367 - Renamed `Release` method for bound instruments in the metric API to `Unbind`. (#400)
   2368 - Renamed `AcquireHandle` method for bound instruments in the metric API to `Bind`. (#400)
   2369 - Renamed the `File` option in the stdout exporter to `Writer`. (#404)
   2370 - Renamed all `Options` to `Config` for all metric exports where this wasn't already the case.
   2371 
   2372 ### Fixed
   2373 
   2374 - Aggregator import path corrected. (#421)
   2375 - Correct links in README. (#368)
   2376 - The README was updated to match latest code changes in its examples. (#374)
   2377 - Don't capitalize error statements. (#375)
   2378 - Fix ignored errors. (#375)
   2379 - Fix ambiguous variable naming. (#375)
   2380 - Removed unnecessary type casting. (#375)
   2381 - Use named parameters. (#375)
   2382 - Updated release schedule. (#378)
   2383 - Correct http-stackdriver example module name. (#394)
   2384 - Removed the `http.request` span in `httptrace` package. (#397)
   2385 - Add comments in the metrics SDK (#399)
   2386 - Initialize checkpoint when creating ddsketch aggregator to prevent panic when merging into a empty one. (#402) (#403)
   2387 - Add documentation of compatible exporters in the README. (#405)
   2388 - Typo fix. (#408)
   2389 - Simplify span check logic in SDK tracer implementation. (#419)
   2390 
   2391 ## [0.2.0] - 2019-12-03
   2392 
   2393 ### Added
   2394 
   2395 - Unary gRPC tracing example. (#351)
   2396 - Prometheus exporter. (#334)
   2397 - Dogstatsd metrics exporter. (#326)
   2398 
   2399 ### Changed
   2400 
   2401 - Rename `MaxSumCount` aggregation to `MinMaxSumCount` and add the `Min` interface for this aggregation. (#352)
   2402 - Rename `GetMeter` to `Meter`. (#357)
   2403 - Rename `HTTPTraceContextPropagator` to `TraceContextPropagator`. (#355)
   2404 - Rename `HTTPB3Propagator` to `B3Propagator`. (#355)
   2405 - Rename `HTTPTraceContextPropagator` to `TraceContextPropagator`. (#355)
   2406 - Move `/global` package to `/api/global`. (#356)
   2407 - Rename `GetTracer` to `Tracer`. (#347)
   2408 
   2409 ### Removed
   2410 
   2411 - `SetAttribute` from the `Span` interface in the trace API. (#361)
   2412 - `AddLink` from the `Span` interface in the trace API. (#349)
   2413 - `Link` from the `Span` interface in the trace API. (#349)
   2414 
   2415 ### Fixed
   2416 
   2417 - Exclude example directories from coverage report. (#365)
   2418 - Lint make target now implements automatic fixes with `golangci-lint` before a second run to report the remaining issues. (#360)
   2419 - Drop `GO111MODULE` environment variable in Makefile as Go 1.13 is the project specified minimum version and this is environment variable is not needed for that version of Go. (#359)
   2420 - Run the race checker for all test. (#354)
   2421 - Redundant commands in the Makefile are removed. (#354)
   2422 - Split the `generate` and `lint` targets of the Makefile. (#354)
   2423 - Renames `circle-ci` target to more generic `ci` in Makefile. (#354)
   2424 - Add example Prometheus binary to gitignore. (#358)
   2425 - Support negative numbers with the `MaxSumCount`. (#335)
   2426 - Resolve race conditions in `push_test.go` identified in #339. (#340)
   2427 - Use `/usr/bin/env bash` as a shebang in scripts rather than `/bin/bash`. (#336)
   2428 - Trace benchmark now tests both `AlwaysSample` and `NeverSample`.
   2429    Previously it was testing `AlwaysSample` twice. (#325)
   2430 - Trace benchmark now uses a `[]byte` for `TraceID` to fix failing test. (#325)
   2431 - Added a trace benchmark to test variadic functions in `setAttribute` vs `setAttributes` (#325)
   2432 - The `defaultkeys` batcher was only using the encoded label set as its map key while building a checkpoint.
   2433    This allowed distinct label sets through, but any metrics sharing a label set could be overwritten or merged incorrectly.
   2434    This was corrected. (#333)
   2435 
   2436 ## [0.1.2] - 2019-11-18
   2437 
   2438 ### Fixed
   2439 
   2440 - Optimized the `simplelru` map for attributes to reduce the number of allocations. (#328)
   2441 - Removed unnecessary unslicing of parameters that are already a slice. (#324)
   2442 
   2443 ## [0.1.1] - 2019-11-18
   2444 
   2445 This release contains a Metrics SDK with stdout exporter and supports basic aggregations such as counter, gauges, array, maxsumcount, and ddsketch.
   2446 
   2447 ### Added
   2448 
   2449 - Metrics stdout export pipeline. (#265)
   2450 - Array aggregation for raw measure metrics. (#282)
   2451 - The core.Value now have a `MarshalJSON` method. (#281)
   2452 
   2453 ### Removed
   2454 
   2455 - `WithService`, `WithResources`, and `WithComponent` methods of tracers. (#314)
   2456 - Prefix slash in `Tracer.Start()` for the Jaeger example. (#292)
   2457 
   2458 ### Changed
   2459 
   2460 - Allocation in LabelSet construction to reduce GC overhead. (#318)
   2461 - `trace.WithAttributes` to append values instead of replacing (#315)
   2462 - Use a formula for tolerance in sampling tests. (#298)
   2463 - Move export types into trace and metric-specific sub-directories. (#289)
   2464 - `SpanKind` back to being based on an `int` type. (#288)
   2465 
   2466 ### Fixed
   2467 
   2468 - URL to OpenTelemetry website in README. (#323)
   2469 - Name of othttp default tracer. (#321)
   2470 - `ExportSpans` for the stackdriver exporter now handles `nil` context. (#294)
   2471 - CI modules cache to correctly restore/save from/to the cache. (#316)
   2472 - Fix metric SDK race condition between `LoadOrStore` and the assignment `rec.recorder = i.meter.exporter.AggregatorFor(rec)`. (#293)
   2473 - README now reflects the new code structure introduced with these changes. (#291)
   2474 - Make the basic example work. (#279)
   2475 
   2476 ## [0.1.0] - 2019-11-04
   2477 
   2478 This is the first release of open-telemetry go library.
   2479 It contains api and sdk for trace and meter.
   2480 
   2481 ### Added
   2482 
   2483 - Initial OpenTelemetry trace and metric API prototypes.
   2484 - Initial OpenTelemetry trace, metric, and export SDK packages.
   2485 - A wireframe bridge to support compatibility with OpenTracing.
   2486 - Example code for a basic, http-stackdriver, http, jaeger, and named tracer setup.
   2487 - Exporters for Jaeger, Stackdriver, and stdout.
   2488 - Propagators for binary, B3, and trace-context protocols.
   2489 - Project information and guidelines in the form of a README and CONTRIBUTING.
   2490 - Tools to build the project and a Makefile to automate the process.
   2491 - Apache-2.0 license.
   2492 - CircleCI build CI manifest files.
   2493 - CODEOWNERS file to track owners of this project.
   2494 
   2495 [Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.16.0...HEAD
   2496 [1.16.0/0.39.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.16.0
   2497 [1.16.0-rc.1/0.39.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.16.0-rc.1
   2498 [1.15.1/0.38.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.1
   2499 [1.15.0/0.38.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0
   2500 [1.15.0-rc.2/0.38.0-rc.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.2
   2501 [1.15.0-rc.1/0.38.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.1
   2502 [1.14.0/0.37.0/0.0.4]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.14.0
   2503 [1.13.0/0.36.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.13.0
   2504 [1.12.0/0.35.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.12.0
   2505 [1.11.2/0.34.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.2
   2506 [1.11.1/0.33.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.1
   2507 [1.11.0/0.32.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.0
   2508 [0.32.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/sdk/metric/v0.32.2
   2509 [0.32.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/sdk/metric/v0.32.1
   2510 [0.32.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/sdk/metric/v0.32.0
   2511 [1.10.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.10.0
   2512 [1.9.0/0.0.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.9.0
   2513 [1.8.0/0.31.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.8.0
   2514 [1.7.0/0.30.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.7.0
   2515 [0.29.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/metric/v0.29.0
   2516 [1.6.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.3
   2517 [1.6.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.2
   2518 [1.6.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.1
   2519 [1.6.0/0.28.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.0
   2520 [1.5.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.5.0
   2521 [1.4.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.4.1
   2522 [1.4.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.4.0
   2523 [1.3.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.3.0
   2524 [1.2.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.2.0
   2525 [1.1.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.1.0
   2526 [1.0.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.1
   2527 [Metrics 0.24.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/metric/v0.24.0
   2528 [1.0.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0
   2529 [1.0.0-RC3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0-RC3
   2530 [1.0.0-RC2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0-RC2
   2531 [Experimental Metrics v0.22.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/metric/v0.22.0
   2532 [1.0.0-RC1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0-RC1
   2533 [0.20.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.20.0
   2534 [0.19.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.19.0
   2535 [0.18.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.18.0
   2536 [0.17.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.17.0
   2537 [0.16.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.16.0
   2538 [0.15.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.15.0
   2539 [0.14.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.14.0
   2540 [0.13.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.13.0
   2541 [0.12.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.12.0
   2542 [0.11.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.11.0
   2543 [0.10.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.10.0
   2544 [0.9.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.9.0
   2545 [0.8.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.8.0
   2546 [0.7.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.7.0
   2547 [0.6.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.6.0
   2548 [0.5.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.5.0
   2549 [0.4.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.3
   2550 [0.4.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.2
   2551 [0.4.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.1
   2552 [0.4.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.0
   2553 [0.3.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.3.0
   2554 [0.2.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.3
   2555 [0.2.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.2
   2556 [0.2.1.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.1.1
   2557 [0.2.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.1
   2558 [0.2.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.0
   2559 [0.1.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.1.2
   2560 [0.1.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.1.1
   2561 [0.1.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.1.0
   2562 
   2563 [Go 1.20]: https://go.dev/doc/go1.20
   2564 [Go 1.19]: https://go.dev/doc/go1.19
   2565 [Go 1.18]: https://go.dev/doc/go1.18
   2566 
   2567 [metric API]:https://pkg.go.dev/go.opentelemetry.io/otel/metric