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.
go.opentelemetry.io/otel/semconv/v1.33.0 package. 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)go.opentelemetry.io/otel/semconv/v1.34.0 package. The package contains semantic conventions from the v1.34.0 version of the OpenTelemetry Semantic Conventions. (#6812)otel_scope_schema_url label in go.opentelemetry.io/otel/exporters/prometheus. (#5947)otel_scope_[attribute] labels in go.opentelemetry.io/otel/exporters/prometheus. (#5947)EventName to EnabledParameters in go.opentelemetry.io/otel/log. (#6825)EventName to EnabledParameters in go.opentelemetry.io/otel/sdk/log. (#6825)go.opentelemetry.io/otel/exporters/prometheus metric renaming to add unit suffixes when it doesn't match one of the pre-defined values in the unit suffix map. (#6839)v1.26.0 to v1.34.0 in go.opentelemetry.io/otel/bridge/opentracing. (#6827)v1.26.0 to v1.34.0 in go.opentelemetry.io/otel/exporters/zipkin. (#6829)v1.26.0 to v1.34.0 in go.opentelemetry.io/otel/metric. (#6832)v1.26.0 to v1.34.0 in go.opentelemetry.io/otel/sdk/resource. (#6834)v1.26.0 to v1.34.0 in go.opentelemetry.io/otel/sdk/trace. (#6835)v1.26.0 to v1.34.0 in go.opentelemetry.io/otel/trace. (#6836)Record.Resource now returns *resource.Resource instead of resource.Resource in go.opentelemetry.io/otel/sdk/log. (#6864)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc, go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc, go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp, go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp, go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#6898)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#6710)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#6710)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc. (#6710)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#6710)go.opentelemetry.io/otel/exporters/prometheus. (#6822)go.opentelemetry.io/otel/sdk/metric. (#6914)go.opentelemetry.io/otel/exporters/prometheus no longer exports otel_scope_info metric. (#6770)v0.12.0 release of go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc module that contains invalid dependencies. (#6804)v0.12.0 release of go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp module that contains invalid dependencies. (#6804)v0.12.0 release of go.opentelemetry.io/otel/exporters/stdout/stdoutlog module that contains invalid dependencies. (#6804)go.opentelemetry.io/otel/sdk/log/logtest in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc. (#6800)go.opentelemetry.io/otel/sdk/log/logtest in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#6800)go.opentelemetry.io/otel/sdk/log/logtest in go.opentelemetry.io/otel/exporters/stdout/stdoutlog. (#6800)go.opentelemetry.io/otel/exporters/prometheus. (#6421)go.opentelemetry.io/otel/semconv/v1.31.0 package. 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)Recording, Scope, and Record types in go.opentelemetry.io/otel/log/logtest. (#6507)WithHTTPClient option to configure the http.Client used by go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#6751)WithHTTPClient option to configure the http.Client used by go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#6752)WithHTTPClient option to configure the http.Client used by go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#6688)ValuesGetter in go.opentelemetry.io/otel/propagation, a TextMapCarrier that supports retrieving multiple values for a single key. (#5973)Values method to HeaderCarrier to implement the new ValuesGetter interface in go.opentelemetry.io/otel/propagation. (#5973)Baggage in go.opentelemetry.io/otel/propagation to retrieve multiple values for a key when the carrier implements ValuesGetter. (#5973)AssertEqual function in go.opentelemetry.io/otel/log/logtest. (#6662)go.opentelemetry.io/otel/semconv/v1.32.0 package. 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)Transform option in go.opentelemetry.io/otel/log/logtest. (#6794)Desc option in go.opentelemetry.io/otel/log/logtest. (#6796)Resource field from EnabledParameters in go.opentelemetry.io/otel/sdk/log. (#6494)RecordFactory type from go.opentelemetry.io/otel/log/logtest. (#6492)ScopeRecords, EmittedRecord, and RecordFactory types from go.opentelemetry.io/otel/log/logtest. (#6507)AssertRecordEqual function in go.opentelemetry.io/otel/log/logtest, use AssertEqual instead. (#6662)github.com/prometheus/client_golang to v1.21.1, which changes the NameValidationScheme to UTF8Validation. 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)len(keys) in NewAllowKeysFilter and NewDenyKeysFilter to avoid unnecessary allocations in go.opentelemetry.io/otel/attribute. (#6455)go.opentelemetry.io/otel/log/logtest is now a separate Go module. (#6465)go.opentelemetry.io/otel/sdk/log/logtest is now a separate Go module. (#6466)Recorder in go.opentelemetry.io/otel/log/logtest no longer separately stores records emitted by loggers with the same instrumentation scope. (#6507)BatchProcessor in go.opentelemetry.io/otel/sdk/log by not exporting when exporter cannot accept more. (#6569, #6641)model.LegacyValidation for go.opentelemetry.io/otel/exporters/prometheus. (#6449)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc and go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#6392)noopSpan.tracerProvider method is not inlined in go.opentelemetry.io/otel/trace so the go.opentelemetry.io/auto instrumentation can instrument non-recording spans. (#6456)sync.Pool instead of allocating metricdata.ResourceMetrics in go.opentelemetry.io/otel/exporters/prometheus. (#6472)This release is the last to support Go 1.22. The next release will require at least Go 1.23.
ValueFromAttribute and KeyValueFromAttribute in go.opentelemetry.io/otel/log. (#6180)EventName and SetEventName to Record in go.opentelemetry.io/otel/log. (#6187)EventName to RecordFactory in go.opentelemetry.io/otel/log/logtest. (#6187)AssertRecordEqual in go.opentelemetry.io/otel/log/logtest checks Record.EventName. (#6187)EventName and SetEventName to Record in go.opentelemetry.io/otel/sdk/log. (#6193)EventName to RecordFactory in go.opentelemetry.io/otel/sdk/log/logtest. (#6193)Record.EventName field in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc. (#6211)Record.EventName field in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#6211)Record.EventName field in go.opentelemetry.io/otel/exporters/stdout/stdoutlog (#6210)go.opentelemetry.io/otel/semconv/v1.28.0 package. 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)go.opentelemetry.io/otel/semconv/v1.30.0 package. 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 as a comparable type. Resource.Equal and Resource.Equivalent should be used instead. (#6272)FilterProcessor and EnabledParameters in go.opentelemetry.io/otel/sdk/log. 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)github.com/prometheus/common to v0.62.0, which changes the NameValidationScheme to NoEscaping. 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)NewSimpleSpanProcessor in go.opentelemetry.io/otel/sdk/trace when Shutdown is called and the passed ctx is canceled and SpanExporter.Shutdown has not returned. (#6368)NewBatchSpanProcessor in go.opentelemetry.io/otel/sdk/trace when ForceFlush is called and the passed ctx is canceled and SpanExporter.Export has not returned. (#6369)Logger to make the whole Logs API user-facing in go.opentelemetry.io/otel/log. (#6167)Type name logged for the go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc client is corrected from otlphttpgrpc to otlptracegrpc. (#6143)Type name logged for the go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlphttpgrpc client is corrected from otlphttphttp to otlptracehttp. (#6143)Reset method to SpanRecorder in go.opentelemetry.io/otel/sdk/trace/tracetest. (#5994)EnabledInstrument interface in go.opentelemetry.io/otel/sdk/metric/internal/x. 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)go.opentelemetry.io/auto package. See that package for more information. (#5920)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#5929)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#5929)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#5929)AsStringSlice, AsFloat64Slice, AsInt64Slice, AsBoolSlice. (#6011)EnabledParameters to have a Severity field instead of a getter and setter in go.opentelemetry.io/otel/log. (#6009)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#5954)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#5954)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#5954)go.opentelemetry.io/otel/exporters/prometheus. (#5995)go.opentelemetry.io/otel/sdk/trace. (#5997)go.opentelemetry.io/otel/sdk/log. (#6032)go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter, which can be used to disable exemplar recording. (#5850)go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter, which can be used to configure the exemplar filter used by the metrics SDK. (#5850)ExemplarReservoirProviderSelector and DefaultExemplarReservoirProviderSelector to go.opentelemetry.io/otel/sdk/metric, which defines the exemplar reservoir to use based on the aggregation of the metric. (#5861)ExemplarReservoirProviderSelector to go.opentelemetry.io/otel/sdk/metric.Stream to allow using views to configure the exemplar reservoir to use for a metric. (#5861)ReservoirProvider, HistogramReservoirProvider and FixedSizeReservoirProvider to go.opentelemetry.io/otel/sdk/metric/exemplar to make it convenient to use providers of Reservoirs. (#5861)go.opentelemetry.io/otel/semconv/v1.27.0 package. The package contains semantic conventions from the v1.27.0 version of the OpenTelemetry Semantic Conventions. (#5894)Attributes attribute.Set field to Scope in go.opentelemetry.io/otel/sdk/instrumentation. (#5903)Attributes attribute.Set field to ScopeRecords in go.opentelemetry.io/otel/log/logtest. (#5927)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc adds instrumentation scope attributes. (#5934)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp adds instrumentation scope attributes. (#5934)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc adds instrumentation scope attributes. (#5935)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp adds instrumentation scope attributes. (#5935)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc adds instrumentation scope attributes. (#5933)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp adds instrumentation scope attributes. (#5933)go.opentelemetry.io/otel/exporters/prometheus adds instrumentation scope attributes in otel_scope_info metric as labels. (#5932)Tracer in go.opentelemetry.io/otel and go.opentelemetry.io/otel/sdk/trace. (#5924)Meter in go.opentelemetry.io/otel and go.opentelemetry.io/otel/sdk/metric. (#5926)Logger in go.opentelemetry.io/otel and go.opentelemetry.io/otel/sdk/log. (#5925)Tracer in go.opentelemetry.io/otel/bridge/opentracing. (#5931)go.opentelemetry.io/otel/sdk/metric and go.opentelemetry.io/otel/sdk/trace. (#5804)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc now keeps the metadata already present in the context when WithHeaders is used. (#5892)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc now keeps the metadata already present in the context when WithHeaders is used. (#5911)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc now keeps the metadata already present in the context when WithHeaders is used. (#5915)go.opentelemetry.io/otel/exporters/prometheus trying to add exemplars to Gauge metrics, which is unsupported. (#5912)WithEndpointURL to always use a secure connection when an https URL is passed in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc. (#5944)WithEndpointURL to always use a secure connection when an https URL is passed in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#5944)WithEndpointURL to always use a secure connection when an https URL is passed in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#5944)WithEndpointURL to always use a secure connection when an https URL is passed in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#5944)go.opentelemetry.io/otel/sdk/metric. (#5900)go.opentelemetry.io/otel/example as they are moved to Contrib repository. (#5930)go.opentelemetry.io/otel/sdk/metric/exemplar package which includes Exemplar, Filter, TraceBasedFilter, AlwaysOnFilter, HistogramReservoir, FixedSizeReservoir, Reservoir, Value and ValueType types. These will be used for configuring the exemplar reservoir for the metrics sdk. (#5747, #5862)WithExportBufferSize option to log batch processor.(#5877)go.opentelemetry.io/otel/sdk/metric. Exemplars can be disabled by setting OTEL_METRICS_EXEMPLAR_FILTER=always_off (#5778)Logger.Enabled in go.opentelemetry.io/otel/log now accepts a newly introduced EnabledParameters type instead of Record. (#5791)FilterProcessor.Enabled in go.opentelemetry.io/otel/sdk/log/internal/x now accepts EnabledParameters instead of Record. (#5791)Record type in go.opentelemetry.io/otel/log is no longer comparable. (#5847)SetAttributes method in Span. (#5864)Event and Link lists in Span. (#5858)AddEvent, AddLink, RecordError and End methods in Span. (#5874)go.opentelemetry.io/otel/example as they are moved to Contrib repository. (#5854)FixedSize exemplar reservoirs identified in #5814 is resolved. (#5819)reflect.TypeOf to use a nil pointer to not allocate on the heap unless necessary. (#5827)OTEL_EXPORTER_OTLP_LOGS_INSECURE and OTEL_EXPORTER_OTLP_INSECURE environments in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc. (#5739)WithResource option for NewMeterProvider now merges the provided resources with the ones from environment variables. (#5773)WithResource option for NewLoggerProvider now merges the provided resources with the ones from environment variables. (#5773)go.opentelemetry.io/otel/exporters/prometheus. (#5755)MeterProvider when identical instruments are repeatedly created. (#5754)SetMeterProvider in go.opentelemetry.io/otel might miss the delegation for instruments and registries. (#5780)This release is the last to support Go 1.21. The next release will require at least Go 1.22.
InstrumentationScope field to SpanStub in go.opentelemetry.io/otel/sdk/trace/tracetest, as a replacement for the deprecated InstrumentationLibrary. (#5627)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc. 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)Walk function to TraceState in go.opentelemetry.io/otel/trace to iterate all the key-value pairs. (#5651)go.opentelemetry.io/otel/bridge/opencensus. (#5651)SimpleProcessor in go.opentelemetry.io/otel/sdk/log no longer panics. (#5665)FilterProcessor interface type is added in go.opentelemetry.io/otel/sdk/log/internal/x. 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)NewMemberRaw, NewKeyProperty and NewKeyValuePropertyRaw in go.opentelemetry.io/otel/baggage allow UTF-8 string in key. (#5132)Processor.OnEmit in go.opentelemetry.io/otel/sdk/log now accepts a pointer to Record instead of a value so that the record modifications done in a processor are propagated to subsequent registered processors. (#5636)SimpleProcessor.Enabled in go.opentelemetry.io/otel/sdk/log now returns false if the exporter is nil. (#5665)Exporter in go.opentelemetry.io/otel/sdk/log. (#5666)SimpleProcessor in go.opentelemetry.io/otel/sdk/log synchronizes OnEmit calls. (#5666)Processor interface in go.opentelemetry.io/otel/sdk/log no longer includes the Enabled method. See the FilterProcessor interface type added in go.opentelemetry.io/otel/sdk/log/internal/x to continue providing this functionality. (#5692)SimpleProcessor type in go.opentelemetry.io/otel/sdk/log is no longer comparable. (#5693)BatchProcessor type in go.opentelemetry.io/otel/sdk/log is no longer comparable. (#5693)WithEndpoint and WithEndpointURL options and their corresponding environment variables in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#5584)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp, go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp and go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#5541)Tracer, Meter, and Logger names used in go.opentelemetry.io/otel/example/dice. (#5612)Tracer names used in go.opentelemetry.io/otel/example/namedtracer. (#5612)Tracer name used in go.opentelemetry.io/otel/example/opencensus. (#5612)Tracer and Meter names used in go.opentelemetry.io/otel/example/otel-collector. (#5612)Tracer names used in go.opentelemetry.io/otel/example/passthrough. (#5612)Meter name used in go.opentelemetry.io/otel/example/prometheus. (#5612)Tracer names used in go.opentelemetry.io/otel/example/zipkin. (#5612)WithEndpoint and WithEndpointURL options and their corresponding environment variables in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc and go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#5641)WithEndpoint and WithEndpointURL options and their corresponding environment variables in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#5650)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp, go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc and go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp (#5705)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp, go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc and go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp (#5705)Enabled method of the SimpleProcessor in go.opentelemetry.io/otel/sdk/log is removed. (#5692)Enabled method of the BatchProcessor in go.opentelemetry.io/otel/sdk/log is removed. (#5692)IsEmpty method is added to the Instrument type in go.opentelemetry.io/otel/sdk/metric. This method is used to check if an Instrument instance is a zero-value. (#5431)context.Context in ScopeRecords of go.opentelemetry.io/otel/sdk/log/logtest. (#5468)go.opentelemetry.io/otel/semconv/v1.26.0 package. The package contains semantic conventions from the v1.26.0 version of the OpenTelemetry Semantic Conventions. (#5476)AssertRecordEqual method to go.opentelemetry.io/otel/log/logtest to allow comparison of two log records in tests. (#5499)WithHeaders option to go.opentelemetry.io/otel/exporters/zipkin to allow configuring custom http headers while exporting spans. (#5530)Tracer.Start in go.opentelemetry.io/otel/trace/noop no longer allocates a span for empty span context. (#5457)go.opentelemetry.io/otel/semconv/v1.25.0 to go.opentelemetry.io/otel/semconv/v1.26.0 in go.opentelemetry.io/otel/example/otel-collector. (#5490)go.opentelemetry.io/otel/semconv/v1.25.0 to go.opentelemetry.io/otel/semconv/v1.26.0 in go.opentelemetry.io/otel/example/zipkin. (#5490)go.opentelemetry.io/otel/semconv/v1.25.0 to go.opentelemetry.io/otel/semconv/v1.26.0 in go.opentelemetry.io/otel/exporters/zipkin. (#5490)go.opentelemetry.io/otel/semconv/v1.25.0 to go.opentelemetry.io/otel/semconv/v1.26.0 in go.opentelemetry.io/otel/sdk/resource. (#5490)go.opentelemetry.io/otel/semconv/v1.25.0 to go.opentelemetry.io/otel/semconv/v1.26.0 in go.opentelemetry.io/otel/sdk/trace. (#5490)SimpleProcessor.OnEmit in go.opentelemetry.io/otel/sdk/log no longer allocates a slice which makes it possible to have a zero-allocation log processing using SimpleProcessor. (#5493)Start method of "go.opentelemetry.io/otel/sdk/trace".Trace to reduce memory allocation. (#5497)service.instance.id is populated for a Resource created with "go.opentelemetry.io/otel/sdk/resource".Default with a default value when OTEL_GO_X_RESOURCE is set. (#5520)go.opentelemetry.io/otel/sdk/metric by removing unnecessary calls to time.Now. (#5545)Record in go.opentelemetry.io/otel/sdk/log drops an attribute due to a limit being reached. (#5376)Tracer returned from the global TracerProvider in go.opentelemetry.io/otel/global with its schema URL. (#5426)Meter returned from the global MeterProvider in go.opentelemetry.io/otel/global with its schema URL. (#5426)Span in go.opentelemetry.io/otel/sdk/trace drops an attribute, event, or link due to a limit being reached. (#5434)go.opentelemetry.io/otel/metric. (#5435)go.opentelemetry.io/otel/sdk/metric. (#5456)Record in go.opentelemetry.io/otel/sdk/log. (#5464)0x80 char in key or value. (#5494)WithEndpoint and WithEndpointURL options and their corresponding environment variables in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#5508)go.opentelemetry.io/otel/sdk/trace. (#5514)Exporter in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp must be created by the New method. (#5521){Bool,Int64,Float64,String}SliceValue functions of go.opentelemetry.io/attributes by reducing the number of allocations. (#5549)go.opentelemetry.io/otel/baggage. (#5528)go.opentelemetry.io/otel/exporters/stdout/stdoutlog. (#5242)RecordFactory in go.opentelemetry.io/otel/sdk/log/logtest to facilitate testing exporter and processor implementations. (#5258)RecordFactory in go.opentelemetry.io/otel/log/logtest to facilitate testing bridge implementations. (#5263)BatchProcessor in go.opentelemetry.io/otel/sdk/log is logged. (#5276)otel-collector example. (#5283)go.opentelemetry.io/otel/metric. (#5304)int64 or float64 synchronous gauge instrument can now be created from a Meter.go.opentelemetry.io/otel/metric/noop, go.opentelemetry.io/otel/sdk/metric) are updated to support this instrument.go.opentelemetry.io/otel/example/dice. (#5349)Shutdown method of Exporter in go.opentelemetry.io/otel/exporters/stdout/stdouttrace ignores the context cancellation and always returns nil. (#5189)ForceFlush and Shutdown methods of the exporter returned by New in go.opentelemetry.io/otel/exporters/stdout/stdoutmetric ignore the context cancellation and always return nil. (#5189)Record attributes in go.opentelemetry.io/otel/sdk/log. (#5230)Record in go.opentelemetry.io/otel/sdk/log. (#5230)go.opentelemetry.io/otel/exporters/stdout/stdoutlog won't print timestamps when WithoutTimestamps option is set. (#5241)go.opentelemetry.io/otel/exporters/stdout/stdoutlog exporter won't print AttributeValueLengthLimit and AttributeCountLimit fields now, instead it prints the DroppedAttributes field. (#5272)Stringer implementation of go.opentelemetry.io/otel/baggage.Member by reducing the number of allocations. (#5286)go.opentelemetry.io/otel/sdk/metric. (#5305)Span in go.opentelemetry.io/otel/sdk/trace will record links without span context if either non-empty TraceState or attributes are provided. (#5315)go.opentelemetry.io/otel/semconv/v1.24.0 to go.opentelemetry.io/otel/semconv/v1.25.0. (#5374)go.opentelemetry.io/otel/log.KeyValue and go.opentelemetry.io/otel/log.Value. (#5306)go.opentelemetry.io/otel/log.Value in go.opentelemetry.io/otel/exporters/stdout/stdoutlog. (#5311)Recorder in go.opentelemetry.io/otel/log/logtest so it behaves as a LoggerProvider only. (#5365)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#5371)Logger returned from the global LoggerProvider in go.opentelemetry.io/otel/log/global with its schema URL. (#5375)Recorder in go.opentelemetry.io/otel/log/logtest to facilitate testing the log bridge implementations. (#5134)go.opentelemetry.io/otel/exporters/otlp/otlptrace. (#5194)go.opentelemetry.io/otel/sdk/log. 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)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. 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)go.opentelemetry.io/otel/exporters/stdout/stdoutlog. 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)go.opentelemetry.io/otel/semconv/v1.25.0 package. The package contains semantic conventions from the v1.25.0 version of the OpenTelemetry Semantic Conventions. (#5254)go.opentelemetry.io/proto/otlp from v1.1.0 to v1.2.0. (#5177)go.opentelemetry.io/otel/baggage. (#5214)otel-collector example now uses docker compose to bring up services instead of kubernetes. (#5244)go.opentelemetry.io/otel/attribute are now emitted as their JSON representation. (#5159)WithProxy option in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#4906)WithProxy option in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlptracehttp. (#4906)AddLink method to the Span interface in go.opentelemetry.io/otel/trace. (#5032)Enabled method is added to the Logger interface in go.opentelemetry.io/otel/log. This method is used to notify users if a log record will be emitted or not. (#5071)SeverityUndefined const to go.opentelemetry.io/otel/log. This value represents an unset severity level. (#5072)Empty function in go.opentelemetry.io/otel/log to return a KeyValue for an empty value. (#5076)go.opentelemetry.io/otel/log/global to manage the global LoggerProvider. 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)Summary metrics in the go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp and go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc exporters. (#5100)otel.scope.name and otel.scope.version tags to spans exported by go.opentelemetry.io/otel/exporters/zipkin. (#5108)AddLink to go.opentelemetry.io/otel/bridge/opencensus. (#5116)String method to Value and KeyValue in go.opentelemetry.io/otel/log. (#5117)go.opentelemetry.io/otel/exporters/prometheus. (#5111)go.opentelemetry.io/otel/semconv/v1.24.0. Future semconv packages will include metric semantic conventions as well. (#4528)SpanFromContext and SpanContextFromContext in go.opentelemetry.io/otel/trace no longer make a heap allocation when the passed context has no span. (#5049)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc and go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc now create a gRPC client in idle mode and with "dns" as the default resolver using grpc.NewClient. (#5151) Because of that WithDialOption ignores grpc.WithBlock, grpc.WithTimeout, and grpc.WithReturnConnectionError. Notice that grpc.DialContext which was used before is now deprecated.Set and Distinct types in go.opentelemetry.io/otel/attribute. (#5027)ErrorHandler self-delegation. (#5137)go.opentelemetry.io/otel/attribute.Sortable type. (#4734)go.opentelemetry.io/otel/attribute.NewSetWithSortable function. (#4734)go.opentelemetry.io/otel/attribute.NewSetWithSortableFiltered function. (#4734)This release is the last to support Go 1.20. The next release will require at least Go 1.21.
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc. (#4900)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#4900)go.opentelemetry.io/otel/log module is 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)go.opentelemetry.io/otel. (#4945)go.opentelemetry.io/otel/sdk/metric. (#4888)This release contains the first stable, v1, release of the following modules:
go.opentelemetry.io/otel/bridge/opencensusgo.opentelemetry.io/otel/bridge/opencensus/testgo.opentelemetry.io/otel/example/opencensusgo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpcgo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttpgo.opentelemetry.io/otel/exporters/stdout/stdoutmetricSee our versioning policy for more information about these stability guarantees.
WithEndpointURL option to the exporters/otlp/otlpmetric/otlpmetricgrpc, exporters/otlp/otlpmetric/otlpmetrichttp, exporters/otlp/otlptrace/otlptracegrpc and exporters/otlp/otlptrace/otlptracehttp packages. (#4808)ErrSchemaURLConflict is added to go.opentelemetry.io/otel/sdk/resource. This error is returned when a merge of two Resources with different (non-empty) schema URL is attempted. (#4876)Merge and New functions in go.opentelemetry.io/otel/sdk/resource now returns a partial result if there is a schema URL merge conflict. 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)ContainerID resource detection on systemd when cgroup path has a colon. (#4449)go.opentelemetry.io/otel/sdk/metric to cache instruments to avoid leaking memory when the same instrument is created multiple times. (#4820)Mix and Max values for go.opentelemetry.io/otel/exporters/stdout/stdoutmetric by introducing MarshalText and MarshalJSON for the Extrema type in go.opentelemetry.io/sdk/metric/metricdata. (#4827)This is a release candidate for the v1.23.0 release. That release is expected to include the v1 release of the following modules:
go.opentelemetry.io/otel/bridge/opencensusgo.opentelemetry.io/otel/bridge/opencensus/testgo.opentelemetry.io/otel/example/opencensusgo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpcgo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttpgo.opentelemetry.io/otel/exporters/stdout/stdoutmetricSee our versioning policy for more information about these stability guarantees.
go.opentelemetry.io/otel/semconv/v1.22.0 package. The package contains semantic conventions from the v1.22.0 version of the OpenTelemetry Semantic Conventions. (#4735)go.opentelemetry.io/otel/semconv/v1.23.0 package. The package contains semantic conventions from the v1.23.0 version of the OpenTelemetry Semantic Conventions. (#4746)go.opentelemetry.io/otel/semconv/v1.23.1 package. The package contains semantic conventions from the v1.23.1 version of the OpenTelemetry Semantic Conventions. (#4749)go.opentelemetry.io/otel/semconv/v1.24.0 package. The package contains semantic conventions from the v1.24.0 version of the OpenTelemetry Semantic Conventions. (#4770)WithResourceAsConstantLabels option to apply resource attributes for every metric emitted by the Prometheus exporter. (#4733)NewMemberRaw and NewKeyValuePropertyRaw in go.opentelemetry.io/otel/baggage. (#4804)go.opentelemetry.io/otel/semconv to use v1.24.0. (#4754)go.opentelemetry.io/otel/exporters/zipkin to follow v1.24.0 version of the OpenTelemetry specification. (#4754)go.opentelemetry.io/otel/sdk/metric. 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)go.opentelemetry.io/otel/trace.TraceState's performance. (#4722)go.opentelemetry.io/otel/propagation.TraceContext's performance. (#4721)go.opentelemetry.io/otel/baggage performance. (#4743)(*Set).Filter method in go.opentelemetry.io/otel/attribute when the passed filter does not filter out any attributes from the set. (#4774)Member.String in go.opentelemetry.io/otel/baggage percent-encodes only when necessary. (#4775)go.opentelemetry.io/otel/trace.Span's performance when adding multiple attributes. (#4818)Property.Value in go.opentelemetry.io/otel/baggage now returns a raw string instead of a percent-encoded value. (#4804)Parse in go.opentelemetry.io/otel/baggage to validate member value before percent-decoding. (#4755)Member.String in go.opentelemetry.io/otel/baggage. (#4756)go.opentelemetry.io/otel/sdk/metric. (#4772)go.opentelemetry.io/otel/bridge/opentracing. (#4776)go.opentelemetry.io/otel/bridge/opentracing to properly handle baggage values that requires escaping during propagation. (#4804)go.opentelemetry.io/otel/sdk/metric. (#4742)go.opentelemetry.io/otel/bridge/opencensus.NewTracer. (#4706)go.opentelemetry.io/otel/exporters/otlp/otlpmetric module. (#4707)go.opentelemetry.io/otel/example/view module. (#4708)go.opentelemetry.io/otel/example/fib module. (#4723)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#4719)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#4719)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.
go.opentelemetry.io/otel/bridge/opencensus.InstallTraceBridge, which installs the OpenCensus trace bridge, and replaces opencensus.NewTracer. (#4567)go.opentelemetry.io/otel/bridge/opencensus. (#4584)go.opentelemetry.io/otel/trace/embedded package to be embedded in the exported trace API interfaces. (#4620)go.opentelemetry.io/otel/trace/noop package as a default no-op implementation of the trace API. (#4620)go.opentelemetry.io/otel/example/dice. (#4644)go.opentelemetry.io/otel/example/prometheus. (#4649)go.opentelemetry.io/otel/metric.WithExplicitBucketBoundaries, which allows defining default explicit bucket boundaries when creating histogram instruments. (#4603)Version function in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc. (#4660)Version function in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#4660)go.opentelemetry.io/sdk/metric/metricdata. (#4622)go.opentelemetry.io/otel/bridge/opencensus.NewMetricProducer now supports exemplars from OpenCensus. (#4585)WithExplicitBucketBoundaries in go.opentelemetry.io/otel/sdk/metric. (#4605)go.opentelemetry.io/otel/bridge/opencensus. (#4668)go.opentelemetry.io/otel/bridge/opencensus.NewTracer in favor of opencensus.InstallTraceBridge. (#4567)go.opentelemetry.io/otel/example/fib package is in favor of go.opentelemetry.io/otel/example/dice. (#4618)go.opentelemetry.io/otel/trace.NewNoopTracerProvider. Use the added NewTracerProvider function in go.opentelemetry.io/otel/trace/noop instead. (#4620)go.opentelemetry.io/otel/example/view package in favor of go.opentelemetry.io/otel/example/prometheus. (#4649)go.opentelemetry.io/otel/exporters/otlp/otlpmetric. (#4693)go.opentelemetry.io/otel/bridge/opencensus.NewMetricProducer returns a *MetricProducer struct instead of the metric.Producer interface. (#4583)TracerProvider in go.opentelemetry.io/otel/trace now embeds the go.opentelemetry.io/otel/trace/embedded.TracerProvider type. 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)Tracer in go.opentelemetry.io/otel/trace now embeds the go.opentelemetry.io/otel/trace/embedded.Tracer type. 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)Span in go.opentelemetry.io/otel/trace now embeds the go.opentelemetry.io/otel/trace/embedded.Span type. 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)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc does no longer depend on go.opentelemetry.io/otel/exporters/otlp/otlpmetric. (#4660)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp does no longer depend on go.opentelemetry.io/otel/exporters/otlp/otlpmetric. (#4660)502 Bad Gateway and 504 Gateway Timeout HTTP statuses in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#4670)502 Bad Gateway and 504 Gateway Timeout HTTP statuses in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#4670)RESOURCE_EXHAUSTED only if RetryInfo is returned in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc. (#4669)RESOURCE_EXHAUSTED only if RetryInfo is returned in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#4669)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#4679)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#4679)+, / by Parse in go.opentelemetry.io/otel/baggage as they were rendered as a whitespace. (#4667)+, / passed via OTEL_RESOURCE_ATTRIBUTES in go.opentelemetry.io/otel/sdk/resource as they were rendered as a whitespace. (#4699)+, / passed via OTEL_EXPORTER_OTLP_HEADERS and OTEL_EXPORTER_OTLP_METRICS_HEADERS in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc as they were rendered as a whitespace. (#4699)+, / passed via OTEL_EXPORTER_OTLP_HEADERS and OTEL_EXPORTER_OTLP_METRICS_HEADERS in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp as they were rendered as a whitespace. (#4699)+, / passed via OTEL_EXPORTER_OTLP_HEADERS and OTEL_EXPORTER_OTLP_TRACES_HEADERS in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlptracegrpc as they were rendered as a whitespace. (#4699)+, / passed via OTEL_EXPORTER_OTLP_HEADERS and OTEL_EXPORTER_OTLP_TRACES_HEADERS in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlptracehttp as they were rendered as a whitespace. (#4699)go.opentelemetry.op/otel/exporters/prometheus, the exporter no longer Collects metrics after Shutdown is invoked. (#4648)WithCompressor in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#4695)WithCompressor in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc. (#4695)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.
go.opentelemetry.io/otel/example/dice. (#4539)WithWriter and WithPrettyPrint options to go.opentelemetry.io/otel/exporters/stdout/stdoutmetric to set a custom io.Writer, and allow displaying the output in human-readable JSON. (#4507)go.opentelemetry.io/otel/exporters/stdout/stdoutmetric does not prettify its output by default anymore. (#4507)gopkg.io/yaml from v2 to v3 in go.opentelemetry.io/otel/schema. (#4535)go.opentelemetry.op/otel/exporters/prometheus, don't try to create the Prometheus metric on every Collect if we know the scope is invalid. (#4499)"go.opentelemetry.io/otel/bridge/opencensus".NewMetricExporter, which is replaced by NewMetricProducer. (#4566)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.
go.opentelemetry.op/otel/exporters/prometheus, don't try to create the prometheus metric on every Collect if we know the scope is invalid. (#4499)This release drops the compatibility guarantee of Go 1.19.
WithProducer option in go.opentelemetry.op/otel/exporters/prometheus to restore the ability to register producers on the prometheus exporter's manual reader. (#4473)IgnoreValue option in go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest to allow ignoring values when comparing metrics. (#4447)TestingT interface instead of *testing.T struct in go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest. (#4483)NewMetricExporter in go.opentelemetry.io/otel/bridge/opencensus was deprecated in v0.35.0 (#3541). The deprecation notice format for the function has been corrected to trigger Go documentation and build tooling. (#4470)go.opentelemetry.io/otel/exporters/jaeger package. (#4467)go.opentelemetry.io/otel/example/jaeger package. (#4467)go.opentelemetry.io/otel/sdk/metric/aggregation package. (#4468)go.opentelemetry.io/otel/exporters/otlp and its sub-packages. (#4469)ManualReader struct in go.opentelemetry.io/otel/sdk/metric. (#4244)PeriodicReader struct in go.opentelemetry.io/otel/sdk/metric. (#4244)"go.opentelemetry.io/otel/sdk/metric".ExponentialHistogram as the aggregation. (#4245)Exporter struct in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc. (#4272)Exporter struct in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#4272)go.opentelemetry.io/otel/exporters/otlp/otlpmetric now support the OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE environment variable. (#4287)WithoutCounterSuffixes option in go.opentelemetry.io/otel/exporters/prometheus to disable addition of _total suffixes. (#4306)go.opentelemetry.io/otel/sdk/metric. (#4315)go.opentelemetry.io/otel/semconv/v1.21.0 package. The package contains semantic conventions from the v1.21.0 version of the OpenTelemetry Semantic Conventions. (#4362)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp and go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#4365)Temporality and Aggregation methods of the "go.opentelemetry.io/otel/sdk/metric".Exporter" need to be concurrent safe. (#4381)go.opentelemetry.op/otel/exporters/prometheus (#4374)Aggregation interface and its implementations from go.opentelemetry.io/otel/sdk/metric/aggregation to go.opentelemetry.io/otel/sdk/metric. (#4435)go.opentelemetry.io/otel/exporters/otlp/otlpmetric now support the OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION environment variable. (#4437)NewAllowKeysFilter and NewDenyKeysFilter functions to go.opentelemetry.io/otel/attribute to allow convenient creation of allow-keys and deny-keys filters. (#4444)v1.21.0 of semantic conventions, go.opentelemetry.io/otel/semconv/{version}/httpconv and go.opentelemetry.io/otel/semconv/{version}/netconv packages will no longer be published. (#4145)go.opentelemetry.io/otel/sdk/metric. (#4202)go.opentelemetry.io/otel/sdk/metric if their name doesn't pass regexp validation. (#4210)NewManualReader in go.opentelemetry.io/otel/sdk/metric returns *ManualReader instead of Reader. (#4244)NewPeriodicReader in go.opentelemetry.io/otel/sdk/metric returns *PeriodicReader instead of Reader. (#4244)PeriodicReader timeout in go.opentelemetry.io/otel/sdk/metric. (#4221)New in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc returns *Exporter instead of "go.opentelemetry.io/otel/sdk/metric".Exporter. (#4272)New in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp returns *Exporter instead of "go.opentelemetry.io/otel/sdk/metric".Exporter. (#4272)go.opentelemetry.io/otel/sdk/metric. (#4290)go.opentelemetry.io/otel/sdk/metric, the values will be summed instead of the last observation winning. (#4289)go.opentelemetry.io/otel/sdk/metric package. (#4332)Meters in go.opentelemetry.io/otel/sdk/metric to only register and collect instruments it created. (#4333)PeriodicReader.Shutdown and PeriodicReader.ForceFlush in go.opentelemetry.io/otel/sdk/metric now apply the periodic reader's timeout to the operation if the user provided context does not contain a deadline. (#4356, #4377)go.opentelemetry.io/otel/semconv to use v1.21.0. (#4408)go.opentelemetry.io/otel/sdk/metric. (#4434)go.opentelemetry.op/otel/sdk/metric.WithProducer as an Option for "go.opentelemetry.io/otel/sdk/metric".NewManualReader and "go.opentelemetry.io/otel/sdk/metric".NewPeriodicReader. (#4346)Reader.RegisterProducer in go.opentelemetry.io/otel/metric. Use the added WithProducer option instead. (#4346)Reader.ForceFlush in go.opentelemetry.io/otel/metric. Notice that PeriodicReader.ForceFlush is still available. (#4375)go.opentelemetry.io/otel/exporters/zipkin exporter. (#4143)NewView in go.opentelemetry.io/otel/sdk/metric that have empty criteria. (#4307)"go.opentelemetry.io/otel/sdk/resource".WithHostID() to not set an empty host.id. (#4317)go.opentelemetry.io/otel/sdk/metric. (#4337)go.opentelemetry.io/otel/sdk/metric. (#4338)ManualReader will not panic if AggregationSelector returns nil in go.opentelemetry.io/otel/sdk/metric. (#4350)Reader's AggregationSelector returns nil or DefaultAggregation the pipeline will use the default aggregation. (#4350)go.opentelemetry.io/otel/sdk/metric. (#4349)go.opentelemetry.io/otel/sdk/trace. (#4353)ForceFlush in go.opentelemetry.io/otel/sdk/trace. (#4369)go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal from go.opentelemetry.io/otel/exporters/otlp/internal using gotmpl. (#4397, #3846)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal from go.opentelemetry.io/otel/exporters/otlp/internal and go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal using gotmpl. (#4404, #3846)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal from go.opentelemetry.io/otel/exporters/otlp/internal and go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal using gotmpl. (#4407, #3846)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal from go.opentelemetry.io/otel/exporters/otlp/internal and go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal using gotmpl. (#4400, #3846)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal from go.opentelemetry.io/otel/exporters/otlp/internal and go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal using gotmpl. (#4401, #3846)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc and go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#3925, #4395)_total if the counter already has that suffix for the Prometheus exproter in go.opentelemetry.io/otel/exporter/prometheus. (#4373)go.opentelemetry.io/otel/sdk/resource. (#4409)go.opentelemetry.io/otel/sdk/metric. (#4428)go.opentelemetry.io/otel/exporters/jaeger package is 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)go.opentelemetry.io/otel/example/jaeger package is deprecated. (#4423)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal package is deprecated. (#4420)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/oconf package is deprecated. (#4420)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/otest package is deprecated. (#4420)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/transform package is deprecated. (#4420)go.opentelemetry.io/otel/exporters/otlp/internal package is deprecated. (#4421)go.opentelemetry.io/otel/exporters/otlp/internal/envconfig package is deprecated. (#4421)go.opentelemetry.io/otel/exporters/otlp/internal/retry package is deprecated. (#4421)go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal package is deprecated. (#4425)go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/envconfig package is deprecated. (#4425)go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig package is deprecated. (#4425)go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlptracetest package is deprecated. (#4425)go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/retry package is deprecated. (#4425)go.opentelemetry.io/otel/sdk/metric/aggregation package is deprecated. Use the aggregation types added to go.opentelemetry.io/otel/sdk/metric instead. (#4435)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.
go.opentelemetry.io/otel/semconv/v1.19.0 package. The package contains semantic conventions from the v1.19.0 version of the OpenTelemetry specification. (#3848)go.opentelemetry.io/otel/semconv/v1.20.0 package. The package contains semantic conventions from the v1.20.0 version of the OpenTelemetry specification. (#4078)go.opentelemetry.io/otel/sdk/metric/metricdata. (#4165)time.Time zero values in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc and go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp packages. (#4271)strings.Cut() instead of string.SplitN() for better readability and memory use. (#4049)MeterProvider returns noop meters once it has been shutdown. (#4154)go.opentelemetry.io/otel/metric/instrument package is removed. Use go.opentelemetry.io/otel/metric instead. (#4055)go.opentelemetry.io/otel/sdk/resource. (#4077)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.
MeterProvider in go.opentelemetry.io/otel. (#4039)Meter for a metric.Meter from the global metric.MeterProvider.GetMeterProivder for a global metric.MeterProvider.SetMeterProivder to set the global metric.MeterProvider.go.opentelemetry.io/otel/metric module to the stable-v1 module set. This stages the metric API to be released as a stable module. (#4038)go.opentelemetry.io/otel/metric/global package is removed. Use go.opentelemetry.io/otel instead. (#4039)sdk/resource/host_id_bsd.go which caused build failures. (#4040, #4041)go.opentelemetry.io/otel/metric/embedded package. (#3916)Version function to go.opentelemetry.io/otel/sdk to return the SDK version. (#3949)WithNamespace option to go.opentelemetry.io/otel/exporters/prometheus to allow users to prefix metrics with a namespace. (#3970)go.opentelemetry.io/otel/metric/instrument to be used in the configuration of measurement methods. (#3971)AddConfig used to hold configuration for addition measurementsNewAddConfig used to create a new AddConfigAddOption used to configure an AddConfigRecordConfig used to hold configuration for recorded measurementsNewRecordConfig used to create a new RecordConfigRecordOption used to configure a RecordConfigObserveConfig used to hold configuration for observed measurementsNewObserveConfig used to create a new ObserveConfigObserveOption used to configure an ObserveConfigWithAttributeSet and WithAttributes are added to go.opentelemetry.io/otel/metric/instrument. They return an option used during a measurement that defines the attribute Set associated with the measurement. (#3971)Version function to go.opentelemetry.io/otel/exporters/otlp/otlpmetric to return the OTLP metrics client version. (#3956)Version function to go.opentelemetry.io/otel/exporters/otlp/otlptrace to return the OTLP trace client version. (#3956)Extrema in go.opentelemetry.io/otel/sdk/metric/metricdata is redefined with a generic argument of [N int64 | float64]. (#3870)go.opentelemetry.io/otel/metric to embed their corresponding interface from go.opentelemetry.io/otel/metric/embedded. This adds an implementation requirement to set the interface default behavior for unimplemented methods. (#3916)go.opentelemetry.io/otel/metric into its own package go.opentelemetry.io/otel/metric/noop. (#3941)metric.NewNoopMeterProvider is replaced with noop.NewMeterProvider"go.opentelemetry.io/otel/trace".SpanContext to bridgeSpanContext by embedding otel.SpanContext in bridgeSpanContext. (#3966)UploadMetrics error in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/ to improve error message when encountering generic grpc errors. (#3974)go.opentelemetry.io/otel/metric/instrument accept an option instead of the variadic "go.opentelemetry.io/otel/attribute".KeyValue. (#3971)Int64Counter.Add method now accepts ...AddOptionFloat64Counter.Add method now accepts ...AddOptionInt64UpDownCounter.Add method now accepts ...AddOptionFloat64UpDownCounter.Add method now accepts ...AddOptionInt64Histogram.Record method now accepts ...RecordOptionFloat64Histogram.Record method now accepts ...RecordOptionInt64Observer.Observe method now accepts ...ObserveOptionFloat64Observer.Observe method now accepts ...ObserveOptionObserver methods in go.opentelemetry.io/otel/metric accept an option instead of the variadic "go.opentelemetry.io/otel/attribute".KeyValue. (#3971)Observer.ObserveInt64 method now accepts ...ObserveOptionObserver.ObserveFloat64 method now accepts ...ObserveOptiongo.opentelemetry.io/otel/metric/global from go.opentelemetry.io/otel. (#3986)TracerProvider allows calling Tracer() while it's shutting down. It used to deadlock. (#3924)go.opentelemetry.io/otel/sdk/resource. (#3949)SpanProcessor returned by NewSimpleSpanProcessor in go.opentelemetry.io/otel/sdk/trace. (#3951)aggregation.Default. (#3967)go.opentelemetry.io/otel/metric/instrument package is deprecated. Use the equivalent types added to go.opentelemetry.io/otel/metric instead. (#4018)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.
WithHostID option to go.opentelemetry.io/otel/sdk/resource. (#3812)WithoutTimestamps option to go.opentelemetry.io/otel/exporters/stdout/stdoutmetric to sets all timestamps to zero. (#3828)Exemplar type is added to go.opentelemetry.io/otel/sdk/metric/metricdata. Both the DataPoint and HistogramDataPoint types from that package have a new field of Exemplars containing the sampled exemplars for their timeseries. (#3849)go.opentelemetry.io/otel/sdk/metric/instrument. (#3895)V(1). (#3900)SimpleSpanProcessor in production environments. (#3854)Set using NewSet or NewSetWithFiltered in go.opentelemetry.io/otel/attribute. (#3832)go.opentelemetry.io/otel/sdk/metric. (#3832)WithDeferredSetup and SkipContextSetup in OpenTracing bridge. (#3833)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)Histogram and HistogramDataPoint are redefined with a generic argument of [N int64 | float64] in go.opentelemetry.io/otel/sdk/metric/metricdata. (#3849)Export interface from go.opentelemetry.io/otel/sdk/metric accepts a *ResourceMetrics instead of ResourceMetrics. (#3853)Asynchronous to Observable in go.opentelemetry.io/otel/metric/instrument. (#3892)Int64ObserverOption to Int64ObservableOption in go.opentelemetry.io/otel/metric/instrument. (#3895)Float64ObserverOption to Float64ObservableOption in go.opentelemetry.io/otel/metric/instrument. (#3895)V(4), the verbosity level of debug to V(8). (#3900)TracerProvider consistently doesn't allow to register a SpanProcessor after shutdown. (#3845)go.opentelemetry.io/otel/metric/global package is removed. (#3829)Synchronous interface in go.opentelemetry.io/otel/metric/instrument was removed. (#3892)Float64ObserverConfig and NewFloat64ObserverConfig in go.opentelemetry.io/otel/sdk/metric/instrument. Use the added float64 instrument configuration instead. (#3895)Int64ObserverConfig and NewInt64ObserverConfig in go.opentelemetry.io/otel/sdk/metric/instrument. Use the added int64 instrument configuration instead. (#3895)NewNoopMeter function in go.opentelemetry.io/otel/metric, use NewMeterProvider().Meter("") instead. (#3893)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.
MeterProvider in go.opentelemetry.io/otel. (#3818)Meter for a metric.Meter from the global metric.MeterProvider.GetMeterProivder for a global metric.MeterProvider.SetMeterProivder to set the global metric.MeterProvider.httpconv and netconv packages in go.opentelemetry.io/otel/semconv/* provide tracing semantic conventions. (#3823)go.opentelemetry.io/otel/exporters/metric/prometheus that could cause a panic. (#3899)scopeInfo to metrics channel in go.opentelemetry.io/otel/exporters/metric/prometheus that could cause a panic in github.com/prometheus/client_golang/prometheus. (#3899)go.opentelemetry.io/otel/metric/global package is deprecated. Use go.opentelemetry.io/otel instead. (#3818)go.opentelemetry.io/otel/metric/unit package is removed. (#3814)This release is the last to support Go 1.18. The next release will require at least Go 1.19.
event type semantic conventions are added to go.opentelemetry.io/otel/semconv/v1.17.0. (#3697)go.opentelemetry.io/otel/semconv/v1.18.0 package. The package contains semantic conventions from the v1.18.0 version of the OpenTelemetry specification. (#3719)const renames from go.opentelemetry.io/otel/semconv/v1.17.0 are included:OtelScopeNameKey -> OTelScopeNameKeyOtelScopeVersionKey -> OTelScopeVersionKeyOtelLibraryNameKey -> OTelLibraryNameKeyOtelLibraryVersionKey -> OTelLibraryVersionKeyOtelStatusCodeKey -> OTelStatusCodeKeyOtelStatusDescriptionKey -> OTelStatusDescriptionKeyOtelStatusCodeOk -> OTelStatusCodeOkOtelStatusCodeError -> OTelStatusCodeErrorfunc renames from go.opentelemetry.io/otel/semconv/v1.17.0 are included:OtelScopeName -> OTelScopeNameOtelScopeVersion -> OTelScopeVersionOtelLibraryName -> OTelLibraryNameOtelLibraryVersion -> OTelLibraryVersionOtelStatusDescription -> OTelStatusDescriptionIsSampled method is added to the SpanContext implementation in go.opentelemetry.io/otel/bridge/opentracing to expose the span sampled state. See the README for more information. (#3570)WithInstrumentationAttributes option to go.opentelemetry.io/otel/metric. (#3738)WithInstrumentationAttributes option to go.opentelemetry.io/otel/trace. (#3739)Reader in go.opentelemetry.io/otel/sdk/metric. (#3763)OTEL_METRIC_EXPORT_INTERVAL sets the time between collections and exports.OTEL_METRIC_EXPORT_TIMEOUT sets the timeout an export is attempted.TextMapCarrier when it's not HttpHeaders in go.opentelemetry.io/otel/bridge/opentracing. (#3679)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. This change is made to enable memory reuse by SDK users. (#3732)WithUnit option in go.opentelemetry.io/otel/sdk/metric/instrument is updated to accept a string for the unit value. (#3776)go.opentelemetry.io/otel does not use generics. (#3723, #3725)MeterProviders now export metrics for all readers, instead of just the first reader. (#3720, #3724)"math/rand".Seed in go.opentelemetry.io/otel/example/prometheus. (#3733)Parse in go.opentelemetry.io/otel/schema/v1.1. (#3743)go.opentelemetry.io/otel/sdk/metric. (#3698, #3772)go.opentelemetry.io/otel/schema/v1.1. (#3777)go.opentelemetry.io/otel/metric/unit package is deprecated. Use the equivalent unit string instead. (#3776)"1" instead of unit.Dimensionless"By" instead of unit.Bytes"ms" instead of unit.MillisecondsKeyValue creations functions to go.opentelemetry.io/otel/semconv/v1.17.0 for all non-enum semantic conventions. These functions ensure semantic convention type correctness. (#3675)http.target attribute from being added by ServerRequest in the following packages. (#3687)go.opentelemetry.io/otel/semconv/v1.13.0/httpconvgo.opentelemetry.io/otel/semconv/v1.14.0/httpconvgo.opentelemetry.io/otel/semconv/v1.15.0/httpconvgo.opentelemetry.io/otel/semconv/v1.16.0/httpconvgo.opentelemetry.io/otel/semconv/v1.17.0/httpconvgo.opentelemetry.io/otel/metric/instrument/asyncfloat64 package is removed. (#3631)go.opentelemetry.io/otel/metric/instrument/asyncint64 package is removed. (#3631)go.opentelemetry.io/otel/metric/instrument/syncfloat64 package is removed. (#3631)go.opentelemetry.io/otel/metric/instrument/syncint64 package is removed. (#3631)WithInt64Callback option to go.opentelemetry.io/otel/metric/instrument. This options is used to configure int64 Observer callbacks during their creation. (#3507)WithFloat64Callback option to go.opentelemetry.io/otel/metric/instrument. This options is used to configure float64 Observer callbacks during their creation. (#3507)Producer interface and Reader.RegisterProducer(Producer) to go.opentelemetry.io/otel/sdk/metric. These additions are used to enable external metric Producers. (#3524)Callback function type to go.opentelemetry.io/otel/metric. This new named function type is registered with a Meter. (#3564)go.opentelemetry.io/otel/semconv/v1.13.0 package. The package contains semantic conventions from the v1.13.0 version of the OpenTelemetry specification. (#3499)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.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.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.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.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.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.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.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.Client function is included in go.opentelemetry.io/otel/semconv/v1.13.0/netconv to generate attributes for a net.Conn.Server function is included in go.opentelemetry.io/otel/semconv/v1.13.0/netconv to generate attributes for a net.Listener.go.opentelemetry.io/otel/semconv/v1.14.0 package. The package contains semantic conventions from the v1.14.0 version of the OpenTelemetry specification. (#3566)go.opentelemetry.io/otel/semconv/v1.15.0 package. The package contains semantic conventions from the v1.15.0 version of the OpenTelemetry specification. (#3578)go.opentelemetry.io/otel/semconv/v1.16.0 package. The package contains semantic conventions from the v1.16.0 version of the OpenTelemetry specification. (#3579)go.opentelemetry.io/otel/metric/instrument. 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.CounterFloat64ObservableUpDownCounter replaces the asyncfloat64.UpDownCounterFloat64ObservableGauge replaces the asyncfloat64.GaugeInt64ObservableCounter replaces the asyncint64.CounterInt64ObservableUpDownCounter replaces the asyncint64.UpDownCounterInt64ObservableGauge replaces the asyncint64.GaugeFloat64Counter replaces the syncfloat64.CounterFloat64UpDownCounter replaces the syncfloat64.UpDownCounterFloat64Histogram replaces the syncfloat64.HistogramInt64Counter replaces the syncint64.CounterInt64UpDownCounter replaces the syncint64.UpDownCounterInt64Histogram replaces the syncint64.HistogramNewTracerProvider to go.opentelemetry.io/otel/bridge/opentracing. This is used to create WrapperTracer instances from a TracerProvider. (#3116)Extrema type to go.opentelemetry.io/otel/sdk/metric/metricdata. This type is used to represent min/max values and still be able to distinguish unset and zero values. (#3487)go.opentelemetry.io/otel/semconv/v1.17.0 package. The package contains semantic conventions from the v1.17.0 version of the OpenTelemetry specification. (#3599)github.com/go-logr/logr as the logging interface, and add the WithLogr option. (#3497, #3500)go.opentelemetry.io/otel/metric/instrument is split into specific options and configuration based on the instrument type. (#3507)Int64Option type to configure instruments from go.opentelemetry.io/otel/metric/instrument/syncint64.Float64Option type to configure instruments from go.opentelemetry.io/otel/metric/instrument/syncfloat64.Int64ObserverOption type to configure instruments from go.opentelemetry.io/otel/metric/instrument/asyncint64.Float64ObserverOption type to configure instruments from go.opentelemetry.io/otel/metric/instrument/asyncfloat64.Registration from the RegisterCallback method of a Meter in the go.opentelemetry.io/otel/metric package. This Registration can be used to unregister callbacks. (#3522)NewMetricProducer to go.opentelemetry.io/otel/bridge/opencensus, which can be used to pass OpenCensus metrics to an OpenTelemetry Reader. (#3541)Shutdown method of the "go.opentelemetry.io/otel/sdk/trace".TracerProvider releases all computational resources when called the first time. (#3551)Sampler returned from TraceIDRatioBased go.opentelemetry.io/otel/sdk/trace now uses the rightmost bits for sampling decisions. This fixes random sampling when using ID generators like xray.IDGenerator and increasing parity with other language implementations. (#3557)go.opentelemetry.io/otel/exporters/otlp/otlptrace exporters are wrapped in errors identifying their signal name. Existing users of the exporters attempting to identify specific errors will need to use errors.Unwrap() to get the underlying error. (#3516)go.opentelemetry.io/otel/exporters/otlp will print the final retryable error message when attempts to retry time out. (#3514)go.opentelemetry.io/otel/sdk/metric are updated to match the API. (#3562)InstrumentKindSyncCounter is renamed to InstrumentKindCounterInstrumentKindSyncUpDownCounter is renamed to InstrumentKindUpDownCounterInstrumentKindSyncHistogram is renamed to InstrumentKindHistogramInstrumentKindAsyncCounter is renamed to InstrumentKindObservableCounterInstrumentKindAsyncUpDownCounter is renamed to InstrumentKindObservableUpDownCounterInstrumentKindAsyncGauge is renamed to InstrumentKindObservableGaugeRegisterCallback method of the Meter in go.opentelemetry.io/otel/metric changed.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)instrument.Asynchronous is now passed as a variadic argument. (#3587)go.opentelemetry.io/otel/exporters/zipkin is updated to use the v1.16.0 version of semantic conventions. 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)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)RegisterCallback method of the Meter from go.opentelemetry.io/otel/sdk/metric only registers a callback for instruments created by that meter. Trying to register a callback with instruments from a different meter will result in an error being returned. (#3584)NewMetricExporter in go.opentelemetry.io/otel/bridge/opencensus is deprecated. Use NewMetricProducer instead. (#3541)go.opentelemetry.io/otel/metric/instrument/asyncfloat64 package is deprecated. Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)go.opentelemetry.io/otel/metric/instrument/asyncint64 package is deprecated. Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)go.opentelemetry.io/otel/metric/instrument/syncfloat64 package is deprecated. Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)go.opentelemetry.io/otel/metric/instrument/syncint64 package is deprecated. Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)NewWrappedTracerProvider in go.opentelemetry.io/otel/bridge/opentracing is now deprecated. Use NewTracerProvider instead. (#3116)go.opentelemetry.io/otel/sdk/metric/view package is removed. (#3520)InstrumentProvider from go.opentelemetry.io/otel/sdk/metric/asyncint64 is removed. Use the new creation methods of the Meter in go.opentelemetry.io/otel/sdk/metric instead. (#3530)Counter method is replaced by Meter.Int64ObservableCounterUpDownCounter method is replaced by Meter.Int64ObservableUpDownCounterGauge method is replaced by Meter.Int64ObservableGaugeInstrumentProvider from go.opentelemetry.io/otel/sdk/metric/asyncfloat64 is removed. Use the new creation methods of the Meter in go.opentelemetry.io/otel/sdk/metric instead. (#3530)Counter method is replaced by Meter.Float64ObservableCounterUpDownCounter method is replaced by Meter.Float64ObservableUpDownCounterGauge method is replaced by Meter.Float64ObservableGaugeInstrumentProvider from go.opentelemetry.io/otel/sdk/metric/syncint64 is removed. Use the new creation methods of the Meter in go.opentelemetry.io/otel/sdk/metric instead. (#3530)Counter method is replaced by Meter.Int64CounterUpDownCounter method is replaced by Meter.Int64UpDownCounterHistogram method is replaced by Meter.Int64HistogramInstrumentProvider from go.opentelemetry.io/otel/sdk/metric/syncfloat64 is removed. Use the new creation methods of the Meter in go.opentelemetry.io/otel/sdk/metric instead. (#3530)Counter method is replaced by Meter.Float64CounterUpDownCounter method is replaced by Meter.Float64UpDownCounterHistogram method is replaced by Meter.Float64HistogramWithView Option is added to the go.opentelemetry.io/otel/sdk/metric package. This option is used to configure the view(s) a MeterProvider will use for all Readers that are registered with it. (#3387)WithoutScopeInfo() option added to that package.(#3273, #3357)OTEL_EXPORTER_OTLP_INSECUREOTEL_EXPORTER_OTLP_TRACES_INSECUREOTEL_EXPORTER_OTLP_METRICS_INSECUREOTEL_EXPORTER_OTLP_CLIENT_KEYOTEL_EXPORTER_OTLP_TRACES_CLIENT_KEYOTEL_EXPORTER_OTLP_METRICS_CLIENT_KEYOTEL_EXPORTER_OTLP_CLIENT_CERTIFICATEOTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATEOTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATEView type and related NewView function to create a view according to the OpenTelemetry specification are added to go.opentelemetry.io/otel/sdk/metric. These additions are replacements for the View type and New function from go.opentelemetry.io/otel/sdk/metric/view. (#3459)Instrument and InstrumentKind type are added to go.opentelemetry.io/otel/sdk/metric. These additions are replacements for the Instrument and InstrumentKind types from go.opentelemetry.io/otel/sdk/metric/view. (#3459)Stream type is added to go.opentelemetry.io/otel/sdk/metric to define a metric data stream a view will produce. (#3459)AssertHasAttributes allows instrument authors to test that datapoints returned have appropriate attributes. (#3487)"go.opentelemetry.io/otel/sdk/metric".WithReader option no longer accepts views to associate with the Reader. 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)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)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)WithTemporalitySelector and WithAggregationSelector ReaderOptions have been changed to ManualReaderOptions in the go.opentelemetry.io/otel/sdk/metric package. (#3260)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)go.opentelemetry.io/otel/exporters/prometheus exporter fixes duplicated _total suffixes. (#3369)Readers. (#3387)go.opentelemetry.io/otel/bridge/opencensus) are defined as monotonic sums, instead of non-monotonic. (#3389)Counter and UpDownCounter) from the metric SDK now produce delta sums when configured with delta temporality. (#3398)Status codes in the go.opentelemetry.io/otel/exporters/zipkin exporter are now exported as all upper case values. (#3340)Aggregations from go.opentelemetry.io/otel/sdk/metric with no data are not exported. (#3394, #3436)go.opentelemetry.io/otel/exporters/otlp exporters. (#3438, #3432)go.opentelemetry.io/otel/exporters/otlp/otlpmetric exporters. (#3162, #3440)attribute.Value.As[Type]Slice(). (#3489)go.opentelemetry.io/otel/exporters/otlp/otlpmetric.Client interface is removed. (#3486)go.opentelemetry.io/otel/exporters/otlp/otlpmetric.New function is removed. Use the otlpmetric[http|grpc].New directly. (#3486)go.opentelemetry.io/otel/sdk/metric/view package is deprecated. Use Instrument, InstrumentKind, View, and NewView in go.opentelemetry.io/otel/sdk/metric instead. (#3476)go.opentelemetry.io/otel/exporters/prometheus registers with a Prometheus registerer on creation. By default, it will register with the default Prometheus registerer. A non-default registerer can be used by passing the WithRegisterer option. (#3239)WithAggregationSelector option to the go.opentelemetry.io/otel/exporters/prometheus package to change the default AggregationSelector used. (#3341)go.opentelemetry.io/otel/exporters/prometheus converts the Resource associated with metric exports into a target_info metric. (#3285)"go.opentelemetry.io/otel/exporters/prometheus".New function is updated to return an error. It will return an error if the exporter fails to register with Prometheus. (#3239)OTEL_RESOURCE_ATTRIBUTES environment variable are decoded. (#2963)baggage.NewMember function decodes the value parameter instead of directly using it. This fixes the implementation to be compliant with the W3C specification. (#3226)attribute package are now comparable based on their value, not instance. (#3108 #3252)Shutdown and ForceFlush methods of the "go.opentelemetry.io/otel/sdk/trace".TraceProvider no longer return an error when no processor is registered. (#3268)go.opentelemetry.io/otel/exporters/prometheus cumulatively sums histogram buckets. (#3281)go.opentelemetry.io/otel/exporters/otlpmetric exporters. (#3284, #3293)Counter and UpDownCounter) are interpreted as exact, not incremental, sum values by the metric SDK. (#3350, #3278)UpDownCounters are now correctly output as Prometheus gauges in the go.opentelemetry.io/otel/exporters/prometheus exporter. (#3358)go.opentelemetry.io/otel/exporters/prometheus no longer describes the metrics it will send to Prometheus on startup. 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)go.opentelemetry.io/otel/exporters/prometheus exporter now correctly adds _total suffixes to counter metrics. (#3360)go.opentelemetry.io/otel/exporters/prometheus exporter now adds a unit suffix to metric names. This can be disabled using the WithoutUnits() option added to that package. (#3352)go.opentelemetry.io/otel/exporters/otlptrace/otlptracegrpc and go.opentelemetry.io/otel/exporters/otlptrace/otlptracehttp). (#3261)span.SetStatus has been updated such that calls that lower the status are now no-ops. (#3214)golang.org/x/sys/unix from v0.0.0-20210423185535-09eb48e85fd7 to v0.0.0-20220919091848-fb04ddd9f9c8. This addresses GO-2022-0493. (#3235)go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetricgrpc and go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetrichttp). (#3261)PeriodicReader in the go.opentelemetry.io/otel/sdk/metric when ForceFlush or Shutdown are called. (#3220)go.opentelemetry.io/otel/bridge/opentracing) as an integer. (#3265)_. (#3212)go.opentelemetry.io/otel/bridge/opencensus) has been reintroduced. (#3192)go.opentelemetry.io/otel/example/opencensus) has been reintroduced. (#3206)MeterProvider resource on all exported metric data. (#3218)go.opentelemetry.io/otel/sdk/metric is completely refactored to comply with the OpenTelemetry specification. Please see the package documentation for how the new SDK is initialized and configured. (#3175)go.opentelemetry.io/otel/bridge/opencensus) has been removed. A new bridge compliant with the revised metric SDK will be added back in a future release. (#3175)go.opentelemetry.io/otel/sdk/metric/aggregator/aggregatortest package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/aggregator/histogram package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/aggregator/lastvalue package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/aggregator/sum package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/aggregator package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/controller/basic package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/controller/controllertest package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/controller/time package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/export/aggregation package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/export package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/metrictest package is removed. A replacement package that supports the new metric SDK will be added back in a future release. (#3175)go.opentelemetry.io/otel/sdk/metric/number package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/processor/basic package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/processor/processortest package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/processor/reducer package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/registry package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/sdkapi package is removed, see the new metric SDK. (#3175)go.opentelemetry.io/otel/sdk/metric/selector/simple package is removed, see the new metric SDK. (#3175)"go.opentelemetry.io/otel/sdk/metric".ErrUninitializedInstrument variable was removed. (#3175)"go.opentelemetry.io/otel/sdk/metric".ErrBadInstrument variable was removed. (#3175)"go.opentelemetry.io/otel/sdk/metric".Accumulator type was removed, see the MeterProviderin the new metric SDK. (#3175)"go.opentelemetry.io/otel/sdk/metric".NewAccumulator function was removed, see NewMeterProviderin the new metric SDK. (#3175)"go.opentelemetry.io/otel/sdk/metric".AtomicFieldOffsets function was removed. (#3175)SpanKind in OpenTracing bridge (go.opentelemetry.io/otel/bridge/opentracing). (#3096)context will no longer cause a panic. (#3110)go.opentelemetry.io/otel/schema/v1.1 package. (#2999)go.opentelemetry.io/otel/semconv/v1.11.0 package. The package contains semantic conventions from the v1.11.0 version of the OpenTelemetry specification. (#3009)go.opentelemetry.io/otel/semconv/v1.12.0 package. The package contains semantic conventions from the v1.12.0 version of the OpenTelemetry specification. (#3010)http.method attribute to HTTP server metric from all go.opentelemetry.io/otel/semconv/* packages. (#3018)go.opentelemetry.io/otel/bridge/opentracing package. (#3029)opentracing.TextMap format in the Inject and Extract methods of the "go.opentelemetry.io/otel/bridge/opentracing".BridgeTracer type. (#2911)crosslink make target has been updated to use the go.opentelemetry.io/build-tools/crosslink package. (#2886)go.opentelemetry.io/otel/sdk/instrumentation package rename Library to Scope and alias Library as Scope (#2976)nonrecording to metric package. (#2866)Library struct in the go.opentelemetry.io/otel/sdk/instrumentation package is deprecated. Use the equivalent Scope struct instead. (#2977)ReadOnlySpan.InstrumentationLibrary method from the go.opentelemetry.io/otel/sdk/trace package is deprecated. Use the equivalent ReadOnlySpan.InstrumentationScope method instead. (#2977)go.opentelemetry.io/otel/semconv/v1.8.0 package. The package contains semantic conventions from the v1.8.0 version of the OpenTelemetry specification. (#2763)go.opentelemetry.io/otel/semconv/v1.9.0 package. The package contains semantic conventions from the v1.9.0 version of the OpenTelemetry specification. (#2792)go.opentelemetry.io/otel/semconv/v1.10.0 package. The package contains semantic conventions from the v1.10.0 version of the OpenTelemetry specification. (#2842)testing package in non-tests builds of the go.opentelemetry.io/otel package. (#2786)WithLabelEncoder option from the go.opentelemetry.io/otel/exporters/stdout/stdoutmetric package is renamed to WithAttributeEncoder. (#2790)LabelFilterSelector interface from go.opentelemetry.io/otel/sdk/metric/processor/reducer is renamed to AttributeFilterSelector. The method included in the renamed interface also changed from LabelFilterFor to AttributeFilterFor. (#2790)Metadata.Labels method from the go.opentelemetry.io/otel/sdk/metric/export package is renamed to Metadata.Attributes. Consequentially, the Record type from the same package also has had the embedded method renamed. (#2790)Iterator.Label method in the go.opentelemetry.io/otel/attribute package is deprecated. Use the equivalent Iterator.Attribute method instead. (#2790)Iterator.IndexedLabel method in the go.opentelemetry.io/otel/attribute package is deprecated. Use the equivalent Iterator.IndexedAttribute method instead. (#2790)MergeIterator.Label method in the go.opentelemetry.io/otel/attribute package is deprecated. Use the equivalent MergeIterator.Attribute method instead. (#2790)Batch type from the go.opentelemetry.io/otel/sdk/metric/metrictest package. (#2864)Measurement type from the go.opentelemetry.io/otel/sdk/metric/metrictest package. (#2864)Meter function is added back to the go.opentelemetry.io/otel/metric/global package. This function is a convenience function equivalent to calling global.MeterProvider().Meter(...). (#2750)go.opentelemetry.io/otel/sdk/export/metric. Use the go.opentelemetry.io/otel/sdk/metric module instead. (#2720)go.opentelemetry.io/proto/otlp in go.opentelemetry.io/otel/exporters/otlp/otlpmetric from v0.12.1 to v0.15.0. 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)MeterProvider, TracerProvider, and TextMapPropagator types to be set. (#2772, #2773)go.opentelemetry.io/proto/otlp in go.opentelemetry.io/otel/exporters/otlp/otlptrace from v0.12.1 to v0.15.0. 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)go.opentelemetry.io/otel/schema/* packages now use the correct schema URL for their SchemaURL constant. 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)go.opentelemetry.io/proto/otlp from v0.12.0 to v0.12.1. 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)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.
sdk/metric/aggregator/exponential/mapping for other OpenTelemetry projects to take dependencies on. (#2502)OTEL_TRACES_SAMPLER and OTEL_TRACES_SAMPLER_ARG environment variables. (#2305, #2517)metric/global for obtaining and setting the global MeterProvider. (#2660)The metrics API has been significantly changed to match the revised OpenTelemetry specification. High-level changes include:
InstrumentProviders. These InstrumentProviders are managed with a Meter.Meter.Be sure to check out the metric module documentation for more information on how to use the revised API. (#2587, #2660)
Log the Exporters configuration in the TracerProviders message. (#2578)
Added support to configure the span limits with environment variables. The following environment variables are supported. (#2606, #2637)
OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMITOTEL_SPAN_ATTRIBUTE_COUNT_LIMITOTEL_SPAN_EVENT_COUNT_LIMITOTEL_EVENT_ATTRIBUTE_COUNT_LIMITOTEL_SPAN_LINK_COUNT_LIMITOTEL_LINK_ATTRIBUTE_COUNT_LIMITIf the provided environment variables are invalid (negative), the default values would be used.
Rename the gc runtime name to go (#2560)
Add resource container ID detection. (#2418)
Add span attribute value length limit. 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)
Add the WithRawSpanLimits option to go.opentelemetry.io/otel/sdk/trace. 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)
Member when capacity is reached. (#2592)oltptrace exporter. (#2601)otlpmetric and otlptrace configuration. (#2639)sdk/trace.BatchSpanProcessor to reflect the count is cumulative. (#2640)envconfig package for OTLP exporters. (#2608)http.Request.Host is empty, fall back to use URL.Host when populating http.host in the semconv packages. (#2661)4318 instead of 4317 for the otlpmetrichttp and otlptracehttp client. (#2614, #2625)"go.opentelemetry.io/otel/sdk/trace".WithSpanLimits. 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)BatchSpanProcessor. (#2615)OTEL_EXPORTER_ZIPKIN_ENDPOINT environment variable to specify zipkin collector endpoint. (#2490)TracerProviders, and Tracers for debugging. To enable use a logger with Verbosity (V level) >=1. (#2500)OTEL_BSP_SCHEDULE_DELAYOTEL_BSP_EXPORT_TIMEOUTOTEL_BSP_MAX_QUEUE_SIZE.OTEL_BSP_MAX_EXPORT_BATCH_SIZEResource attributes in the Tags field. (#2589)go.opentelemetry.io/otel/sdk/export/metric. Use the go.opentelemetry.io/otel/sdk/metric module instead. (#2382)"go.opentelemetry.io/otel/sdk/metric".AtomicFieldOffsets. (#2445)otlpmetric.Client interface's UploadMetrics method to accept a single ResourceMetrics instead of a slice of them. (#2491)+inf bucket. (#2419, #2493)NewMember and not also when adding it to the baggage itself. (#2522)go.opentelemetry.io/otel/sdk/trace package when capacity is reached is fixed to be in compliance with the OpenTelemetry specification. 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)go.opentelemetry.io/proto/otlp from v0.11.0 to v0.12.0. This version removes a number of deprecated methods. (#2546)We have updated the project minimum supported Go version to 1.16
WithRetry Option and the RetryConfig type to the go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp package to specify retry behavior consistently. (#2425)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)"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)"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)"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetricgrpc".RetrySettings type is renamed to RetryConfig. (#2425)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)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)go.opentelemetry.io/otel/exporter/otel/* exporters are updated to handle per-signal and universal endpoints according to the OpenTelemetry specification. 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)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)"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithMaxAttempts Option, use the new WithRetry Option instead. (#2425)"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithBackoff Option, use the new WithRetry Option instead. (#2425)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)Exporter interface now requires a TemporalitySelector method instead of an ExportKindSelector. (#2274)metric/sdkapi package has been created to relocate the API-to-SDK interface:metric to metric/sdkapi: Descriptor, MeterImpl, InstrumentImpl, SyncImpl, BoundSyncImpl, AsyncImpl, AsyncRunner, AsyncSingleRunner, and AsyncBatchRunnerObservation, Measurement.sdkapi.NewNoopAsyncInstrument() and sdkapi.NewNoopSyncInstrument() are provided instead. (#2271)BatchSpanProcessor to export all queued spans when ForceFlush is called. (#2080, #2335)"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc".WithGRPCConn option so the exporter can reuse an existing gRPC connection. (#2002)schema module to help parse Schema Files in OTEP 0152 format. (#2267)MapCarrier to the go.opentelemetry.io/otel/propagation package to hold propagated cross-cutting concerns as a map[string]string held in memory. (#2334)"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".WithGRPCConn option so the exporter can reuse an existing gRPC connection. (#2002)go.opentelemetry.io/otel/semconv/v1.7.0 package. The package contains semantic conventions from the v1.7.0 version of the OpenTelemetry specification. (#2320)go.opentelemetry.io/otel/semconv/v1.6.1 package. The package contains semantic conventions from the v1.6.1 version of the OpenTelemetry specification. (#2321)go.opentelemetry.io/otel/semconv/v1.5.0 package. The package contains semantic conventions from the v1.5.0 version of the OpenTelemetry specification. (#2322)semconv/v1.4.0 package note the following name changes:K8SReplicasetUIDKey -> K8SReplicaSetUIDKeyK8SReplicasetNameKey -> K8SReplicaSetNameKeyK8SStatefulsetUIDKey -> K8SStatefulSetUIDKeyk8SStatefulsetNameKey -> K8SStatefulSetNameKeyK8SDaemonsetUIDKey -> K8SDaemonSetUIDKeyK8SDaemonsetNameKey -> K8SDaemonSetNameKey"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)"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)Export() function takes a new two-level reader interface for iterating over results one instrumentation library at a time. (#2197)"go.opentelemetry.io/otel/sdk/export/metric".CheckpointSet is renamed Reader."go.opentelemetry.io/otel/sdk/export/metric".InstrumentationLibraryReader.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.
SchemaURL field in the exported telemetry if the Tracer has WithSchemaURL option. (#2242)"go.opentelemetry.io/otel/exporters/zipkin".WithSDKOptions function. (#2248)go.opentelemetry.io/otel/oteltest. (#2234)go.opentelemetry.io/otel/bridge/opencensus/utils. (#2233)go.opentelemetry.io/otel/attribute package. Use the typed functions and methods added to the package instead. (#2235)Key.Array method is removed.Array function is removed.Any function is removed.ArrayValue function is removed.AsArray function is removed.ErrorHandlerFunc to use a function as an "go.opentelemetry.io/otel".ErrorHandler. (#2149)"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)go.opentelemetry.io/otel/attribute package to replace the existing array type and functions. (#2162)BoolSlice, IntSlice, Int64Slice, Float64Slice, and StringSlice replace the use of the Array function in the package.go.opentelemetry.io/otel/example/fib example package. Included is an example application that computes Fibonacci numbers. (#2203)InstrumentKind moves into sdkapi sub-package. (#2091)"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)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)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)go.opentelemetry.io/otel/bridge/opencensus/utils package is 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)"go.opentelemetry.io/otel/attribute".Array function and the related ARRAY value type is deprecated. Use the typed *Slice functions and types added to the package instead. (#2162)"go.opentelemetry.io/otel/attribute".Any function is deprecated. Use the typed functions instead. (#2181)go.opentelemetry.io/otel/oteltest package is deprecated. 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)go.opentelemetry.io/otel/sdk/export/metric/metrictest. (#2105)fromEnv detector no longer throws an error when OTEL_RESOURCE_ATTRIBUTES environment variable is not set or empty. (#2138)ErrorHandler with "go.opentelemetry.io/otel".SetErrorHandler multiple times is now supported. (#2160, #2140)"go.opentelemetry.io/otel/attribute".Any function now supports int32 values. (#2169)"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)WithoutTimestamps option for the go.opentelemetry.io/otel/exporters/stdout/stdouttrace exporter causes the exporter to correctly omit timestamps. (#2195)WithOSDescription resource configuration option to set OS (Operating System) description resource attribute (os.description). (#1840)WithOS resource configuration option to set all OS (Operating System) resource attributes at once. (#1840)WithRetry option to the go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp package. This option is a replacement for the removed WithMaxAttempts and WithBackoff options. (#2095)LinkFromContext to return Link which encapsulates SpanContext from provided context and also encapsulates attributes. (#2115)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. 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)SpanRecorder type to the go.opentelemetry.io/otel/skd/trace/tracetest package. This type can be used with the default SDK as a SpanProcessor during testing. (#2132)SpanModels function is now exported from the go.opentelemetry.io/otel/exporters/zipkin package to convert OpenTelemetry spans into Zipkin model spans. (#2027)"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".RetrySettings to RetryConfig. (#2095)TextMapCarrier and TextMapPropagator from the go.opentelemetry.io/otel/oteltest package and their associated creation functions (TextMapCarrier, NewTextMapPropagator) are deprecated. (#2114)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)TraceStateFromKeyValues function from the go.opentelemetry.io/otel/oteltest package is deprecated. Use the trace.ParseTraceState function instead. (#2122)go.opentelemetry.io/otel/exporters/trace/jaeger. (#2020)go.opentelemetry.io/otel/exporters/trace/zipkin. (#2020)"go.opentelemetry.io/otel/sdk/resource".WithBuiltinDetectors function. The explicit With* options for every built-in detector should be used instead. (#2026 #2097)WithMaxAttempts and WithBackoff options from the go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp package. 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)DroppedAttributeCount field from otel/trace.Link struct. (#2118)oteltest.Tracer now creates a valid SpanContext when using WithNewRoot. (#2073)dragonflybsd value for DragonFly BSD. (#2092)go.opentelemetry.io/otel/exporters/otlp/otlptrace package. This fix will by default set the status to Unset if it is not explicitly set to Ok or Error. (#2099 #2102)Inject method for the "go.opentelemetry.io/otel/propagation".TraceContext type no longer injects empty tracestate values. (#2108)6831 as default Jaeger agent port instead of 6832. (#2131)go.opentelemetry.io/otel/exporters/metric/prometheus. (#2020)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.
otlpgrpc.WithRetryoption for configuring the retry policy for transient errors on the otlp/gRPC exporter. (#1832)Status type to the go.opentelemetry.io/otel/sdk/trace package to represent the status of a span. (#1874)SpanStub type and its associated functions to the go.opentelemetry.io/otel/sdk/trace/tracetest package. 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)OTEL_EXPORTER_OTLP_ENDPOINT according to the spec. (#1886)trace.WithSchemaURL option for configuring the tracer with a Schema URL. (#1889)ParseTraceState is added to the go.opentelemetry.io/otel/trace package. It can be used to decode a TraceState from a tracestate header string value. (#1937)Len method to the TraceState type in the go.opentelemetry.io/otel/trace package. This method returns the number of list-members the TraceState holds. (#1937)go.opentelemetry.io/otel/exporters/otlp/otlptrace that defines a trace exporter that uses a otlptrace.Client to send data. 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)Baggage, Member, and Property types to the go.opentelemetry.io/otel/baggage package along with their related functions. (#1967)ContextWithBaggage, ContextWithoutBaggage, and FromContext functions to the go.opentelemetry.io/otel/baggage package. These functions replace the Set, Value, ContextWithValue, ContextWithoutValue, and ContextWithEmpty functions from that package and directly work with the new Baggage type. (#1967)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)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)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)go.opentelemetry.io/otel/exporters/otlp/otlpmetric that defines a metrics exporter that uses a otlpmetric.Client to send data.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)go.opentelemetry.io/otel/exporters/stdout/stdouttrace exporter. (#2005)go.opentelemetry.io/otel/exporters/stdout/stdoutmetric exporter. (#2005)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)NewSplitDriver from go.opentelemetry.io/otel/exporters/otlp take variadic arguments instead of a SplitConfig item. NewSplitDriver now automatically implements an internal noopDriver for SplitConfig fields that are not initialized. (#1798)resource.New() now creates a Resource without builtin detectors. Previous behavior is now achieved by using WithBuiltinDetectors Option. (#1810)Event type from the go.opentelemetry.io/otel package to the go.opentelemetry.io/otel/sdk/trace package. (#1846)ForceFlush() method. (#1860)Set.Encoded(Encoder) no longer caches the result of an encoding. (#1855)CloudZoneKey to CloudAvailabilityZoneKey in Resource semantic conventions according to spec. (#1871)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. This method returns the status of a span using the new Status type. (#1874)ExportSpans method of theSpanExporter interface type to accept ReadOnlySpans instead of the removed SpanSnapshot. 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)SpanContext in Link. (#1877)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)"go.opentelemetry.io/otel".Tracer function now accepts tracer options. (#1902)go.opentelemetry.io/otel/unit package to go.opentelemetry.io/otel/metric/unit. (#1903)go.opentelemetry.io/otel/trace.TracerConfig to conform to the Contributing guidelines (#1921)go.opentelemetry.io/otel/trace.SpanConfig to conform to the Contributing guidelines. (#1921)span.End() now only accepts Options that are allowed at End(). (#1921)go.opentelemetry.io/otel/metric.InstrumentConfig to conform to the Contributing guidelines. (#1921)go.opentelemetry.io/otel/metric.MeterConfig to conform to the Contributing guidelines. (#1921)go.opentelemetry.io/otel/trace.TraceStateFromKeyValues function to the go.opentelemetry.io/otel/oteltest package. 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)MarshalJSON method of the go.opentelemetry.io/otel/trace.TraceState type to marshal the type into the string representation of the TraceState. (#1931)TraceState.Delete method from the go.opentelemetry.io/otel/trace package no longer returns an error in addition to a TraceState. (#1931)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)Insert method of the TraceState type from the go.opentelemetry.io/otel/trace package to accept a pair of strings instead of an attribute.KeyValue type. (#1931)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)NewExporter to New in the go.opentelemetry.io/otel/exporters/stdout package. (#1985)NewExporter to New in the go.opentelemetry.io/otel/exporters/metric/prometheus package. (#1985)NewExporter to New in the go.opentelemetry.io/otel/exporters/trace/jaeger package. (#1985)NewExporter to New in the go.opentelemetry.io/otel/exporters/trace/zipkin package. (#1985)NewExporter to New in the go.opentelemetry.io/otel/exporters/otlp package. (#1985)NewUnstartedExporter to NewUnstarted in the go.opentelemetry.io/otel/exporters/otlp package. (#1985)go.opentelemetry.io/otel/semconv package has been moved to go.opentelemetry.io/otel/semconv/v1.4.0 to allow for multiple telemetry schema versions to be used concurrently. (#1987)go.opentelemetry.io/otel/oteltest have been moved to go.opentelemetry.io/otel/metric/metrictest. (#1988)go.opentelemetry.io/otel/exporters/metric/prometheus is deprecated, use go.opentelemetry.io/otel/exporters/prometheus instead. (#1993)go.opentelemetry.io/otel/exporters/trace/jaeger is deprecated, use go.opentelemetry.io/otel/exporters/jaeger instead. (#1993)go.opentelemetry.io/otel/exporters/trace/zipkin is deprecated, use go.opentelemetry.io/otel/exporters/zipkin instead. (#1993)resource.WithoutBuiltin(). Use resource.New(). (#1810)resource.FromEnv, resource.Host, and resource.TelemetrySDK, Use the corresponding With*() to use individually. (#1810)Tracer and IsRecording method from the ReadOnlySpan in the go.opentelemetry.io/otel/sdk/trace. 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)SpanSnapshot type from the go.opentelemetry.io/otel/sdk/trace package. 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)Tracer method from the Span interface in the go.opentelemetry.io/otel/trace package. 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)TracerProvider() method on the Span interface may also be used to obtain a TracerProvider using the same trace processing pipeline. (#2009)http.url attribute generated by HTTPClientAttributesFromHTTPRequest will no longer include username or password information. (#1919)IsEmpty method of the TraceState type in the go.opentelemetry.io/otel/trace package in favor of using the added TraceState.Len method. (#1931)Set, Value, ContextWithValue, ContextWithoutValue, and ContextWithEmpty functions in the go.opentelemetry.io/otel/baggage package. Handling of baggage is now done using the added Baggage type and related context functions (ContextWithBaggage, ContextWithoutBaggage, and FromContext) in that package. (#1967)InstallNewPipeline and NewExportPipeline creation functions in all the exporters (prometheus, otlp, stdout, jaeger, and zipkin) have been removed. These functions were deemed premature attempts to provide convenience that did not achieve this aim. (#1985)go.opentelemetry.io/otel/exporters/otlp exporter has been removed. Use go.opentelemetry.io/otel/exporters/otlp/otlptrace instead. (#1990)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)"go.opentelemetry.io/otel/sdk/resource".Environment function when they are not nil. (#1850, #1851)Shutdown method of the simple SpanProcessor in the go.opentelemetry.io/otel/sdk/trace package now honors the context deadline or cancellation. (#1616, #1856)http://localhost:14268/api/traces as default Jaeger collector endpoint instead of http://localhost:14250. (#1898)tracestate header. (#1931)NewExportPipeline and InstallNewPipeline, setup and install the exporter in tracing and metrics pipelines. (#1373)OTEL_EXPORTER_JAEGER_AGENT_HOST, OTEL_EXPORTER_JAEGER_AGENT_PORT These environment variables can be used to override Jaeger agent hostname and port (#1752)ExportTimeout was added to batch span processor. (#1755)trace.TraceFlags is now a defined type over byte and WithSampled(bool) TraceFlags and IsSampled() bool methods have been added to it. (#1770)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)OnEnd and ForceFlush post Shutdown. (#1772)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)WithOSType resource configuration option to set OS (Operating System) type resource attribute (os.type). (#1788)WithProcess* resource configuration options to set Process resource attributes. (#1788)process.pidprocess.executable.nameprocess.executable.pathprocess.command_argsprocess.ownerprocess.runtime.nameprocess.runtime.versionprocess.runtime.descriptionk8s.node.name and k8s.node.uid attribute keys to the semconv package. (#1789)OTEL_EXPORTER_OTLP_ENDPOINTOTEL_EXPORTER_OTLP_TRACES_ENDPOINTOTEL_EXPORTER_OTLP_METRICS_ENDPOINTOTEL_EXPORTER_OTLP_HEADERSOTEL_EXPORTER_OTLP_TRACES_HEADERSOTEL_EXPORTER_OTLP_METRICS_HEADERSOTEL_EXPORTER_OTLP_COMPRESSIONOTEL_EXPORTER_OTLP_TRACES_COMPRESSIONOTEL_EXPORTER_OTLP_METRICS_COMPRESSIONOTEL_EXPORTER_OTLP_TIMEOUTOTEL_EXPORTER_OTLP_TRACES_TIMEOUTOTEL_EXPORTER_OTLP_METRICS_TIMEOUTOTEL_EXPORTER_OTLP_CERTIFICATEOTEL_EXPORTER_OTLP_TRACES_CERTIFICATEOTEL_EXPORTER_OTLP_METRICS_CERTIFICATEotlpgrpc.WithTimeout option for configuring timeout to the otlp/gRPC exporter. (#1821)jaeger.WithMaxPacketSize option for configuring maximum UDP packet size used when connecting to the Jaeger agent. (#1853)Span.IsRecording implementation from go.opentelemetry.io/otel/sdk/trace always returns false when not being sampled. (#1750)"otel.status_code", "otel.status_description") and does not set the status message as a tag unless it is set on the span. (#1761)"event" key for a tag. Additionally, this tag is overridden, as specified in the OTel specification, if the event contains an attribute with that key. (#1768)RecordError now records an exception event to comply with the semantic convention specification. (#1492)go.opentelemetry.io/proto/otlp. (#1713)github.com/gogo/protobuf to google.golang.org/protobuf to match go.opentelemetry.io/proto/otlp. (#1713)context.Context using its SpanContext is unified to store just the current Span. The Span's SpanContext can now self-identify as being remote or not. This means that "go.opentelemetry.io/otel/trace".ContextWithRemoteSpanContext will now overwrite any existing current Span, not just existing remote Spans, and make it the current Span in a context.Context. (#1731)"go.opentelemetry.io/otel/export/trace".SpanSnapshot is unified in a new Parent field. The existing ParentSpanID and HasRemoteParent fields are removed in favor of this. (#1748)ParentContext field of the "go.opentelemetry.io/otel/sdk/trace".SamplingParameters is updated to hold a context.Context containing the parent span. This changes it to make SamplingParameters conform with the OpenTelemetry specification. (#1749)JAEGER_ENDPOINT, JAEGER_USER, JAEGER_PASSWORD to OTEL_EXPORTER_JAEGER_ENDPOINT, OTEL_EXPORTER_JAEGER_USER, OTEL_EXPORTER_JAEGER_PASSWORD in compliance with OTel specification. (#1752)BatchSpanProcessor.ForceFlush to abort after timeout/cancellation. (#1757)DroppedAttributeCount field of the Span in the go.opentelemetry.io/otel package now only represents the number of attributes dropped for the span itself. It no longer is a conglomerate of itself, events, and link attributes that have been dropped. (#1771)ExportSpans in Jaeger Exporter honor context deadline. (#1773)go.opentelemetry.io/otel/sdk/export/trace package is merged into the go.opentelemetry.io/otel/sdk/trace package. (#1778)TracerProvider implementation and enable the shutdown of the exporter. (#1800)InstallNewPipeline and NewExportPipeline) with the TracerProvider implementation they create. This enables the caller to shutdown and flush using the related TracerProvider methods. (#1822)http://localhost:14250, for the collector. (#1824)WithCollectorEndpoint in the Jaeger exporter to no longer accept an endpoint as an argument. The endpoint can be passed with the CollectorEndpointOption using the WithEndpoint function or by setting the OTEL_EXPORTER_JAEGER_ENDPOINT environment variable value appropriately. (#1824)BatchSpanProcessor for this functionality. (#1830)NewRawExporter, NewExportPipeline, and InstallNewPipeline) no longer accept the removed Option type as a variadic argument. (#1830)JAEGER_SERVICE_NAME, JAEGER_DISABLED, JAEGER_TAGS These environment variables will no longer be used to override values of the Jaeger exporter (#1752)Span in go.opentelemetry.io/otel/sdk/trace that is configured to be a new root. This is unspecified behavior that the OpenTelemetry community plans to standardize in the future. To prevent backwards incompatible changes when it is specified, these links are removed. (#1726)"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)HasRemoteParent field of the "go.opentelemetry.io/otel/sdk/trace".SamplingParameters is removed. This field is redundant to the information returned from the Remote method of the SpanContext held in the ParentContext field. (#1749)trace.FlagsDebug and trace.FlagsDeferred constants have been removed and will be localized to the B3 propagator. (#1770)Process configuration, WithProcessFromEnv and ProcessFromEnv, and type from the Jaeger exporter package. The information that could be configured in the Process struct should be configured in a Resource instead. (#1776, #1804)WithDisabled option from the Jaeger exporter. To disable the exporter unregister it from the TracerProvider or use a no-operation TracerProvider. (#1806)CollectorEndpointFromEnv and WithCollectorEndpointOptionFromEnv from the Jaeger exporter. These functions for retrieving specific environment variable values are redundant of other internal functions and are not intended for end user use. (#1824)WithSDKOptions Option. This option was used to set SDK options for the exporter creation convenience functions. These functions are provided as a way to easily setup or install the exporter with what are deemed reasonable SDK settings for common use cases. If the SDK needs to be configured differently, the NewRawExporter function and direct setup of the SDK with the desired settings should be used. (#1825)WithBufferMaxCount and WithBatchMaxCount Options from the Jaeger exporter are removed. The exporter no longer batches exports, instead relying on the SDK's BatchSpanProcessor for this functionality. (#1830)Option type is removed. 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)Marshaler config option to otlphttp to enable otlp over json or protobufs. (#1586)ForceFlush method to the "go.opentelemetry.io/otel/sdk/trace".TracerProvider to flush all registered SpanProcessors. (#1608)WithSampler and WithSpanLimits to tracer provider. (#1633, #1702)"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)Valid method to the "go.opentelemetry.io/otel/attribute".KeyValue type. (#1703)trace.SpanContext is now immutable and has no exported fields. (#1573)trace.NewSpanContext() can be used in conjunction with the trace.SpanContextConfig struct to initialize a new SpanContext where all values are known.ForceFlush method signature to the "go.opentelemetry.io/otel/sdk/trace".SpanProcessor to accept a context.Context and return an error. (#1608)Shutdown method to the "go.opentelemetry.io/otel/sdk/trace".TracerProvider return an error on shutdown failure. (#1608)SpanExporter and gracefully ignore subsequent calls to OnEnd after Shutdown is called. (#1612)"go.opentelemetry.io/sdk/metric/controller.basic".WithPusher is replaced with WithExporter to provide consistent naming across project. (#1656)Attribute keys. (#1659)description to SpanStatus only when StatusCode is set to error. (#1662)resource.Default's service.name if the exported Span does not have one. (#1673)LabelSet method of "go.opentelemetry.io/otel/sdk/resource".Resource to Set. (#1692)WithSDK to WithSDKOptions to accept variadic arguments of TracerProviderOption type in go.opentelemetry.io/otel/exporters/trace/jaeger package. (#1693)WithSDK to WithSDKOptions to accept variadic arguments of TracerProviderOption type in go.opentelemetry.io/otel/exporters/trace/zipkin package. (#1693)serviceName parameter from Zipkin exporter and uses resource instead. (#1549)WithConfig from tracer provider to avoid overriding configuration. (#1633)SimpleSpanProcessor and BatchSpanProcessor structs. These are now returned as a SpanProcessor interface from their respective constructors. (#1638)WithRecord() from trace.SpanOption when creating a span. (#1660)Error while recording an error as a span event in RecordError. (#1663)jaeger.WithProcess configuration option. (#1673)ApplyConfig method from "go.opentelemetry.io/otel/sdk/trace".TracerProvider and the now unneeded Config struct. (#1693)SamplingResult.TraceState is correctly propagated to a newly created span's SpanContext. (#1655)otel-collector example now correctly flushes metric events prior to shutting down the exporter. (#1678)SpanStatusFromHTTPStatusCode if it can be inferred from http.status_code. (#1681)TracerProvider. (#1687)resource.Default() for use with meter and tracer providers. (#1507)AttributePerEventCountLimit and AttributePerLinkCountLimit for SpanLimits. (#1535)Keys() method to propagation.TextMapCarrier and propagation.HeaderCarrier to adapt http.Header to this interface. (#1544)code attributes to go.opentelemetry.io/otel/semconv package. (#1558)Replaced interface oteltest.SpanRecorder with its existing implementation StandardSpanRecorder. (#1542)
Default span limit values to 128. (#1535)
Rename MaxEventsPerSpan, MaxAttributesPerSpan and MaxLinksPerSpan to EventCountLimit, AttributeCountLimit and LinkCountLimit, and move these fields into SpanLimits. (#1535)
Renamed the otel/label package to otel/attribute. (#1541)
Vendor the Jaeger exporter's dependency on Apache Thrift. (#1551)
Parallelize the CI linting and testing. (#1567)
Stagger timestamps in exact aggregator tests. (#1569)
Changed all examples to use WithBatchTimeout(5 * time.Second) rather than WithBatchTimeout(5). (#1621)
Prevent end-users from implementing some interfaces (#1575)
"otel/exporters/otlp/otlphttp".Option
"otel/exporters/stdout".Option
"otel/oteltest".Option
"otel/trace".TracerOption
"otel/trace".SpanOption
"otel/trace".EventOption
"otel/trace".LifeCycleOption
"otel/trace".InstrumentationOption
"otel/sdk/resource".Option
"otel/sdk/trace".ParentBasedSamplerOption
"otel/sdk/trace".ReadOnlySpan
"otel/sdk/trace".ReadWriteSpan
span.SetName(). (#1545)test-benchmark is no longer a dependency of the precommit make target. (#1567)test-386 make target. This was replaced with a full compatibility testing suite (i.e. multi OS/arch) in the CI system. (#1567)master to main. (#1505)Resource attributes are merged, per change in spec. (#1501)go.opentelemetry.io/otel/exporters/otlp is moved to a compiled example test and used the new WithAddress instead of WithEndpoint. (#1513)ReadOnlySpan and ReadWriteSpan interfaces to provide better control for accessing span data. (#1360)NewGRPCDriver function returns a ProtocolDriver that maintains a single gRPC connection to the collector. (#1369)NewSplitDriver for OTLP exporter that allows sending traces and metrics to different endpoints. (#1418)exporters/otlp/otlphttp. Currently it only supports the binary protobuf payloads. (#1420)internal/testing to internal/internaltest. (#1449)export.SpanData to export.SpanSnapshot and use it only for exporting spans. (#1360)SpanContext rather than just its span ID in the span struct. (#1360)array aggregator renamed exact to match its aggregation.Kind (#1412)exact aggregator includes per-point timestamps (#1412)NewExporter from exporters/otlp now takes a ProtocolDriver as a parameter. (#1369)uint64. (1430)SamplingResult now passed a Tracestate from the parent SpanContext (#1432)exporters/otlp/otlpgrpc. (#1420)TraceContext propagator now correctly propagates TraceState through the SpanContext. (#1447)WithExporter() and Start() to configure Push behaviorStart() is optional; use Collect() and ForEach() for Pull behaviorStart() and Stop() accept Context. (#1378)Event type is moved from the otel/sdk/export/trace package to the otel/trace API package. (#1452)errUninitializedSpan as its only usage is now obsolete. (#1360)BatchSpanProcessor.Shutdown() will now shutdown underlying export.SpanExporter. (#1443)WithIDGenerator TracerProviderOption is added to the go.opentelemetry.io/otel/trace package to configure an IDGenerator for the TracerProvider. (#1363)NewExporter and Start functions in go.opentelemetry.io/otel/exporters/otlp now receive context.Context as a first parameter. (#1357)example directory. (#1359)internal.IDGenerator interface in to the sdk/trace package to enable support for externally-defined ID generators. (#1363)github.com/google/go-cmp from 0.5.3 to 0.5.4 (#1374)github.com/golangci/golangci-lint in /internal/tools (#1375)SumObserver and UpDownSumObserver instruments correctness fixes. (#1381)EventOption and the related NewEventConfig function are added to the go.opentelemetry.io/otel package to configure Span events. (#1254)TextMapPropagator and associated TextMapCarrier are added to the go.opentelemetry.io/otel/oteltest package to test TextMap type propagators and their use. (#1259)SpanContextFromContext returns SpanContext from context. (#1255)TraceState has been added to SpanContext. (#1340)DeploymentEnvironmentKey added to go.opentelemetry.io/otel/semconv package. (#1323)SpanProcessor.OnStart to follow the specification. (#1333)sdk/trace/attributes_map.go. (#1337)go.opentelemetry.io/otel/api/trace package into go.opentelemetry.io/otel/trace with the following changes. (#1229) (#1307)ID has been renamed to TraceID.IDFromHex has been renamed to TraceIDFromHex.EmptySpanContext is removed.go.opentelemetry.io/otel/api/trace/tracetest package into go.opentelemetry.io/otel/oteltest. (#1229)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)MetricKind method of the Descriptor type in the go.opentelemetry.io/otel/api/metric package was renamed to Descriptor.InstrumentKind. This matches the returned type and fixes misuse of the term metric. (#1240)go.opentelemetry.io/otel/api/apitest package into go.opentelemetry.io/otel/oteltest. (#1241)go.opentelemetry.io/otel/api/metric/metrictest package into go.opentelemetry.io/oteltest as part of #964. (#1252)go.opentelemetry.io/otel/api/metric package into go.opentelemetry.io/otel/metric as part of #1303. (#1321)go.opentelemetry.io/otel/api/metric/registry package into go.opentelemetry.io/otel/metric/registry as a part of #1303. (#1316)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)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 EventOptions. (#1254)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 EventOptions. (#1254)go.opentelemetry.io/otel/api/global package to go.opentelemetry.io/otel. (#1262) (#1330)Version function from go.opentelemetry.io/otel/sdk to go.opentelemetry.io/otel. (#1330)"otcorrelations" to "baggage" to match the OpenTelemetry specification. (#1267)Code.UnmarshalJSON to work with valid JSON only. (#1276)resource.New() method changes signature to support builtin attributes and functional options, including telemetry.sdk.* and host.name semantic conventions; the former method is renamed resource.NewWithAttributes. (#1235)UpDownCounters) as gauges. (#1210)Span.End method documentation in the otel API to state updates are not allowed on a span after it has ended. (#1310)semconv.HTTPUrlKey to semconv.HTTPURLKey. (#1338)ErrInvalidHexID, ErrInvalidTraceIDLength, ErrInvalidSpanIDLength, ErrInvalidSpanIDLength, or ErrNilSpanID from the go.opentelemetry.io/otel package are unexported now. (#1243)AddEventWithTimestamp method on the Span interface in go.opentelemetry.io/otel is removed due to its redundancy. It is replaced by using the AddEvent method with a WithTimestamp option. (#1254)MockSpan and MockTracer types are removed from go.opentelemetry.io/otel/oteltest. Tracer and Span from the same module should be used in their place instead. (#1306)WorkerCount option is removed from go.opentelemetry.io/otel/exporters/otlp. (#1350)MergeItererator to MergeIterator in the go.opentelemetry.io/otel/label package. (#1244)go.opentelemetry.io/otel/api/global packages global TextMapPropagator now delegates functionality to a globally set delegate for all previously returned propagators. (#1258)label.Any. (#1299)TracerProvider to pass options to its configured provider. (#1329)ExactKind aggregator in OTLP metrics transformer (#1309)Code struct from the go.opentelemetry.io/otel/codes package now supports JSON marshaling and unmarshaling as well as implements the Stringer interface. (#1214)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)New function from the go.opentelemetry.io/otel/api/propagation package was replaced with NewCompositeTextMapPropagator in the go.opentelemetry.io/otel package. (#1212)go.opentelemetry.io/otel/codes package have been updated to match the latest OpenTelemetry specification. They now are Unset, Error, and Ok. They no longer track the gRPC codes. (#1214)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)go.opentelemetry.io/otel/api/baggage package into go.opentelemetry.io/otel/baggage. (#1217) (#1325)Shutdown method of SpanProcessor and all its implementations receives a context and returns an error. (#1264)go.opentelemetry.io/otel/label.ArrayValue() are now used in the returned Value instead of using the mutable data itself. (#1226)ExtractHTTP and InjectHTTP functions from the go.opentelemetry.io/otel/api/propagation package were removed. (#1212)Propagators interface from the go.opentelemetry.io/otel/api/propagation package was removed to conform to the OpenTelemetry specification. The explicit TextMapPropagator type can be used in its place as this is the Propagator type the specification defines. (#1212)SetAttribute method of the Span from the go.opentelemetry.io/otel/api/trace package was removed given its redundancy with the SetAttributes method. (#1216)HostHostNameKey in Resource semantic conventions. (#1219)SpanConfigure function in go.opentelemetry.io/otel/api/trace to create a new SpanConfig from SpanOptions. (#1108)go.opentelemetry.io/otel/api/trace package, NewTracerConfig was added to construct new TracerConfigs. This addition was made to conform with our project option conventions. (#1155)SpanProcessor interface now has a ForceFlush() method. (#1166)StartOption and EndOption in go.opentelemetry.io/otel/api/trace with SpanOption. This change is matched by replacing the StartConfig and EndConfig with a unified SpanConfig. (#1108)LinkedTo span option in go.opentelemetry.io/otel/api/trace with WithLinks. 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)go.opentelemetry.io/otel/api/trace TracerOption was changed to an interface to conform to project option conventions. (#1109)B3 and TraceContext from within the go.opentelemetry.io/otel/api/trace package to their own go.opentelemetry.io/otel/propagators package. 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)ProbabilitySampler to TraceIDRatioBased and change semantics to ignore parent span sampling status. (#1115)tools package under internal. (#1141)go.opentelemetry.io/otel/api/correlation package to go.opentelemetry.io/otel/api/baggage. (#1142) The correlation.CorrelationContext propagator has been renamed baggage.Baggage. Other exported functions and types are unchanged.ParentOrElse sampler to ParentBased and allow setting samplers depending on parent span. (#1153)go.opentelemetry.io/otel/api/trace package, SpanConfigure was renamed to NewSpanConfig. (#1155)dependabot.yml to add a Skip Changelog label to dependabot-sourced PRs. (#1161)newConfig() instead of configure(). (#1163)otlp.Config type has been unexported and changed to otlp.config, along with its initializer. (#1163)go.opentelemetry.io/otel/api/metric.ConfigureInstrument to NewInstrumentConfig and go.opentelemetry.io/otel/api/metric.ConfigureMeter to NewMeterConfig.go.opentelemetry.io/otel/api/unit package to go.opentelemetry.io/otel/unit. (#1185)Provider to MeterProvider in the go.opentelemetry.io/otel/api/metric package. (#1190)NoopProvider to NoopMeterProvider in the go.opentelemetry.io/otel/api/metric package. (#1190)NewProvider to NewMeterProvider in the go.opentelemetry.io/otel/api/metric/metrictest package. (#1190)Provider to MeterProvider in the go.opentelemetry.io/otel/api/metric/registry package. (#1190)NewProvider to NewMeterProvider in the go.opentelemetry.io/otel/api/metri/registryc package. (#1190)Provider to TracerProvider in the go.opentelemetry.io/otel/api/trace package. (#1190)NoopProvider to NoopTracerProvider in the go.opentelemetry.io/otel/api/trace package. (#1190)Provider to TracerProvider in the go.opentelemetry.io/otel/api/trace/tracetest package. (#1190)NewProvider to NewTracerProvider in the go.opentelemetry.io/otel/api/trace/tracetest package. (#1190)WrapperProvider to WrapperTracerProvider in the go.opentelemetry.io/otel/bridge/opentracing package. (#1190)NewWrapperProvider to NewWrapperTracerProvider in the go.opentelemetry.io/otel/bridge/opentracing package. (#1190)Provider method of the pull controller to MeterProvider in the go.opentelemetry.io/otel/sdk/metric/controller/pull package. (#1190)Provider method of the push controller to MeterProvider in the go.opentelemetry.io/otel/sdk/metric/controller/push package. (#1190)ProviderOptions to TracerProviderConfig in the go.opentelemetry.io/otel/sdk/trace package. (#1190)ProviderOption to TracerProviderOption in the go.opentelemetry.io/otel/sdk/trace package. (#1190)Provider to TracerProvider in the go.opentelemetry.io/otel/sdk/trace package. (#1190)NewProvider to NewTracerProvider in the go.opentelemetry.io/otel/sdk/trace package. (#1190)SamplingDecision values to comply with OpenTelemetry specification change. (#1192)ot.status_code & ot.status_description to otel.status_code & otel.status_description. (#1201)SpanProcessors in the order they were registered with the TracerProvider. (#1195)SpanProcessors in the order they were registered. (#1203)go.opentelemetry.io/otel/propagators. It is now located in the go.opentelemetry.io/contrib/propagators/ module. (#1191)HTTPStatusTextKey from package go.opentelemetry.io/otel/semconv. (#1194)ParentSampler, corrected to ParentBased. (#1171)Noop and InMemory SpanBatcher implementations to help with testing integrations. (#994)WithSpanProcessor ProviderOption is added to the go.opentelemetry.io/otel/sdk/trace package to create a Provider and automatically register the SpanProcessor. (#1078)sdk/metric/processor/test to sdk/metric/processor/processortest. (#1049)sdk/metric/controller/test to sdk/metric/controller/controllertest. (#1049)api/testharness to api/apitest. (#1049)api/trace/testtrace to api/trace/tracetest. (#1049)go.opentelemetry.io/otel/bridge/opentracing bridge package has been made into its own module. This removes the package dependencies of this bridge from the rest of the OpenTelemetry based project. (#1038)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)OTEL_RESOURCE_LABELS to OTEL_RESOURCE_ATTRIBUTES (#1042)WithSyncer with WithBatcher in examples. (#1044)google.golang.org/grpc/codes dependency in the API with an equivalent go.opentelemetry.io/otel/codes package. (#1046)go.opentelemetry.io/otel/api/label and go.opentelemetry.io/otel/api/kv into the new go.opentelemetry.io/otel/label package. (#1060)*Callback with *Func. (#1061)go.opentelemetry.io/otel/sdk/export/trace interfaces SpanSyncer and SpanBatcher have been replaced with a specification compliant Exporter interface. 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)go.opentelemetry.io/otel/sdk/trace NewBatchSpanProcessor function no longer returns an error. 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)go.opentelemetry.io/otel/sdk/trace NewProvider function to create a Provider no longer returns an error, instead only a *Provider. This change is related to NewBatchSpanProcessor not returning an error which was the only error this function would return. (#1078)Sampler interface provided by the SDK instead.grpctrace instrumentation was moved to the go.opentelemetry.io/contrib repository and out of this repository. This move includes moving the grpc example to the go.opentelemetry.io/contrib as well. (#1027)WithSpan method of the Tracer interface. 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)RegisterSpanProcessor and UnregisterSpanProcessor functions. These were holdovers from an approach prior to the TracerProvider design. They were not used anymore. (#1077)oterror package. (#1026)othttp and httptrace instrumentations were moved to go.opentelemetry.io/contrib. (#1032)semconv.HTTPServerMetricAttributesFromHTTPRequest() function no longer generates the high-cardinality http.request.content.length label. (#1031)End method is called during a panic (i.e. it was deferred). (#1043)go.opentelemetry.io/otel to the OTLP exporter to reduce dependency overhead. (#1050)otel-collector example referenced outdated collector processors. (#1006)This release migrates the default OpenTelemetry SDK into its own Go module, decoupling the SDK from the API and reducing dependencies for instrumentation packages.
NewExportPipeline and InstallNewPipeline constructor functions to match the common pattern. These function build a new exporter with default SDK options and register the exporter with the global package respectively. (#944)testtrace package now tracks the trace.SpanKind for each span. (#987)RegisterGlobal Option in the Jaeger exporter with an InstallNewPipeline constructor function. This matches the other exporter constructor patterns and will register a new exporter after building it with default configuration. (#944)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. 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)go.opentelemetry.io/otel/exporters/test test package to go.opentelemetry.io/otel/sdk/export/metric/metrictest. (#962)go.opentelemetry.io/otel/api/kv/value package was merged into the parent go.opentelemetry.io/otel/api/kv package. (#968)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.Infer to Any in the go.opentelemetry.io/otel/api/kv package. (#972)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 ResponseWriterare also implemented by the wrapped ResponseWriter. (#979)go.opentelemetry.io/otel/sdk/metric/aggregator/test package to go.opentelemetry.io/otel/sdk/metric/aggregator/aggregatortest. (#980)go.opentelemetry.io/otel/sdk. (#985)Sampler from AlwaysOn to ParentOrElse(AlwaysOn). (#989)IndexedAttribute function from the go.opentelemetry.io/otel/api/label package was removed in favor of IndexedLabel which it was synonymous with. (#970)global.Handle for span export errors in the OTLP exporter. (#946)go.opentelemetry.io/otel/api package. (#977)go.opentelemetry.io/otel/instrumentation package. (#983)go.opentelemetry.io/otel/instrumentation/grpctrace interceptors into Go example tests. (#984)internal/opentelemetry-proto-gen. (#938)open-telemetry/opentelemetry-proto imported as a git submodule under internal/opentelemetry-proto. References to github.com/open-telemetry/opentelemetry-proto changed to go.opentelemetry.io/otel/internal/opentelemetry-proto-gen. (#942)structs for key-value pairs will be marshalled using JSON rather than Sprintf. (#948)github.com/open-telemetry/opentelemetry-collector. (#943)B3Encoding type to represent the B3 encoding(s) the B3 propagator can inject. A value for HTTP supported encodings (Multiple Header: MultipleHeader, Single Header: SingleHeader) are included. (#882)FlagsDeferred trace flag to indicate if the trace sampling decision has been deferred. (#882)FlagsDebug trace flag to indicate if the trace is a debug trace. (#882)peer.service semantic attribute. (#898)faas.coldstart and container.id. (#909)http.request_content_length in HTTP request basic attributes. (#905)WithBatchMaxCount option to specify the maximum number of spans sent in a batch. (#931)CONTRIBUTING.md to ask for updates to CHANGELOG.md with each pull request. (#879)SingleHeader field has been replaced with InjectEncoding. 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)api/standard package, the FaaS* key names are appended with a suffix of Key. (#920)"api/standard".FaaSName -> FaaSNameKey"api/standard".FaaSID -> FaaSIDKey"api/standard".FaaSVersion -> FaaSVersionKey"api/standard".FaaSInstance -> FaaSInstanceKeyFlagsUnused trace flag is removed. The purpose of this flag was to act as the inverse of FlagsSampled, the inverse of FlagsSampled is used instead. (#882)B3SingleHeader, B3DebugFlagHeader, B3TraceIDHeader, B3SpanIDHeader, B3SampledHeader, B3ParentSpanIDHeader) are removed. If B3 header keys are needed the authoritative OpenZipkin package constants should be used instead. (#882)b3 instead of the previous X-B3. (#881)b3: 0, b3: 1, or b3: d) for a Single B3 Header. (#882)X-B3-Sampling header. (#882)X-B3-Sampling header when injecting. (#882)UnixNano. (#896)Unknown when no HTTP status code is provided as it is assumed to be 200 OK. (#908)httptrace.clientTracer closes http.headers span. (#912)HTTPClientAttributesFromHTTPRequest. (#905)grpctrace instrumentation uses a span name conforming to the OpenTelemetry semantic conventions (does not contain a leading slash (/)). (#922)grpctrace instrumentation includes an rpc.method attribute now set to the gRPC method name. (#900, #922)grpctrace instrumentation rpc.service attribute now contains the package name if one exists. This is in accordance with OpenTelemetry semantic conventions. (#922)This release implements the v0.5.0 version of the OpenTelemetry specification.
Accumulation type to metric SDK to transport telemetry from Accumulators to Processors. This replaces the prior Record struct use for this purpose. (#835)Meter and Tracer implementations accept instrumentation version version as an optional argument. This instrumentation version is passed on to exporters. (#811) (#805) (#802)aggregation.Kind in the export metric API. (#808)SetName during span initialization. (#791)go.opentelemetry.io/otel/api/oterror package to uniformly support error handling and definitions for the project. (#778)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. 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)application/json header for the Zipkin exporter is included in all exports. (#774)api/standard package. #769Integrator to Processor in the metric SDK. (#863)AggregationSelector to AggregatorSelector. (#859)SynchronizedCopy to SynchronizedMove. (#858)simple integrator to basic integrator. (#857)Aggregator.Checkpoint API is renamed to SynchronizedCopy and adds an argument, a different Aggregator into which the copy is stored. (#812)export.Aggregator contract is that Update() and SynchronizedCopy() are synchronized with each other. 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)metric.Number was replaced by int64 now that we use sync.Mutex in the MinMaxSumCount and Histogram Aggregators. (#812)AlwaysParentSample with ParentSample(fallback) to match the OpenTelemetry v0.5.0 specification. (#810)sdk/export/metric/aggregator to sdk/export/metric/aggregation. #808global.Handle function. (#791)plugin directory to instrumentation to match the OpenTelemetry specification. (#779)New() consistent. (#781)Uint64NumberKind and related functions from the API. (#864)Aggregator.Checkpoint and Integrator.Process as they were unused. (#803)SpanID is no longer included in parameters for sampling decision to match the OpenTelemetry specification. (#775)go.sum and go.mod when running dependabot tidy-up. (#871)Aggregator testing has been updated and cleaned. (#812)metric.Number(0) expressions are replaced by 0 where possible. (#812)global handler_test.go test failure. #804BatchSpanProcessor.Shutdown to wait until all spans are processed. (#766)api/standard keys instead of custom keys. (#782)Resources in the prometheus exporter. (#757)UpDownSumObserver instrument. (#750)SumObserver instrument. (#747)UpDownCounter instrument. (#745)Option and configuration function WithTimeout to the push controller. (#742)api/standards package to implement semantic conventions and standard key-value generation. (#731)Register* functions in the metric API to New* for all Observer instruments. (#761)[]float64 for histogram boundaries, not []metric.Number. (#758)Syncer instead of as an unneeded Batcher. (#756)WithResourceAttributes() with WithResource() in the trace SDK. (#754)ScheduleDelayMillis to BatchTimeout in the trace BatchSpanProcessor.(#752)Resource from the Export method parameter into the metric export Record. (#739)Observer instrument to ValueObserver. (#734)Provider()) to return a metric.Provider instead of the old Meter method that acted as a metric.Provider. (#738)Measure instrument by ValueRecorder instrument. (#732)"Correlation-Context" to "otcorrelations" to match the OpenTelemetry specification. (#727)ClientStream override methods do not panic in grpctrace package. (#755)BatchSpanProcessor test until a fix is found. (#743)string case in kv Infer function. (#746)api/metrics push controller and add CheckpointSet synchronization. (#737)golang-1.14 for examples. (#733)UnaryInterceptorClient. (#695)api/metric code layout. (#724)Observer callback support. (#717)api types to root package of project. (#696)othttp.Transport for simple client instrumentation. (#678)SetAttribute(string, interface{}) to the trace API. (#674)Stringer and Infer methods to keys. (#662)NewKey in the kv package to just Key. (#721)core and key to kv package. (#720)Meter a struct so the abstract MeterImpl can be passed and simplify implementation. (#709)Batcher to Integrator to match draft OpenTelemetry SDK specification. (#710)Ungrouped integrator to simple.Integrator to match draft OpenTelemetry SDK specification. (#710)SDK struct to Accumulator to match draft OpenTelemetry SDK specification. (#710)Number from core to api/metric package. (#706)SpanContext from core to trace package. (#692)Traceparent to traceparent to implement the W3C specification. (#681)const for padding 64-bit B3 trace IDs. (#701)mockZipkin listen address from :0 to 127.0.0.1:0. (#700)StateLocker implementation. (#688)key benchmark and use reflection in key.Infer(). (#679)global test by using global.Meter with RecordBatch(). (#680)StateLocker. (#669)MinMaxSumCount to a mutex lock implementation instead of StateLocker. (#667)WithKeys. (#672)golangci-lint and work around the corrupting bug. (#666) (#670)Dockerfile and docker-compose.yml to run example code. (#635)grpctrace package that provides gRPC client and server interceptors for both unary and stream connections. (#621)api/label package, providing common label set implementation. (#651)Resources. (#654)TraceID and SpanID implementations for Stringer interface. (#642)RemoteAddrKey in the othttp plugin to include the HTTP client address in top-level spans. (#627)WithSpanFormatter option to the othttp plugin. (#617)String method to the Resource to return a hashable identifier for a now unique resource. (#613)Iter method to the Resource to return an array AttributeIterator. (#613)Equal method to the Resource test the equivalence of resources. (#613)AttributeIterator) for Resource attributes.NewExporter now requires a serviceName argument to ensure this needed values is provided. (#644)Resources through the metrics export pipeline. (#659)WithKeys option from the metric API. (#639)label.Set.Equivalent value instead of an encoding in the batcher. (#658)trace.Exporter to trace.SpanSyncer in comments. (#653)api/key package by updating comments and fixing usages locally. (#650)Checkpoint only after Update; Keep records in the sync.Map longer. (#647)reflect.ValueOf() in metric Labels. (#649)Resource and labels. (#626)string representation of an associated Resource as the batching key. (#623)SpanData transform to only include the ParentSpanID if one exists. (#614)Resource internal representation to uniquely and reliably identify resources. (#613)CheckpointSet.ForEach in prometheus exporter. (#622)pre_release.sh to update version in sdk/opentelemetry.go. (#607)tag.sh to create signed tags. (#604)api/metric/registry that exposes a MeterImpl wrapper for use by SDKs to generate unique instruments. (#580)LabelSet from the metric API. This is replaced by a []core.KeyValue slice. (#595)Labels from the metric API's Meter interface. (#595)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)internal/metric.Meter to MeterImpl. (#580)api/global/internal.obsImpl to asyncImpl. (#580)RecordBatch benchmark. (#594)BatchedSpanProcessor to process the queue until no data but respect max batch size. (#599)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.
Observer metric instrument. (#474)Propagators functionality to enable deferred initialization for propagators registered before the first Meter SDK is installed. (#494)StatusMessage field to the trace Span. (#524)Resource type was added to the SDK. (#528)Tracer and Meter function as shortcuts to getting a global *Provider and calling these methods directly. (#538)MeterImpl interface to support general purpose Meter construction. Additionally, SyncImpl and AsyncImpl are added to support general purpose instrument construction. (#560)Kind is added to represent the MeasureKind, ObserverKind, and CounterKind. (#560)AlwaysSampler instead of ProbabilitySampler to match OpenTelemetry specification. (#506)AlwaysSampleSampler to AlwaysOnSampler in the trace API. (#511)NeverSampleSampler to AlwaysOffSampler in the trace API. (#511)Status field of the Span was changed to StatusCode to disambiguate with the added StatusMessage. (#524)Sampler interface conform to the OpenTelemetry specification. (#531)Options to Config. (#541)Counter aggregator to be Sum. (#541)Option from instrument specific options. (#541)TraceProvider now support Resources. (#545)Resources. (#551)Resources. 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)ErrNoLastValue and ErrEmptyDataSet by ErrNoData in the metric SDK. (#557)Resources. (#558)Descriptor is now included at the API instead of the SDK. (#560)Ordered with an iterator in export.Labels. (#567)Unregister method for metric observers as it is not in the OpenTelemetry specification. (#560)GetDescriptor from the metric SDK. (#575)Gauge instrument from the metric API. (#537)NewRoot in the othttp plugin for public endpoints. (#513)BatchedSpanProcessor. (#518)StateLocker implementation in MinMaxSumCount. (#546)Header* filters that do not depend on Go 1.14. (#565)COVERAGE_MOD_DIR. (#573)RecordError method on Spans in the trace API to Simplify adding error events to spans. (#473)exporter directory to exporters. 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)CorrelationContextHeader constant in the correlation package is no longer exported. (#503)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)HTTPExtractor interface in the propagation API to extract information from an HTTPSupplier into a context. (#467)HTTPInjector interface in the propagation API to inject information into an HTTPSupplier. (#467)Config and configuring Option to the propagator API. (#467)Propagators interface in the propagation API to contain the set of injectors and extractors for all supported carrier formats. (#467)HTTPPropagator interface in the propagation API to inject and extract from an HTTPSupplier. (#467)WithInjectors and WithExtractors functions to the propagator API to configure injectors and extractors to use. (#467)ExtractHTTP and InjectHTTP functions to apply configured HTTP extractors and injectors to a passed context. (#467)DefaultPropagator function and have it return trace.TraceContext as the default context propagator. (#456)AlwaysParentSample sampler to the trace API. (#455)WithNewRoot option function to the trace API to specify the created span should be considered a root span. (#451)WithMap to ContextWithMap in the correlation package. (#481)FromContext to MapFromContext in the correlation package. (#481)Tracer.WithSpan updated to accept StartOptions. (#472)MetricKind to Kind to not stutter in the type usage. (#432)export package to metric to match directory structure. (#432)api/distributedcontext package to api/correlation. (#444)api/propagators package to api/propagation. (#444)propagators package into the trace API package. (#444)Float64Gauge, Int64Gauge, Float64Counter, Int64Counter, Float64Measure, and Int64Measure metric methods to use value receivers instead of pointers. (#462)github.com/golangci/golangci-lint from v1.21.0 to v1.23.6 in tools/. (#492)InstallNewPipeline in the stdout exporter. (#483)InstallNewPipeline in the dogstatsd exporter. (#484)InstallNewPipeline in the prometheus exporter. (#482)onError based on Config in prometheus exporter. (#486)aggregator_test.go import package comment. (#431)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)span.kind tag to Jaeger from the jaeger exporter. (#441)metadataSupplier in the jaeger exporter to overwrite the header if existing instead of appending to it. (#441)runtime.Gosched in instrument acquireHandle logic to not block the collector. (#469)propagation package to propagators. (#362)B3Propagator propagator to B3. (#362)TextFormatPropagator propagator to TextFormat. (#362)BinaryPropagator propagator to Binary. (#362)BinaryFormatPropagator propagator to BinaryFormat. (#362)NoopTextFormatPropagator propagator to NoopTextFormat. (#362)TraceContextPropagator propagator to TraceContext. (#362)SpanOption to StartOption in the trace API. (#369)StartOptions to StartConfig in the trace API. (#369)EndOptions to EndConfig in the trace API. (#369)Number now has a pointer receiver for its methods. (#375)CurrentSpan to SpanFromContext in the trace API. (#379)SetCurrentSpan to ContextWithSpan in the trace API. (#379)Message in Event to Name in the trace API. (#389)HandleImpl to BoundInstrumentImpl in the metric API. (#400)Float64CounterHandle to Float64CounterBoundInstrument in the metric API. (#400)Int64CounterHandle to Int64CounterBoundInstrument in the metric API. (#400)Float64GaugeHandle to Float64GaugeBoundInstrument in the metric API. (#400)Int64GaugeHandle to Int64GaugeBoundInstrument in the metric API. (#400)Float64MeasureHandle to Float64MeasureBoundInstrument in the metric API. (#400)Int64MeasureHandle to Int64MeasureBoundInstrument in the metric API. (#400)Release method for bound instruments in the metric API to Unbind. (#400)AcquireHandle method for bound instruments in the metric API to Bind. (#400)File option in the stdout exporter to Writer. (#404)Options to Config for all metric exports where this wasn't already the case.http.request span in httptrace package. (#397)MaxSumCount aggregation to MinMaxSumCount and add the Min interface for this aggregation. (#352)GetMeter to Meter. (#357)HTTPTraceContextPropagator to TraceContextPropagator. (#355)HTTPB3Propagator to B3Propagator. (#355)HTTPTraceContextPropagator to TraceContextPropagator. (#355)/global package to /api/global. (#356)GetTracer to Tracer. (#347)SetAttribute from the Span interface in the trace API. (#361)AddLink from the Span interface in the trace API. (#349)Link from the Span interface in the trace API. (#349)golangci-lint before a second run to report the remaining issues. (#360)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)generate and lint targets of the Makefile. (#354)circle-ci target to more generic ci in Makefile. (#354)MaxSumCount. (#335)push_test.go identified in #339. (#340)/usr/bin/env bash as a shebang in scripts rather than /bin/bash. (#336)AlwaysSample and NeverSample. Previously it was testing AlwaysSample twice. (#325)[]byte for TraceID to fix failing test. (#325)setAttribute vs setAttributes (#325)defaultkeys batcher was only using the encoded label set as its map key while building a checkpoint. This allowed distinct label sets through, but any metrics sharing a label set could be overwritten or merged incorrectly. This was corrected. (#333)simplelru map for attributes to reduce the number of allocations. (#328)This release contains a Metrics SDK with stdout exporter and supports basic aggregations such as counter, gauges, array, maxsumcount, and ddsketch.
MarshalJSON method. (#281)WithService, WithResources, and WithComponent methods of tracers. (#314)Tracer.Start() for the Jaeger example. (#292)trace.WithAttributes to append values instead of replacing (#315)SpanKind back to being based on an int type. (#288)ExportSpans for the stackdriver exporter now handles nil context. (#294)LoadOrStore and the assignment rec.recorder = i.meter.exporter.AggregatorFor(rec). (#293)This is the first release of open-telemetry go library. It contains api and sdk for trace and meter.