CHANGELOG.md raw

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

This project adheres to Semantic Versioning.

[Unreleased]

<!-- Released section --> <!-- Don't change this section unless doing release -->

[1.38.0/0.60.0/0.14.0/0.0.13] 2025-08-29

This release is the last to support [Go 1.23]. The next release will require at least [Go 1.24].

Added

- ContainerLabel - DBOperationParameter - DBSystemParameter - HTTPRequestHeader - HTTPResponseHeader - K8SCronJobAnnotation - K8SCronJobLabel - K8SDaemonSetAnnotation - K8SDaemonSetLabel - K8SDeploymentAnnotation - K8SDeploymentLabel - K8SJobAnnotation - K8SJobLabel - K8SNamespaceAnnotation - K8SNamespaceLabel - K8SNodeAnnotation - K8SNodeLabel - K8SPodAnnotation - K8SPodLabel - K8SReplicaSetAnnotation - K8SReplicaSetLabel - K8SStatefulSetAnnotation - K8SStatefulSetLabel - ProcessEnvironmentVariable - RPCConnectRPCRequestMetadata - RPCConnectRPCResponseMetadata - RPCGRPCRequestMetadata - RPCGRPCResponseMetadata

Check the go.opentelemetry.io/otel/sdk/trace/internal/x package documentation for more information. (#7027, #6393, #7209)

The package contains semantic conventions from the v1.36.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.34.0.(#7032, #7041)

Check the go.opentelemetry.io/otel/sdk/log/internal/x package documentation for more information. (#7121)

Check the go.opentelemetry.io/otel/exporters/stdout/stdouttrace/internal/x package documentation for more information. (#7133)

The package contains semantic conventions from the v1.37.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.36.0.(#7254)

Changed

Fixed

Deprecated

[0.59.1] 2025-07-21

Changed

It is recommended to disable unit and counter suffixes in the exporter, and manually add suffixes if you rely on the existing behavior. (#7044)

Fixed

E.g. {spans}. (#7044)

[1.37.0/0.59.0/0.13.0] 2025-06-25

Added

The package contains semantic conventions from the v1.33.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.32.0.(#6799)

The package contains semantic conventions from the v1.34.0 version of the OpenTelemetry Semantic Conventions. (#6812)

Changed

Fixed

Removed

[0.12.2] 2025-05-22

Fixed

[0.12.1] 2025-05-21

Fixes

[1.36.0/0.58.0/0.12.0] 2025-05-20

Added

The package contains semantic conventions from the v1.31.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.30.0. (#6479)

The package contains semantic conventions from the v1.32.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.31.0(#6782)

Removed

Changed

This allows metrics names to keep original delimiters (e.g. .), rather than replacing with underscores. This can be reverted by setting github.com/prometheus/common/model.NameValidationScheme to LegacyValidation in github.com/prometheus/common/model. (#6433)

Deprecated

Fixes

[1.35.0/0.57.0/0.11.0] 2025-03-05

This release is the last to support [Go 1.22]. The next release will require at least [Go 1.23].

Added

The package contains semantic conventions from the v1.28.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.27.0(#6236)

The package contains semantic conventions from the v1.30.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.28.0(#6240)

Resource.Equal and Resource.Equivalent should be used instead. (#6272)

It replaces go.opentelemetry.io/otel/sdk/log/internal/x.FilterProcessor. Compared to previous version it additionally gives the possibility to filter by resource and instrumentation scope. (#6317)

Changed

This allows metrics names to keep original delimiters (e.g. .), rather than replacing with underscores. This is controlled by the Content-Type header, or can be reverted by setting NameValidationScheme to LegacyValidation in github.com/prometheus/common/model. (#6198)

Fixes

[1.34.0/0.56.0/0.10.0] 2025-01-17

Changed

Fixed

[1.33.0/0.55.0/0.9.0/0.0.12] 2024-12-12

Added

This is an experimental interface that is implemented by synchronous instruments provided by go.opentelemetry.io/otel/sdk/metric. Users can use it to avoid performing computationally expensive operations when recording measurements. It does not fall within the scope of the OpenTelemetry Go versioning and stability policy and it may be changed in backwards incompatible ways or removed in feature releases. (#6016)

Changed

See that package for more information. (#5920)

Fixed

[1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08

Added

The package contains semantic conventions from the v1.27.0 version of the OpenTelemetry Semantic Conventions. (#5894)

Changed

Fixed

Removed

[1.31.0/0.53.0/0.7.0/0.0.10] 2024-10-11

Added

Changed

Deprecated

Fixed

[1.30.0/0.52.0/0.6.0/0.0.9] 2024-09-09

Added

Fixed

Removed

[1.29.0/0.51.0/0.5.0] 2024-08-23

This release is the last to support [Go 1.21]. The next release will require at least [Go 1.22].

Added

This new module contains an OTLP exporter that transmits log telemetry using gRPC. This module is unstable and breaking changes may be introduced. See our versioning policy for more information about these stability guarantees. (#5629)

This is an optional and experimental interface that log Processors can implement to instruct the Logger if a Record will be processed or not. It replaces the existing Enabled method that is removed from the Processor interface itself. It does not fall within the scope of the OpenTelemetry Go versioning and stability policy and it may be changed in backwards incompatible ways or removed in feature releases. (#5692)

Changed

See the FilterProcessor interface type added in go.opentelemetry.io/otel/sdk/log/internal/x to continue providing this functionality. (#5692)

Fixed

Removed

[1.28.0/0.50.0/0.4.0] 2024-07-02

Added

This method is used to check if an Instrument instance is a zero-value. (#5431)

The package contains semantic conventions from the v1.26.0 version of the OpenTelemetry Semantic Conventions. (#5476)

Changed

- The exporter no longer exports the deprecated "otel.library.name" or "otel.library.version" attributes.

Fixed

[1.27.0/0.49.0/0.3.0] 2024-05-21

Added

- An int64 or float64 synchronous gauge instrument can now be created from a Meter. - All implementations of the API (go.opentelemetry.io/otel/metric/noop, go.opentelemetry.io/otel/sdk/metric) are updated to support this instrument.

Changed

Fixed

[1.26.0/0.48.0/0.2.0-alpha] 2024-04-24

Added

This new module contains the Go implementation of the OpenTelemetry Logs SDK. This module is unstable and breaking changes may be introduced. See our versioning policy for more information about these stability guarantees. (#5240)

This new module contains an OTLP exporter that transmits log telemetry using HTTP. This module is unstable and breaking changes may be introduced. See our versioning policy for more information about these stability guarantees. (#5240)

This new module contains an exporter prints log records to STDOUT. This module is unstable and breaking changes may be introduced. See our versioning policy for more information about these stability guarantees. (#5240)

The package contains semantic conventions from the v1.25.0 version of the OpenTelemetry Semantic Conventions. (#5254)

Changed

Fixed

[1.25.0/0.47.0/0.0.8/0.1.0-alpha] 2024-04-05

Added

This method is used to notify users if a log record will be emitted or not. (#5071)

This value represents an unset severity level. (#5072)

This package is provided with the anticipation that all functionality will be migrate to go.opentelemetry.io/otel when go.opentelemetry.io/otel/log stabilizes. At which point, users will be required to migrage their code, and this package will be deprecated then removed. (#5085)

Changed

Because of that WithDialOption ignores `grpc.WithBlock`, `grpc.WithTimeout`, and `grpc.WithReturnConnectionError`. Notice that `grpc.DialContext` which was used before is now deprecated.

Fixed

Removed

Deprecated

[1.24.0/0.46.0/0.0.1-alpha] 2024-02-23

This release is the last to support [Go 1.20]. The next release will require at least [Go 1.21].

Added

This module includes OpenTelemetry Go's implementation of the Logs Bridge API. This module is in an alpha state, it is subject to breaking changes. See our versioning policy for more info. (#4961)

Fixed

[1.23.1] 2024-02-07

Fixed

[1.23.0] 2024-02-06

This release contains the first stable, v1, release of the following modules:

See our versioning policy for more information about these stability guarantees.

Added

See metric documentation for more information about this feature and how to enable it. (#4871)

This error is returned when a merge of two Resources with different (non-empty) schema URL is attempted. (#4876)

Changed

Instead of returning nil when two Resources with different (non-empty) schema URLs are merged the merged Resource, along with the new ErrSchemaURLConflict error, is returned. It is up to the user to decide if they want to use the returned Resource or not. It may have desired attributes overwritten or include stale semantic conventions. (#4876)

Fixed

[1.23.0-rc.1] 2024-01-18

This is a release candidate for the v1.23.0 release. That release is expected to include the v1 release of the following modules:

See our versioning policy for more information about these stability guarantees.

[1.22.0/0.45.0] 2024-01-17

Added

The package contains semantic conventions from the v1.22.0 version of the OpenTelemetry Semantic Conventions. (#4735)

The package contains semantic conventions from the v1.23.0 version of the OpenTelemetry Semantic Conventions. (#4746)

The package contains semantic conventions from the v1.23.1 version of the OpenTelemetry Semantic Conventions. (#4749)

The package contains semantic conventions from the v1.24.0 version of the OpenTelemetry Semantic Conventions. (#4770)

See metric documentation for more information about this feature and how to enable it. (#4457)

Changed

If you do not want to make a measurement when the context is cancelled, you need to handle it yourself (e.g if ctx.Err() != nil). (#4671)

Fixed

[1.21.0/0.44.0] 2023-11-16

Removed

Fixed

[1.20.0/0.43.0] 2023-11-10

This release brings a breaking change for custom trace API implementations. Some interfaces (TracerProvider, Tracer, Span) now embed the go.opentelemetry.io/otel/trace/embedded types. Implementers need to update their implementations based on what they want the default behavior to be. See the "API Implementations" section of the [trace API] package documentation for more information about how to accomplish this.

Added

Deprecated

Use the added NewTracerProvider function in go.opentelemetry.io/otel/trace/noop instead. (#4620)

Changed

This extends the TracerProvider interface and is is a breaking change for any existing implementation. Implementers need to update their implementations based on what they want the default behavior of the interface to be. See the "API Implementations" section of the go.opentelemetry.io/otel/trace package documentation for more information about how to accomplish this. (#4620)

This extends the Tracer interface and is is a breaking change for any existing implementation. Implementers need to update their implementations based on what they want the default behavior of the interface to be. See the "API Implementations" section of the go.opentelemetry.io/otel/trace package documentation for more information about how to accomplish this. (#4620)

This extends the Span interface and is is a breaking change for any existing implementation. Implementers need to update their implementations based on what they want the default behavior of the interface to be. See the "API Implementations" section of the go.opentelemetry.io/otel/trace package documentation for more information about how to accomplish this. (#4620)

Fixed

[1.19.0/0.42.0/0.0.7] 2023-09-28

This release contains the first stable release of the OpenTelemetry Go [metric SDK]. Our project stability guarantees now apply to the go.opentelemetry.io/otel/sdk/metric package. See our versioning policy for more information about these stability guarantees.

Added

Changed

Fixed

Removed

[1.19.0-rc.1/0.42.0-rc.1] 2023-09-14

This is a release candidate for the v1.19.0/v0.42.0 release. That release is expected to include the v1 release of the OpenTelemetry Go metric SDK and will provide stability guarantees of that SDK. See our versioning policy for more information about these stability guarantees.

Changed

Fixed

[1.18.0/0.41.0/0.0.6] 2023-09-12

This release drops the compatibility guarantee of [Go 1.19].

Added

Changed

Deprecated

The deprecation notice format for the function has been corrected to trigger Go documentation and build tooling. (#4470)

Removed

[1.17.0/0.40.0/0.0.5] 2023-08-28

Added

A histogram can be configured as an exponential histogram using a view with "go.opentelemetry.io/otel/sdk/metric".ExponentialHistogram as the aggregation. (#4245)

The package contains semantic conventions from the v1.21.0 version of the OpenTelemetry Semantic Conventions. (#4362)

Changed

Removed

Use the added WithProducer option instead. (#4346)

Notice that PeriodicReader.ForceFlush is still available. (#4375)

Fixed

Deprecated

OpenTelemetry dropped support for Jaeger exporter in July 2023. Use go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp or go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc instead. (#4423)

Use the aggregation types added to go.opentelemetry.io/otel/sdk/metric instead. (#4435)

[1.16.0/0.39.0] 2023-05-18

This release contains the first stable release of the OpenTelemetry Go [metric API]. Our project stability guarantees now apply to the go.opentelemetry.io/otel/metric package. See our versioning policy for more information about these stability guarantees.

Added

The package contains semantic conventions from the v1.19.0 version of the OpenTelemetry specification. (#3848)

The package contains semantic conventions from the v1.20.0 version of the OpenTelemetry specification. (#4078)

Changed

Removed

Use go.opentelemetry.io/otel/metric instead. (#4055)

Fixed

[1.16.0-rc.1/0.39.0-rc.1] 2023-05-03

This is a release candidate for the v1.16.0/v0.39.0 release. That release is expected to include the v1 release of the OpenTelemetry Go metric API and will provide stability guarantees of that API. See our versioning policy for more information about these stability guarantees.

Added

- Use Meter for a metric.Meter from the global metric.MeterProvider. - Use GetMeterProivder for a global metric.MeterProvider. - Use SetMeterProivder to set the global metric.MeterProvider.

Changed

This stages the metric API to be released as a stable module. (#4038)

Removed

Use go.opentelemetry.io/otel instead. (#4039)

[1.15.1/0.38.1] 2023-05-02

Fixed

[1.15.0/0.38.0] 2023-04-27

Added

- The AddConfig used to hold configuration for addition measurements - NewAddConfig used to create a new AddConfig - AddOption used to configure an AddConfig - The RecordConfig used to hold configuration for recorded measurements - NewRecordConfig used to create a new RecordConfig - RecordOption used to configure a RecordConfig - The ObserveConfig used to hold configuration for observed measurements - NewObserveConfig used to create a new ObserveConfig - ObserveOption used to configure an ObserveConfig

They return an option used during a measurement that defines the attribute Set associated with the measurement. (#3971)

Changed

This adds an implementation requirement to set the interface default behavior for unimplemented methods. (#3916)

- metric.NewNoopMeterProvider is replaced with noop.NewMeterProvider

- The Int64Counter.Add method now accepts ...AddOption - The Float64Counter.Add method now accepts ...AddOption - The Int64UpDownCounter.Add method now accepts ...AddOption - The Float64UpDownCounter.Add method now accepts ...AddOption - The Int64Histogram.Record method now accepts ...RecordOption - The Float64Histogram.Record method now accepts ...RecordOption - The Int64Observer.Observe method now accepts ...ObserveOption - The Float64Observer.Observe method now accepts ...ObserveOption

- The Observer.ObserveInt64 method now accepts ...ObserveOption - The Observer.ObserveFloat64 method now accepts ...ObserveOption

Fixed

It used to deadlock. (#3924)

Deprecated

Use the equivalent types added to go.opentelemetry.io/otel/metric instead. (#4018)

[1.15.0-rc.2/0.38.0-rc.2] 2023-03-23

This is a release candidate for the v1.15.0/v0.38.0 release. That release will include the v1 release of the OpenTelemetry Go metric API and will provide stability guarantees of that API. See our versioning policy for more information about these stability guarantees.

Added

Both the DataPoint and HistogramDataPoint types from that package have a new field of Exemplars containing the sampled exemplars for their timeseries. (#3849)

Changed

Fixed

Removed

Use the added float64 instrument configuration instead. (#3895)

Use the added int64 instrument configuration instead. (#3895)

[1.15.0-rc.1/0.38.0-rc.1] 2023-03-01

This is a release candidate for the v1.15.0/v0.38.0 release. That release will include the v1 release of the OpenTelemetry Go metric API and will provide stability guarantees of that API. See our versioning policy for more information about these stability guarantees.

This release drops the compatibility guarantee of [Go 1.18].

Added

- Use Meter for a metric.Meter from the global metric.MeterProvider. - Use GetMeterProivder for a global metric.MeterProvider. - Use SetMeterProivder to set the global metric.MeterProvider.

Changed

The project no longer guarantees support for this version of Go. (#3813)

Fixed

Deprecated

Use go.opentelemetry.io/otel instead. (#3818)

Removed

[1.14.0/0.37.0/0.0.4] 2023-02-27

This release is the last to support [Go 1.18]. The next release will require at least [Go 1.19].

Added

The package contains semantic conventions from the v1.18.0 version of the OpenTelemetry specification. (#3719) - The following const renames from go.opentelemetry.io/otel/semconv/v1.17.0 are included: - OtelScopeNameKey -> OTelScopeNameKey - OtelScopeVersionKey -> OTelScopeVersionKey - OtelLibraryNameKey -> OTelLibraryNameKey - OtelLibraryVersionKey -> OTelLibraryVersionKey - OtelStatusCodeKey -> OTelStatusCodeKey - OtelStatusDescriptionKey -> OTelStatusDescriptionKey - OtelStatusCodeOk -> OTelStatusCodeOk - OtelStatusCodeError -> OTelStatusCodeError - The following func renames from go.opentelemetry.io/otel/semconv/v1.17.0 are included: - OtelScopeName -> OTelScopeName - OtelScopeVersion -> OTelScopeVersion - OtelLibraryName -> OTelLibraryName - OtelLibraryVersion -> OTelLibraryVersion - OtelStatusDescription -> OTelStatusDescription

See the README for more information. (#3570)

- OTEL_METRIC_EXPORT_INTERVAL sets the time between collections and exports. - OTEL_METRIC_EXPORT_TIMEOUT sets the timeout an export is attempted.

Changed

This change is made to enable memory reuse by SDK users. (#3732)

Fixed

Deprecated

Use the equivalent unit string instead. (#3776) - Use "1" instead of unit.Dimensionless - Use "By" instead of unit.Bytes - Use "ms" instead of unit.Milliseconds

[1.13.0/0.36.0] 2023-02-07

Added

These functions ensure semantic convention type correctness. (#3675)

Fixed

- go.opentelemetry.io/otel/semconv/v1.13.0/httpconv - go.opentelemetry.io/otel/semconv/v1.14.0/httpconv - go.opentelemetry.io/otel/semconv/v1.15.0/httpconv - go.opentelemetry.io/otel/semconv/v1.16.0/httpconv - go.opentelemetry.io/otel/semconv/v1.17.0/httpconv

Removed

[1.12.0/0.35.0] 2023-01-28

Added

This options is used to configure int64 Observer callbacks during their creation. (#3507)

This options is used to configure float64 Observer callbacks during their creation. (#3507)

These additions are used to enable external metric Producers. (#3524)

This new named function type is registered with a Meter. (#3564)

The package contains semantic conventions from the v1.13.0 version of the OpenTelemetry specification. (#3499) - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - The Client function is included in go.opentelemetry.io/otel/semconv/v1.13.0/netconv to generate attributes for a net.Conn. - The Server function is included in go.opentelemetry.io/otel/semconv/v1.13.0/netconv to generate attributes for a net.Listener.

The package contains semantic conventions from the v1.14.0 version of the OpenTelemetry specification. (#3566)

The package contains semantic conventions from the v1.15.0 version of the OpenTelemetry specification. (#3578)

The package contains semantic conventions from the v1.16.0 version of the OpenTelemetry specification. (#3579)

These instruments are use as replacements of the deprecated go.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64} packages.(#3575, #3586) - Float64ObservableCounter replaces the asyncfloat64.Counter - Float64ObservableUpDownCounter replaces the asyncfloat64.UpDownCounter - Float64ObservableGauge replaces the asyncfloat64.Gauge - Int64ObservableCounter replaces the asyncint64.Counter - Int64ObservableUpDownCounter replaces the asyncint64.UpDownCounter - Int64ObservableGauge replaces the asyncint64.Gauge - Float64Counter replaces the syncfloat64.Counter - Float64UpDownCounter replaces the syncfloat64.UpDownCounter - Float64Histogram replaces the syncfloat64.Histogram - Int64Counter replaces the syncint64.Counter - Int64UpDownCounter replaces the syncint64.UpDownCounter - Int64Histogram replaces the syncint64.Histogram

This is used to create WrapperTracer instances from a TracerProvider. (#3116)

This type is used to represent min/max values and still be able to distinguish unset and zero values. (#3487)

The package contains semantic conventions from the v1.17.0 version of the OpenTelemetry specification. (#3599)

Changed

- Use the added Int64Option type to configure instruments from go.opentelemetry.io/otel/metric/instrument/syncint64. - Use the added Float64Option type to configure instruments from go.opentelemetry.io/otel/metric/instrument/syncfloat64. - Use the added Int64ObserverOption type to configure instruments from go.opentelemetry.io/otel/metric/instrument/asyncint64. - Use the added Float64ObserverOption type to configure instruments from go.opentelemetry.io/otel/metric/instrument/asyncfloat64.

This Registration can be used to unregister callbacks. (#3522)

This fixes random sampling when using ID generators like xray.IDGenerator and increasing parity with other language implementations. (#3557)

Existing users of the exporters attempting to identify specific errors will need to use errors.Unwrap() to get the underlying error. (#3516)

- InstrumentKindSyncCounter is renamed to InstrumentKindCounter - InstrumentKindSyncUpDownCounter is renamed to InstrumentKindUpDownCounter - InstrumentKindSyncHistogram is renamed to InstrumentKindHistogram - InstrumentKindAsyncCounter is renamed to InstrumentKindObservableCounter - InstrumentKindAsyncUpDownCounter is renamed to InstrumentKindObservableUpDownCounter - InstrumentKindAsyncGauge is renamed to InstrumentKindObservableGauge

- The named Callback replaces the inline function parameter. (#3564) - Callback is required to return an error. (#3576) - Callback accepts the added Observer parameter added. 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) - The slice of instrument.Asynchronous is now passed as a variadic argument. (#3587)

This means it no longer uses the removed net.peer.ip or http.host attributes to determine the remote endpoint. Instead it uses the net.sock.peer attributes. (#3581)

Fixed

Trying to register a callback with instruments from a different meter will result in an error being returned. (#3584)

Deprecated

Use NewMetricProducer instead. (#3541)

Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)

Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)

Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)

Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)

Use NewTracerProvider instead. (#3116)

Removed

Use the new creation methods of the Meter in go.opentelemetry.io/otel/sdk/metric instead. (#3530) - The Counter method is replaced by Meter.Int64ObservableCounter - The UpDownCounter method is replaced by Meter.Int64ObservableUpDownCounter - The Gauge method is replaced by Meter.Int64ObservableGauge

Use the new creation methods of the Meter in go.opentelemetry.io/otel/sdk/metric instead. (#3530) - The Counter method is replaced by Meter.Float64ObservableCounter - The UpDownCounter method is replaced by Meter.Float64ObservableUpDownCounter - The Gauge method is replaced by Meter.Float64ObservableGauge

Use the new creation methods of the Meter in go.opentelemetry.io/otel/sdk/metric instead. (#3530) - The Counter method is replaced by Meter.Int64Counter - The UpDownCounter method is replaced by Meter.Int64UpDownCounter - The Histogram method is replaced by Meter.Int64Histogram

Use the new creation methods of the Meter in go.opentelemetry.io/otel/sdk/metric instead. (#3530) - The Counter method is replaced by Meter.Float64Counter - The UpDownCounter method is replaced by Meter.Float64UpDownCounter - The Histogram method is replaced by Meter.Float64Histogram

[1.11.2/0.34.0] 2022-12-05

Added

This option is used to configure the view(s) a MeterProvider will use for all Readers that are registered with it. (#3387)

This can be disabled using the WithoutScopeInfo() option added to that package.(#3273, #3357)

- OTEL_EXPORTER_OTLP_INSECURE - OTEL_EXPORTER_OTLP_TRACES_INSECURE - OTEL_EXPORTER_OTLP_METRICS_INSECURE - OTEL_EXPORTER_OTLP_CLIENT_KEY - OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY - OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY - OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE - OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE - OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE

These additions are replacements for the View type and New function from go.opentelemetry.io/otel/sdk/metric/view. (#3459)

These additions are replacements for the Instrument and InstrumentKind types from go.opentelemetry.io/otel/sdk/metric/view. (#3459)

Changed

Instead, views are now registered directly with the MeterProvider via the new WithView option. The views registered with the MeterProvider apply to all Readers. (#3387)

Fixed

Removed

Deprecated

Use Instrument, InstrumentKind, View, and NewView in go.opentelemetry.io/otel/sdk/metric instead. (#3476)

[1.11.1/0.33.0] 2022-10-19

Added

By default, it will register with the default Prometheus registerer. A non-default registerer can be used by passing the WithRegisterer option. (#3239)

Changed

It will return an error if the exporter fails to register with Prometheus. (#3239)

Fixed

This fixes the implementation to be compliant with the W3C specification. (#3226)

Instead the exporter is defined as an "unchecked" collector for Prometheus. This fixes the reader is not registered warning currently emitted on startup. (#3291 #3342)

This can be disabled using the WithoutUnits() option added to that package. (#3352)

[1.11.0/0.32.3] 2022-10-12

Added

Changed

This addresses GO-2022-0493. (#3235)

[0.32.2] Metric SDK (Alpha) - 2022-10-11

Added

Changed

Fixed

[0.32.1] Metric SDK (Alpha) - 2022-09-22

Changed

Invalid characters are replaced with _. (#3212)

Added

Fixed

[0.32.0] Revised Metric SDK (Alpha) - 2022-09-18

Changed

Please see the package documentation for how the new SDK is initialized and configured. (#3175)

Removed

A new bridge compliant with the revised metric SDK will be added back in a future release. (#3175)

A replacement package that supports the new metric SDK will be added back in a future release. (#3175)

[1.10.0] - 2022-09-09

Added

Include compatibility testing and document support. (#3077)

Changed

[1.9.0/0.0.3] - 2022-08-01

Added

The package contains semantic conventions from the v1.11.0 version of the OpenTelemetry specification. (#3009)

The package contains semantic conventions from the v1.12.0 version of the OpenTelemetry specification. (#3010)

Fixed

[1.8.0/0.31.0] - 2022-07-08

Added

of the "go.opentelemetry.io/otel/bridge/opentracing".BridgeTracer type. (#2911)

Changed

Removed

Deprecated

Use the equivalent Scope struct instead. (#2977)

Use the equivalent ReadOnlySpan.InstrumentationScope method instead. (#2977)

[1.7.0/0.30.0] - 2022-04-28

Added

The package contains semantic conventions from the v1.8.0 version of the OpenTelemetry specification. (#2763)

The package contains semantic conventions from the v1.9.0 version of the OpenTelemetry specification. (#2792)

The package contains semantic conventions from the v1.10.0 version of the OpenTelemetry specification. (#2842)

Fixed

Changed

The method included in the renamed interface also changed from LabelFilterFor to AttributeFilterFor. (#2790)

Consequentially, the Record type from the same package also has had the embedded method renamed. (#2790)

Deprecated

Use the equivalent Iterator.Attribute method instead. (#2790)

Use the equivalent Iterator.IndexedAttribute method instead. (#2790)

Use the equivalent MergeIterator.Attribute method instead. (#2790)

Removed

[0.29.0] - 2022-04-11

Added

This function is a convenience function equivalent to calling global.MeterProvider().Meter(...). (#2750)

Removed

Use the go.opentelemetry.io/otel/sdk/metric module instead. (#2720)

Changed

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)

[1.6.3] - 2022-04-07

Fixed

[1.6.2] - 2022-04-06

Changed

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)

[1.6.1] - 2022-03-28

Fixed

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)

Security

This includes an indirect upgrade of github.com/grpc-ecosystem/grpc-gateway which resolves a vulnerability from gopkg.in/yaml.v2 in version v2.2.3. (#2724, #2728)

[1.6.0/0.28.0] - 2022-03-23

⚠️ Notice ⚠️

This update is a breaking change of the unstable Metrics API. Code instrumented with the go.opentelemetry.io/otel/metric will need to be modified.

Added

New mapping functions have been made available in sdk/metric/aggregator/exponential/mapping for other OpenTelemetry projects to take dependencies on. (#2502)

Changed

High-level changes include:

- Synchronous and asynchronous instruments are now handled by independent InstrumentProviders. These InstrumentProviders are managed with a Meter. - Synchronous and asynchronous instruments are grouped into their own packages based on value types. - Asynchronous callbacks can now be registered with a Meter.

Be sure to check out the metric module documentation for more information on how to use the revised API. (#2587, #2660)

Fixed

[1.5.0] - 2022-03-16

Added

The following environment variables are supported. (#2606, #2637) - OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT - OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT - OTEL_SPAN_EVENT_COUNT_LIMIT - OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT - OTEL_SPAN_LINK_COUNT_LIMIT - OTEL_LINK_ATTRIBUTE_COUNT_LIMIT

If the provided environment variables are invalid (negative), the default values would be used.

The new AttributeValueLengthLimit field is added to the "go.opentelemetry.io/otel/sdk/trace".SpanLimits type to configure this limit for a TracerProvider. The default limit for this resource is "unlimited". (#2637)

This option replaces the WithSpanLimits option. Zero or negative values will not be changed to the default value like WithSpanLimits does. 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. Consequentially, limits should be constructed using NewSpanLimits and updated accordingly. (#2637)

Changed

Fixed

Deprecated

Use WithRawSpanLimits instead. That option allows setting unlimited and zero limits, this option does not. This option will be kept until the next major version incremented release. (#2637)

[1.4.1] - 2022-02-16

Fixed

[1.4.0] - 2022-02-11

Added

To enable use a logger with Verbosity (V level) >=1. (#2500)

The following environment variables are used. (#2515) - OTEL_BSP_SCHEDULE_DELAY - OTEL_BSP_EXPORT_TIMEOUT - OTEL_BSP_MAX_QUEUE_SIZE. - OTEL_BSP_MAX_EXPORT_BATCH_SIZE

Changed

Deprecated

Use the go.opentelemetry.io/otel/sdk/metric module instead. (#2382)

Fixed

Instead of dropping the least-recently-used attribute, the last added attribute is dropped. This drop order still only applies to attributes with unique keys not already contained in the span. If an attribute is added with a key already contained in the span, that attribute is updated to the new value being added. (#2576)

Removed

- `Metric.GetIntGauge()` - `Metric.GetIntHistogram()` - `Metric.GetIntSum()`

[1.3.0] - 2021-12-10

⚠️ Notice ⚠️

We have updated the project minimum supported Go version to 1.16

Added

This can be used by the SDK and API to provide users with feedback of the internal state. To enable verbose logs configure the logger which will print V(1) logs. For debugging information configure to print V(5) logs. (#2343)

Changed

Fixed

Any per-signal endpoint set via an OTEL_EXPORTER_OTLP_<signal>_ENDPOINT environment variable is now used without modification of the path. 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)

Deprecated

Removed

[1.2.0] - 2021-11-12

Changed

- The following interface types simply moved from metric to metric/sdkapi: Descriptor, MeterImpl, InstrumentImpl, SyncImpl, BoundSyncImpl, AsyncImpl, AsyncRunner, AsyncSingleRunner, and AsyncBatchRunner - The following struct types moved and are replaced with type aliases, since they are exposed to the user: Observation, Measurement. - The No-op implementations of sync and async instruments are no longer exported, new functions sdkapi.NewNoopAsyncInstrument() and sdkapi.NewNoopSyncInstrument() are provided instead. (#2271)

Added

[1.1.0] - 2021-10-27

Added

The package contains semantic conventions from the v1.7.0 version of the OpenTelemetry specification. (#2320)

The package contains semantic conventions from the v1.6.1 version of the OpenTelemetry specification. (#2321)

The package contains semantic conventions from the v1.5.0 version of the OpenTelemetry specification. (#2322) - When upgrading from the semconv/v1.4.0 package note the following name changes: - K8SReplicasetUIDKey -> K8SReplicaSetUIDKey - K8SReplicasetNameKey -> K8SReplicaSetNameKey - K8SStatefulsetUIDKey -> K8SStatefulSetUIDKey - k8SStatefulsetNameKey -> K8SStatefulSetNameKey - K8SDaemonsetUIDKey -> K8SDaemonSetUIDKey - K8SDaemonsetNameKey -> K8SDaemonSetNameKey

Changed

Fixed

[1.0.1] - 2021-10-01

Fixed

[Metrics 0.24.0] - 2021-10-01

Changed

- The former "go.opentelemetry.io/otel/sdk/export/metric".CheckpointSet is renamed Reader. - The new interface is named "go.opentelemetry.io/otel/sdk/export/metric".InstrumentationLibraryReader.

[1.0.0] - 2021-09-20

This is the first stable release for the project. This release includes an API and SDK for the tracing signal that will comply with the stability guarantees defined by the projects versioning policy.

Added

Fixed

Removed

Use the typed functions and methods added to the package instead. (#2235) - The Key.Array method is removed. - The Array function is removed. - The Any function is removed. - The ArrayValue function is removed. - The AsArray function is removed.

[1.0.0-RC3] - 2021-09-02

Added

- BoolSlice, IntSlice, Int64Slice, Float64Slice, and StringSlice replace the use of the Array function in the package.

Included is an example application that computes Fibonacci numbers. (#2203)

Changed

- ValueRecorder becomes Histogram - ValueObserver becomes Gauge - SumObserver becomes CounterObserver - UpDownSumObserver becomes UpDownCounterObserver The API exported from this project is still considered experimental. (#2202)

Deprecated

All functionality from this package now exists in the go.opentelemetry.io/otel/bridge/opencensus package. The functions from that package should be used instead. (#2166)

Use the typed *Slice functions and types added to the package instead. (#2162)

Use the typed functions instead. (#2181)

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)

Removed

Fixed

[1.0.0-RC2] - 2021-07-26

Added

This option is a replacement for the removed WithMaxAttempts and WithBackoff options. (#2095)

This new type replaces the equal-named API Link type found in the otel/trace package for most usages within the SDK. For example, instances of this type are now returned by the Links() function of ReadOnlySpans provided in places like the OnEnd function of SpanProcessor implementations. (#2118)

This type can be used with the default SDK as a SpanProcessor during testing. (#2132)

Changed

Deprecated

Use the trace.ParseTraceState function instead. (#2122)

Removed

The explicit With* options for every built-in detector should be used instead. (#2026 #2097)

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)

Fixed

This fix will by default set the status to Unset if it is not explicitly set to Ok or Error. (#2099 #2102)

[Experimental Metrics v0.22.0] - 2021-07-19

Added

Removed

[1.0.0-RC1] / 0.21.0 - 2021-06-18

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 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 with major version 0.

Added

- The following status codes are defined as transient errors:

gRPC Status CodeDescription
1Cancelled
4Deadline Exceeded
8Resource Exhausted
10Aborted
10Out of Range
14Unavailable
15Data Loss

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)

It can be used to decode a TraceState from a tracestate header string value. (#1937)

This method returns the number of list-members the TraceState holds. (#1937)

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)

These functions replace the Set, Value, ContextWithValue, ContextWithoutValue, and ContextWithEmpty functions from that package and directly work with the new Baggage type. (#1967)

Changed

NewSplitDriver now automatically implements an internal noopDriver for SplitConfig fields that are not initialized. (#1798)

This method returns the status of a span using the new Status type. (#1874)

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)

This function is preserved for testing purposes where it may be useful to create a TraceState from attribute.KeyValues, but it is not intended for production use. The new ParseTraceState function should be used to create a TraceState. (#1931)

Deprecated

Removed

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. The IsRecording method returns if the span is recording or not. A read-only span value does not need to know if updates to it will be recorded or not. By definition, it cannot be updated so there is no point in communicating if an update is recorded. (#1873)

The use of this type has been replaced with the use of the explicitly immutable ReadOnlySpan type. 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)

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. The "go.opentelemetry.io/otel".Tracer function or a TracerProvider should be used to acquire a library specific Tracer instead. (#1900) - The TracerProvider() method on the Span interface may also be used to obtain a TracerProvider using the same trace processing pipeline. (#2009)

Handling of baggage is now done using the added Baggage type and related context functions (ContextWithBaggage, ContextWithoutBaggage, and FromContext) in that package. (#1967)

These functions were deemed premature attempts to provide convenience that did not achieve this aim. (#1985)

Fixed

Security

[0.20.0] - 2021-04-23

Added

These environment variables can be used to override Jaeger agent hostname and port (#1752)

- process.pid - process.executable.name - process.executable.path - process.command_args - process.owner - process.runtime.name - process.runtime.version - process.runtime.description

- OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT - OTEL_EXPORTER_OTLP_HEADERS - OTEL_EXPORTER_OTLP_TRACES_HEADERS - OTEL_EXPORTER_OTLP_METRICS_HEADERS - OTEL_EXPORTER_OTLP_COMPRESSION - OTEL_EXPORTER_OTLP_TRACES_COMPRESSION - OTEL_EXPORTER_OTLP_METRICS_COMPRESSION - OTEL_EXPORTER_OTLP_TIMEOUT - OTEL_EXPORTER_OTLP_TRACES_TIMEOUT - OTEL_EXPORTER_OTLP_METRICS_TIMEOUT - OTEL_EXPORTER_OTLP_CERTIFICATE - OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE - OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE

Fixed

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)

Additionally, this tag is overridden, as specified in the OTel specification, if the event contains an attribute with that key. (#1768)

Instead, the exporter now splits the batch into smaller sendable batches. (#1828)

Changed

The Span's SpanContext can now self-identify as being remote or not. This means that "go.opentelemetry.io/otel/trace".ContextWithRemoteSpanContext will now overwrite any existing current Span, not just existing remote Spans, and make it the current Span in a context.Context. (#1731)

The existing ParentSpanID and HasRemoteParent fields are removed in favor of this. (#1748)

This changes it to make SamplingParameters conform with the OpenTelemetry specification. (#1749)

to OTEL_EXPORTER_JAEGER_ENDPOINT, OTEL_EXPORTER_JAEGER_USER, OTEL_EXPORTER_JAEGER_PASSWORD in compliance with OTel specification. (#1752)

It no longer is a conglomerate of itself, events, and link attributes that have been dropped. (#1771)

This enables the caller to shutdown and flush using the related TracerProvider methods. (#1822)

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)

Removed

These environment variables will no longer be used to override values of the Jaeger exporter (#1752)

This is unspecified behavior that the OpenTelemetry community plans to standardize in the future. To prevent backwards incompatible changes when it is specified, these links are removed. (#1726)

Because of this "go.opentelemetry.io/otel/trace".RemoteSpanContextFromContext is removed as it is no longer needed. Instead, "go.opentelemetry.io/otel/trace".SpanContextFromContext can be used to return the current Span. If needed, that Span's SpanContext.IsRemote() can then be used to determine if it is remote or not. (#1731)

This field is redundant to the information returned from the Remote method of the SpanContext held in the ParentContext field. (#1749)

The information that could be configured in the Process struct should be configured in a Resource instead. (#1776, #1804)

To disable the exporter unregister it from the TracerProvider or use a no-operation TracerProvider. (#1806)

These functions for retrieving specific environment variable values are redundant of other internal functions and are not intended for end user use. (#1824)

This option was used to set SDK options for the exporter creation convenience functions. These functions are provided as a way to easily setup or install the exporter with what are deemed reasonable SDK settings for common use cases. If the SDK needs to be configured differently, the NewRawExporter function and direct setup of the SDK with the desired settings should be used. (#1825)

The exporter no longer batches exports, instead relying on the SDK's BatchSpanProcessor for this functionality. (#1830)

The type is no longer used by the exporter to configure anything. All the previous configurations these options provided were duplicates of SDK configuration. 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)

[0.19.0] - 2021-03-18

Added

Changed

- trace.NewSpanContext() can be used in conjunction with the trace.SpanContextConfig struct to initialize a new SpanContext where all values are known.

Removed

These are now returned as a SpanProcessor interface from their respective constructors. (#1638)

Fixed

[0.18.0] - 2021-03-03

Added

OSGo VersionArchitecture
Ubuntu1.15amd64
Ubuntu1.14amd64
Ubuntu1.15386
Ubuntu1.14386
MacOS1.15amd64
MacOS1.14amd64
Windows1.15amd64
Windows1.14amd64
Windows1.15386
Windows1.14386

Changed

StandardSpanRecorder. (#1542)

` "otel/exporters/otlp/otlphttp".Option "otel/exporters/stdout".Option "otel/oteltest".Option "otel/trace".TracerOption "otel/trace".SpanOption "otel/trace".EventOption "otel/trace".LifeCycleOption "otel/trace".InstrumentationOption "otel/sdk/resource".Option "otel/sdk/trace".ParentBasedSamplerOption "otel/sdk/trace".ReadOnlySpan "otel/sdk/trace".ReadWriteSpan `

Removed

This was replaced with a full compatibility testing suite (i.e. multi OS/arch) in the CI system. (#1567)

Fixed

[0.17.0] - 2021-02-12

Changed

Fixed

[0.16.0] - 2021-01-13

Added

Changed

- WithExporter() and Start() to configure Push behavior - Start() is optional; use Collect() and ForEach() for Pull behavior - Start() and Stop() accept Context. (#1378)

Removed

Fixed

[0.15.0] - 2020-12-10

Added

Changed

Fixed

[0.14.0] - 2020-11-19

Added

Changed

- ID has been renamed to TraceID. - IDFromHex has been renamed to TraceIDFromHex. - EmptySpanContext is removed.

- supports OTLP v0.6.0 (#1230, #1354) - supports configurable aggregation temporality (default: Cumulative, optional: Stateless). (#1296)

This matches the returned type and fixes misuse of the term metric. (#1240)

host.name semantic conventions; the former method is renamed resource.NewWithAttributes. (#1235)

Removed

It is replaced by using the AddEvent method with a WithTimestamp option. (#1254)

Tracer and Span from the same module should be used in their place instead. (#1306)

Fixed

[0.13.0] - 2020-10-08

Added

Changed

They now are Unset, Error, and Ok. They no longer track the gRPC codes. (#1214)

Fixed

Removed

The explicit TextMapPropagator type can be used in its place as this is the Propagator type the specification defines. (#1212)

[0.12.0] - 2020-09-24

Added

This addition was made to conform with our project option conventions. (#1155)

Changed

This change adds a new optional implementation of the udp conn interface used to detect changes to an agent's host dns record. 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)

This change is matched by replacing the StartConfig and EndConfig with a unified SpanConfig. (#1108)

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)

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)

The correlation.CorrelationContext propagator has been renamed baggage.Baggage. Other exported functions and types are unchanged.

recommend the use of newConfig() instead of configure(). (#1163)

Style Guide to reflect this styling rule. (#1172)

go.opentelemetry.io/otel/api/metric.ConfigureMeter to NewMeterConfig.

Removed

go.opentelemetry.io/contrib/propagators/ module. (#1191)

Fixed

[0.11.0] - 2020-08-24

Added

Changed

This removes the package dependencies of this bridge from the rest of the OpenTelemetry based project. (#1038)

Rename *Callback with *Func. (#1061)

This interface still supports the export of SpanData, but only as a slice. 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)

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)

This change is related to NewBatchSpanProcessor not returning an error which was the only error this function would return. (#1078)

Removed

Use the `Sampler` interface provided by the SDK instead.

This move includes moving the grpc example to the go.opentelemetry.io/contrib as well. (#1027)

The functionality this method provided was limited compared to what a user can provide themselves. It was removed with the understanding that if there is sufficient user need it can be added back based on actual user usage. (#1043)

These were holdovers from an approach prior to the TracerProvider design. They were not used anymore. (#1077)

Fixed

[0.10.0] - 2020-07-29

This release migrates the default OpenTelemetry SDK into its own Go module, decoupling the SDK from the API and reducing dependencies for instrumentation packages.

Added

These function build a new exporter with default SDK options and register the exporter with the global package respectively. (#944)

Changed

This matches the other exporter constructor patterns and will register a new exporter after building it with default configuration. (#944)

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)

- value.Bool was replaced with kv.BoolValue. - value.Int64 was replaced with kv.Int64Value. - value.Uint64 was replaced with kv.Uint64Value. - value.Float64 was replaced with kv.Float64Value. - value.Int32 was replaced with kv.Int32Value. - value.Uint32 was replaced with kv.Uint32Value. - value.Float32 was replaced with kv.Float32Value. - value.String was replaced with kv.StringValue. - value.Int was replaced with kv.IntValue. - value.Uint was replaced with kv.UintValue. - value.Array was replaced with kv.ArrayValue.

Removed

Fixed

[0.9.0] - 2020-07-20

Added

References to github.com/open-telemetry/opentelemetry-proto changed to go.opentelemetry.io/otel/internal/opentelemetry-proto-gen. (#942)

Changed

Removed

[0.8.0] - 2020-07-09

Added

A value for HTTP supported encodings (Multiple Header: MultipleHeader, Single Header: SingleHeader) are included. (#882)

Changed

This new field can be set to combinations of the B3Encoding bitmasks and will inject trace information in these encodings. If no encoding is set, the propagator will default to MultipleHeader encoding. (#882)

Preference is given to Single Header encoding with Multiple Header being the fallback if Single Header is not found or is invalid. 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)

- "api/standard".FaaSName -> FaaSNameKey - "api/standard".FaaSID -> FaaSIDKey - "api/standard".FaaSVersion -> FaaSVersionKey - "api/standard".FaaSInstance -> FaaSInstanceKey

Removed

The purpose of this flag was to act as the inverse of FlagsSampled, the inverse of FlagsSampled is used instead. (#882)

If B3 header keys are needed the authoritative OpenZipkin package constants should be used instead. (#882)

Fixed

This removes the behavior of changing the debug flag into a set sampling bit. Instead, this now follow the B3 specification and omits the X-B3-Sampling header. (#882)

This is in accordance with OpenTelemetry semantic conventions. (#922)

[0.7.0] - 2020-06-26

This release implements the v0.5.0 version of the OpenTelemetry specification.

Added

This replaces the prior Record struct use for this purpose. (#835)

This instrumentation version is passed on to exporters. (#811) (#805) (#802)

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)

Changed

With these changes, cumulative and delta specific exporters are able to request the correct kind of aggregation from the SDK. (#840)

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. Some of the Aggregators used unnecessary locking and that has been cleaned up. (#812)

Removed

Fixed

[0.6.0] - 2020-05-21

Added

Changed

Fixed

[0.5.0] - 2020-05-13

Added

Changed

Fixed

[0.4.3] - 2020-04-24

Added

Changed

Removed

Fixed

[0.4.2] - 2020-03-31

Fixed

[0.4.1] - 2020-03-31

Fixed

[0.4.0] - 2020-03-30

Added

Removed

This additionally removes support for statsd. (#591)

This is replaced by a []core.KeyValue slice. (#595)

Changed

Fixed

[0.3.0] - 2020-03-21

This is a first official beta release, which provides almost fully complete metrics, tracing, and context propagation functionality. There is still a possibility of breaking changes.

Added

Additionally, SyncImpl and AsyncImpl are added to support general purpose instrument construction. (#560)

Changed

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)

Removed

Fixed

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. This is a cheap and quick way to avoid encoding the labels on every collection interval. (#572)

[0.2.3] - 2020-03-04

Added

Changed

The go.opentelemetry.io/otel/exporter/trace/jaeger package was mistakenly released with a v1.0.0 tag instead of v0.1.0. This resulted in all subsequent releases not becoming the default latest. A consequence of this was that all go gets pulled in the incompatible v0.1.0 release of that package when pulling in more recent packages from other otel packages. Renaming the exporter directory to exporters fixes this issue by renaming the package and therefore clearing any existing dependency tags. Consequentially, this action also renames all exporter packages. (#502)

Removed

[0.2.2] - 2020-02-27

Added

Changed

Removed

Fixed

[0.2.1.1] - 2020-01-13

Fixed

[0.2.1] - 2020-01-08

Added

This enables deferred initialization for metric instruments registered before the first Meter SDK is installed. (#392)

This enables deferred initialization for tracers registered before the first Trace SDK is installed. (#406)

Changed

Fixed

[0.2.0] - 2019-12-03

Added

Changed

Removed

Fixed

Previously it was testing AlwaysSample twice. (#325)

This allowed distinct label sets through, but any metrics sharing a label set could be overwritten or merged incorrectly. This was corrected. (#333)

[0.1.2] - 2019-11-18

Fixed

[0.1.1] - 2019-11-18

This release contains a Metrics SDK with stdout exporter and supports basic aggregations such as counter, gauges, array, maxsumcount, and ddsketch.

Added

Removed

Changed

Fixed

[0.1.0] - 2019-11-04

This is the first release of open-telemetry go library. It contains api and sdk for trace and meter.

Added

[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...HEAD [1.38.0/0.60.0/0.14.0/0.0.13]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.38.0 [1.37.0/0.59.0/0.13.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.37.0 [0.12.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/log/v0.12.2 [0.12.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/log/v0.12.1 [1.36.0/0.58.0/0.12.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.36.0 [1.35.0/0.57.0/0.11.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.35.0 [1.34.0/0.56.0/0.10.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.34.0 [1.33.0/0.55.0/0.9.0/0.0.12]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.33.0 [1.32.0/0.54.0/0.8.0/0.0.11]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.32.0 [1.31.0/0.53.0/0.7.0/0.0.10]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.31.0 [1.30.0/0.52.0/0.6.0/0.0.9]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.30.0 [1.29.0/0.51.0/0.5.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.29.0 [1.28.0/0.50.0/0.4.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.28.0 [1.27.0/0.49.0/0.3.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.27.0 [1.26.0/0.48.0/0.2.0-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.26.0 [1.25.0/0.47.0/0.0.8/0.1.0-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.25.0 [1.24.0/0.46.0/0.0.1-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.24.0 [1.23.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.23.1 [1.23.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.23.0 [1.23.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.23.0-rc.1 [1.22.0/0.45.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.22.0 [1.21.0/0.44.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.21.0 [1.20.0/0.43.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.20.0 [1.19.0/0.42.0/0.0.7]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.19.0 [1.19.0-rc.1/0.42.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.19.0-rc.1 [1.18.0/0.41.0/0.0.6]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.18.0 [1.17.0/0.40.0/0.0.5]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.17.0 [1.16.0/0.39.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.16.0 [1.16.0-rc.1/0.39.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.16.0-rc.1 [1.15.1/0.38.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.1 [1.15.0/0.38.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0 [1.15.0-rc.2/0.38.0-rc.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.2 [1.15.0-rc.1/0.38.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.1 [1.14.0/0.37.0/0.0.4]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.14.0 [1.13.0/0.36.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.13.0 [1.12.0/0.35.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.12.0 [1.11.2/0.34.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.2 [1.11.1/0.33.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.1 [1.11.0/0.32.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.0 [0.32.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/sdk/metric/v0.32.2 [0.32.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/sdk/metric/v0.32.1 [0.32.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/sdk/metric/v0.32.0 [1.10.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.10.0 [1.9.0/0.0.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.9.0 [1.8.0/0.31.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.8.0 [1.7.0/0.30.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.7.0 [0.29.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/metric/v0.29.0 [1.6.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.3 [1.6.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.2 [1.6.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.1 [1.6.0/0.28.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.0 [1.5.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.5.0 [1.4.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.4.1 [1.4.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.4.0 [1.3.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.3.0 [1.2.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.2.0 [1.1.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.1.0 [1.0.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.1 [Metrics 0.24.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/metric/v0.24.0 [1.0.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0 [1.0.0-RC3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0-RC3 [1.0.0-RC2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0-RC2 [Experimental Metrics v0.22.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/metric/v0.22.0 [1.0.0-RC1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0-RC1 [0.20.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.20.0 [0.19.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.19.0 [0.18.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.18.0 [0.17.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.17.0 [0.16.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.16.0 [0.15.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.15.0 [0.14.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.14.0 [0.13.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.13.0 [0.12.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.12.0 [0.11.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.11.0 [0.10.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.10.0 [0.9.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.9.0 [0.8.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.8.0 [0.7.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.7.0 [0.6.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.6.0 [0.5.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.5.0 [0.4.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.3 [0.4.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.2 [0.4.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.1 [0.4.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.0 [0.3.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.3.0 [0.2.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.3 [0.2.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.2 [0.2.1.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.1.1 [0.2.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.1 [0.2.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.0 [0.1.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.1.2 [0.1.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.1.1 [0.1.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.1.0

<!-- Released section ended -->

[Go 1.25]: https://go.dev/doc/go1.25 [Go 1.24]: https://go.dev/doc/go1.24 [Go 1.23]: https://go.dev/doc/go1.23 [Go 1.22]: https://go.dev/doc/go1.22 [Go 1.21]: https://go.dev/doc/go1.21 [Go 1.20]: https://go.dev/doc/go1.20 [Go 1.19]: https://go.dev/doc/go1.19 [Go 1.18]: https://go.dev/doc/go1.18

[metric API]:https://pkg.go.dev/go.opentelemetry.io/otel/metric [metric SDK]:https://pkg.go.dev/go.opentelemetry.io/otel/sdk/metric [trace API]:https://pkg.go.dev/go.opentelemetry.io/otel/trace

[GO-2024-2687]: https://pkg.go.dev/vuln/GO-2024-2687