Releases: open-telemetry/opentelemetry-go
Release v1.17.0/v0.40.0/v0.5.0
Added
- Export the
ManualReader
struct ingo.opentelemetry.io/otel/sdk/metric
. (#4244) - Export the
PeriodicReader
struct ingo.opentelemetry.io/otel/sdk/metric
. (#4244) - Add support for exponential histogram aggregations.
A histogram can be configured as an exponential histogram using a view with"go.opentelemetry.io/otel/sdk/metric".ExponentialHistogram
as the aggregation. (#4245) - Export the
Exporter
struct ingo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
. (#4272) - Export the
Exporter
struct ingo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
. (#4272) - The exporters in
go.opentelemetry.io/otel/exporters/otlp/otlpmetric
now support theOTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE
environment variable. (#4287) - Add
WithoutCounterSuffixes
option ingo.opentelemetry.io/otel/exporters/prometheus
to disable addition of_total
suffixes. (#4306) - Add info and debug logging to the metric SDK in
go.opentelemetry.io/otel/sdk/metric
. (#4315) - The
go.opentelemetry.io/otel/semconv/v1.21.0
package.
The package contains semantic conventions from thev1.21.0
version of the OpenTelemetry Semantic Conventions. (#4362) - Accept 201 to 299 HTTP status as success in
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
andgo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
. (#4365) - Document the
Temporality
andAggregation
methods of the"go.opentelemetry.io/otel/sdk/metric".Exporter"
need to be concurrent safe. (#4381) - Expand the set of units supported by the Prometheus exporter, and don't add unit suffixes if they are already present in
go.opentelemetry.op/otel/exporters/prometheus
(#4374) - Move the
Aggregation
interface and its implementations fromgo.opentelemetry.io/otel/sdk/metric/aggregation
togo.opentelemetry.io/otel/sdk/metric
. (#4435) - The exporters in
go.opentelemetry.io/otel/exporters/otlp/otlpmetric
now support theOTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION
environment variable. (#4437) - Add the
NewAllowKeysFilter
andNewDenyKeysFilter
functions togo.opentelemetry.io/otel/attribute
to allow convenient creation of allow-keys and deny-keys filters. (#4444)
Changed
- Starting from
v1.21.0
of semantic conventions,go.opentelemetry.io/otel/semconv/{version}/httpconv
andgo.opentelemetry.io/otel/semconv/{version}/netconv
packages will no longer be published. (#4145) - Log duplicate instrument conflict at a warning level instead of info in
go.opentelemetry.io/otel/sdk/metric
. (#4202) - Return an error on the creation of new instruments in
go.opentelemetry.io/otel/sdk/metric
if their name doesn't pass regexp validation. (#4210) NewManualReader
ingo.opentelemetry.io/otel/sdk/metric
returns*ManualReader
instead ofReader
. (#4244)NewPeriodicReader
ingo.opentelemetry.io/otel/sdk/metric
returns*PeriodicReader
instead ofReader
. (#4244)- Count the Collect time in the
PeriodicReader
timeout ingo.opentelemetry.io/otel/sdk/metric
. (#4221) - The function
New
ingo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
returns*Exporter
instead of"go.opentelemetry.io/otel/sdk/metric".Exporter
. (#4272) - The function
New
ingo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
returns*Exporter
instead of"go.opentelemetry.io/otel/sdk/metric".Exporter
. (#4272) - If an attribute set is omitted from an async callback, the previous value will no longer be exported in
go.opentelemetry.io/otel/sdk/metric
. (#4290) - If an attribute set is observed multiple times in an async callback in
go.opentelemetry.io/otel/sdk/metric
, the values will be summed instead of the last observation winning. (#4289) - Allow the explicit bucket histogram aggregation to be used for the up-down counter, observable counter, observable up-down counter, and observable gauge in the
go.opentelemetry.io/otel/sdk/metric
package. (#4332) - Restrict
Meter
s ingo.opentelemetry.io/otel/sdk/metric
to only register and collect instruments it created. (#4333) PeriodicReader.Shutdown
andPeriodicReader.ForceFlush
ingo.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)- Upgrade all use of
go.opentelemetry.io/otel/semconv
to usev1.21.0
. (#4408) - Increase instrument name maximum length from 63 to 255 characters in
go.opentelemetry.io/otel/sdk/metric
. (#4434) - Add
go.opentelemetry.op/otel/sdk/metric.WithProducer
as anOption
for"go.opentelemetry.io/otel/sdk/metric".NewManualReader
and"go.opentelemetry.io/otel/sdk/metric".NewPeriodicReader
. (#4346)
Removed
- Remove
Reader.RegisterProducer
ingo.opentelemetry.io/otel/metric
.
Use the addedWithProducer
option instead. (#4346) - Remove
Reader.ForceFlush
ingo.opentelemetry.io/otel/metric
.
Notice thatPeriodicReader.ForceFlush
is still available. (#4375)
Fixed
- Correctly format log messages from the
go.opentelemetry.io/otel/exporters/zipkin
exporter. (#4143) - Log an error for calls to
NewView
ingo.opentelemetry.io/otel/sdk/metric
that have empty criteria. (#4307) - Fix
"go.opentelemetry.io/otel/sdk/resource".WithHostID()
to not set an emptyhost.id
. (#4317) - Use the instrument identifying fields to cache aggregators and determine duplicate instrument registrations in
go.opentelemetry.io/otel/sdk/metric
. (#4337) - Detect duplicate instruments for case-insensitive names in
go.opentelemetry.io/otel/sdk/metric
. (#4338) - The
ManualReader
will not panic ifAggregationSelector
returnsnil
ingo.opentelemetry.io/otel/sdk/metric
. (#4350) - If a
Reader
'sAggregationSelector
returnsnil
orDefaultAggregation
the pipeline will use the default aggregation. (#4350) - Log a suggested view that fixes instrument conflicts in
go.opentelemetry.io/otel/sdk/metric
. (#4349) - Fix possible panic, deadlock and race condition in batch span processor in
go.opentelemetry.io/otel/sdk/trace
. (#4353) - Improve context cancellation handling in batch span processor's
ForceFlush
ingo.opentelemetry.io/otel/sdk/trace
. (#4369) - Decouple
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal
fromgo.opentelemetry.io/otel/exporters/otlp/internal
using gotmpl. (#4397, #3846) - Decouple
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal
fromgo.opentelemetry.io/otel/exporters/otlp/internal
andgo.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal
using gotmpl. (#4404, #3846) - Decouple
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal
fromgo.opentelemetry.io/otel/exporters/otlp/internal
andgo.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal
using gotmpl. (#4407, #3846) - Decouple
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal
fromgo.opentelemetry.io/otel/exporters/otlp/internal
andgo.opentelemetry.io/otel/exporters/otlp/otlptrace/internal
using gotmpl. (#4400, #3846) - Decouple
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal
fromgo.opentelemetry.io/otel/exporters/otlp/internal
andgo.opentelemetry.io/otel/exporters/otlp/otlptrace/internal
using gotmpl. (#4401, #3846) - Do not block the metric SDK when OTLP metric exports are blocked in
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
andgo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
. (#3925, #4395) - Do not append
_total
if the counter already has that suffix for the Prometheus exproter ingo.opentelemetry.io/otel/exporter/prometheus
. (#4373) - Fix resource detection data race in
go.opentelemetry.io/otel/sdk/resource
. (#4409) - Use the first-seen instrument name during instrument name conflicts in
go.opentelemetry.io/otel/sdk/metric
. (#4428)
Deprecated
- The
go.opentelemetry.io/otel/exporters/jaeger
package is deprecated.
OpenTelemetry dropped support for Jaeger exporter in July 2023.
Usego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
orgo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
instead. (#4423) - The
go.opentelemetry.io/otel/example/jaeger
package is deprecated. (#4423) - The
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal
package is deprecated. (#4420) - The
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/oconf
package is deprecated. (#4420) - The
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/otest
package is deprecated. (#4420) - The
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/transform
package is deprecated. (#4420) - The
go.opentelemetry.io/otel/exporters/otlp/internal
package is deprecated. (#4421) - The
go.opentelemetry.io/otel/exporters/otlp/internal/envconfig
package is deprecated. (#4421) - The
go.opentelemetry.io/otel/exporters/otlp/internal/retry
package is deprecated. (#4421) - The
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal
package is deprecated. (#4425) - The
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/envconfig
package is deprecated. (#4425) - The
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig
package is deprecated. (#4425) - The
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlptracetest
package is deprecated. (#4425) - The
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/retry
package is deprecated. (#4425) - The
go.opentelemetry.io/otel/sdk/metric/aggregation
package is deprecated.
Use the aggregation types added togo.opentelemetry.io/otel/sdk/metric
instead. (#4435)
New Contributors
- @serdarkalayci made their first contribution in #4129
- @Jorropo made their first contributi...
Release v1.16.0/v0.39.0 -- Stable Metric API
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.
What's Changed
Added
- The
go.opentelemetry.io/otel/semconv/v1.19.0
package. The package contains semantic conventions from thev1.19.0
version of the OpenTelemetry specification. (#3848) - The
go.opentelemetry.io/otel/semconv/v1.20.0
package. The package contains semantic conventions from thev1.20.0
version of the OpenTelemetry specification. (#4078)
Changed
- Use
strings.Cut()
instead ofstring.SplitN()
for better readability and memory use. (#4049)
Removed
- The deprecated
go.opentelemetry.io/otel/metric/instrument
package is removed. Usego.opentelemetry.io/otel/metric
instead. (#4055)
Fixed
- Fix build for BSD based systems in
go.opentelemetry.io/otel/sdk/resource
. (#4077)
New Contributors
- @tsloughter made their first contribution in #3848
- @Tijmen34 made their first contribution in #4074
- @ChillOrb made their first contribution in #3677
- @ChenX1993 made their first contribution in #4043
- @andrew-womeldorf made their first contribution in #4086
Full Changelog: v1.15.1...v1.16.0
Release v1.16.0-rc.1/v0.39.0-rc.1
This is a release candidate for the v1.16.0/v0.39.0 release. That release is expected to include the v1
release of the OpenTelemetry Go metric API and will provide stability guarantees of that API. See our versioning policy for more information about these stability guarantees.
Added
- Support global
MeterProvider
ingo.opentelemetry.io/otel
. (#4039)- Use
Meter
for ametric.Meter
from the globalmetric.MeterProvider
. - Use
GetMeterProivder
for a globalmetric.MeterProvider
. - Use
SetMeterProivder
to set the globalmetric.MeterProvider
.
- Use
Changed
- Move the
go.opentelemetry.io/otel/metric
module to thestable-v1
module set. This stages the metric API to be released as a stable module. (#4038)
Removed
- The
go.opentelemetry.io/otel/metric/global
package is removed.
Usego.opentelemetry.io/otel
instead. (#4039)
Release v1.15.1/v0.38.1
Release v1.15.0/v0.38.0
Added
- The
go.opentelemetry.io/otel/metric/embedded
package. (#3916) - The
Version
function togo.opentelemetry.io/otel/sdk
to return the SDK version. (#3949) - Add a
WithNamespace
option togo.opentelemetry.io/otel/exporters/prometheus
to allow users to prefix metrics with a namespace. (#3970) - The following configuration types were added to
go.opentelemetry.io/otel/metric/instrument
to be used in the configuration of measurement methods. (#3971)- The
AddConfig
used to hold configuration for addition measurementsNewAddConfig
used to create a newAddConfig
AddOption
used to configure anAddConfig
- The
RecordConfig
used to hold configuration for recorded measurementsNewRecordConfig
used to create a newRecordConfig
RecordOption
used to configure aRecordConfig
- The
ObserveConfig
used to hold configuration for observed measurementsNewObserveConfig
used to create a newObserveConfig
ObserveOption
used to configure anObserveConfig
- The
WithAttributeSet
andWithAttributes
are added togo.opentelemetry.io/otel/metric/instrument
. They return an option used during a measurement that defines the attribute Set associated with the measurement. (#3971)- The
Version
function togo.opentelemetry.io/otel/exporters/otlp/otlpmetric
to return the OTLP metrics client version. (#3956) - The
Version
function togo.opentelemetry.io/otel/exporters/otlp/otlptrace
to return the OTLP trace client version. (#3956)
Changed
- The
Extrema
ingo.opentelemetry.io/otel/sdk/metric/metricdata
is redefined with a generic argument of[N int64 | float64]
. (#3870) - Update all exported interfaces from
go.opentelemetry.io/otel/metric
to embed their corresponding interface fromgo.opentelemetry.io/otel/metric/embedded
. This adds an implementation requirement to set the interface default behavior for unimplemented methods. (#3916) - Move No-Op implementation from
go.opentelemetry.io/otel/metric
into its own packagego.opentelemetry.io/otel/metric/noop
. (#3941)metric.NewNoopMeterProvider
is replaced withnoop.NewMeterProvider
- Add all the methods from
"go.opentelemetry.io/otel/trace".SpanContext
tobridgeSpanContext
by embeddingotel.SpanContext
inbridgeSpanContext
. (#3966) - Wrap
UploadMetrics
error ingo.opentelemetry.io/otel/exporters/otlp/otlpmetric/
to improve error message when encountering generic grpc errors. (#3974) - The measurement methods for all instruments in
go.opentelemetry.io/otel/metric/instrument
accept an option instead of the variadic"go.opentelemetry.io/otel/attribute".KeyValue
. (#3971)- The
Int64Counter.Add
method now accepts...AddOption
- The
Float64Counter.Add
method now accepts...AddOption
- The
Int64UpDownCounter.Add
method now accepts...AddOption
- The
Float64UpDownCounter.Add
method now accepts...AddOption
- The
Int64Histogram.Record
method now accepts...RecordOption
- The
Float64Histogram.Record
method now accepts...RecordOption
- The
Int64Observer.Observe
method now accepts...ObserveOption
- The
Float64Observer.Observe
method now accepts...ObserveOption
- The
- The
Observer
methods ingo.opentelemetry.io/otel/metric
accept an option instead of the variadic"go.opentelemetry.io/otel/attribute".KeyValue
. (#3971)- The
Observer.ObserveInt64
method now accepts...ObserveOption
- The
Observer.ObserveFloat64
method now accepts...ObserveOption
- The
- Move global metric back to
go.opentelemetry.io/otel/metric/global
fromgo.opentelemetry.io/otel
. (#3986)
Fixed
TracerProvider
allows callingTracer()
while it's shutting down. It used to deadlock. (#3924)- Use the SDK version for the Telemetry SDK resource detector in
go.opentelemetry.io/otel/sdk/resource
. (#3949) - Fix a data race in
SpanProcessor
returned byNewSimpleSpanProcessor
ingo.opentelemetry.io/otel/sdk/trace
. (#3951) - Automatically figure out the default aggregation with
aggregation.Default
. (#3967)
Deprecated
- The
go.opentelemetry.io/otel/metric/instrument
package is deprecated. Use the equivalent types added togo.opentelemetry.io/otel/metric
instead. (#4018)
Release v1.15.0-rc.2/v0.38.0-rc.2
This is a release candidate for the v1.15.0/v0.38.0 release. That release will include the v1
release of the OpenTelemetry Go metric API and will provide stability guarantees of that API. See our versioning policy for more information about these stability guarantees.
Added
- The
WithHostID
option togo.opentelemetry.io/otel/sdk/resource
. (#3812) - The
WithoutTimestamps
option togo.opentelemetry.io/otel/exporters/stdout/stdoutmetric
to sets all timestamps to zero. (#3828) - The new
Exemplar
type is added togo.opentelemetry.io/otel/sdk/metric/metricdata
. Both theDataPoint
andHistogramDataPoint
types from that package have a new field ofExemplars
containing the sampled exemplars for their timeseries. (#3849) - Configuration for each metric instrument in
go.opentelemetry.io/otel/sdk/metric/instrument
. (#3895) - The internal logging introduces a warning level verbosity equal to
V(1)
. (#3900)
Changed
- Optimize memory allocation when creation a new
Set
usingNewSet
orNewSetWithFiltered
ingo.opentelemetry.io/otel/attribute
. (#3832) - Optimize memory allocation when creation new metric instruments in
go.opentelemetry.io/otel/sdk/metric
. (#3832) - Avoid creating new objects on all calls to
WithDeferredSetup
andSkipContextSetup
in OpenTracing bridge. (#3833) - The
New
andDetect
functions fromgo.opentelemetry.io/otel/sdk/resource
return errors that wrap underlying errors instead of just containing the underlying error strings. (#3844) - Both the
Histogram
andHistogramDataPoint
are redefined with a generic argument of[N int64 | float64]
ingo.opentelemetry.io/otel/sdk/metric/metricdata
. (#3849) - The metric
Export
interface fromgo.opentelemetry.io/otel/sdk/metric
accepts a*ResourceMetrics
instead ofResourceMetrics
. (#3853) - Rename
Asynchronous
toObservable
ingo.opentelemetry.io/otel/metric/instrument
. (#3892) - Rename
Int64ObserverOption
toInt64ObservableOption
ingo.opentelemetry.io/otel/metric/instrument
. (#3895) - Rename
Float64ObserverOption
toFloat64ObservableOption
ingo.opentelemetry.io/otel/metric/instrument
. (#3895) - The internal logging changes the verbosity level of info to
V(4)
, the verbosity level of debug toV(8)
. (#3900)
Fixed
TracerProvider
consistently doesn't allow to register aSpanProcessor
after shutdown. (#3845)
Removed
- The deprecated
go.opentelemetry.io/otel/metric/global
package is removed. (#3829) - The unneeded
Synchronous
interface ingo.opentelemetry.io/otel/metric/instrument
was removed. (#3892) - The
Float64ObserverConfig
andNewFloat64ObserverConfig
ingo.opentelemetry.io/otel/sdk/metric/instrument
. Use the addedfloat64
instrument configuration instead. (#3895) - The
Int64ObserverConfig
andNewInt64ObserverConfig
ingo.opentelemetry.io/otel/sdk/metric/instrument
. Use the addedint64
instrument configuration instead. (#3895) - The
NewNoopMeter
function ingo.opentelemetry.io/otel/metric
, useNewMeterProvider().Meter("")
instead. (#3893)
Release v1.15.0-rc.1/v0.38.0-rc.1
This is a release candidate for the v1.15.0/v0.38.0
release. That release will include the v1
release of the OpenTelemetry Go metric API and will provide stability guarantees of that API. See our versioning policy for more information about these stability guarantees.
This release drops the compatibility guarantee of Go 1.18.
Added
- Support global
MeterProvider
ingo.opentelemetry.io/otel
. (#3818)- Use
Meter
for ametric.Meter
from the globalmetric.MeterProvider
. - Use
GetMeterProivder
for a globalmetric.MeterProvider
. - Use
SetMeterProivder
to set the globalmetric.MeterProvider
.
- Use
Changed
- Dropped compatibility testing for Go 1.18. The project no longer guarantees support for this version of Go. (#3813)
Fixed
- Handle empty environment variable as it they were not set. (#3764)
Deprecated
- The
go.opentelemetry.io/otel/metric/global
package is deprecated. Usego.opentelemetry.io/otel
instead. (#3818)
Removed
- The deprecated
go.opentelemetry.io/otel/metric/unit
package is removed. (#3814)
Release v1.14.0/v0.37.0/v0.0.4
Part of #3809
This release is the last to support Go 1.18.
The next release will require at least Go 1.19.
Added
- The
event
type semantic conventions are added togo.opentelemetry.io/otel/semconv/v1.17.0
. (#3697) - Support Go 1.20. (#3693)
- The
go.opentelemetry.io/otel/semconv/v1.18.0
package.
The package contains semantic conventions from thev1.18.0
version of the OpenTelemetry specification. (#3719)- The following
const
renames fromgo.opentelemetry.io/otel/semconv/v1.17.0
are included:OtelScopeNameKey
->OTelScopeNameKey
OtelScopeVersionKey
->OTelScopeVersionKey
OtelLibraryNameKey
->OTelLibraryNameKey
OtelLibraryVersionKey
->OTelLibraryVersionKey
OtelStatusCodeKey
->OTelStatusCodeKey
OtelStatusDescriptionKey
->OTelStatusDescriptionKey
OtelStatusCodeOk
->OTelStatusCodeOk
OtelStatusCodeError
->OTelStatusCodeError
- The following
func
renames fromgo.opentelemetry.io/otel/semconv/v1.17.0
are included:OtelScopeName
->OTelScopeName
OtelScopeVersion
->OTelScopeVersion
OtelLibraryName
->OTelLibraryName
OtelLibraryVersion
->OTelLibraryVersion
OtelStatusDescription
->OTelStatusDescription
- The following
- A
IsSampled
method is added to theSpanContext
implementation ingo.opentelemetry.io/otel/bridge/opentracing
to expose the span sampled state.
See the README for more information. (#3570) - The
WithInstrumentationAttributes
option togo.opentelemetry.io/otel/metric
. (#3738) - The
WithInstrumentationAttributes
option togo.opentelemetry.io/otel/trace
. (#3739) - The following environment variables are supported by the periodic
Reader
ingo.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.
Changed
- Fall-back to
TextMapCarrier
when it's notHttpHeader
s ingo.opentelemetry.io/otel/bridge/opentracing
. (#3679) - The
Collect
method of the"go.opentelemetry.io/otel/sdk/metric".Reader
interface is updated to accept themetricdata.ResourceMetrics
value the collection will be made into.
This change is made to enable memory reuse by SDK users. (#3732) - The
WithUnit
option ingo.opentelemetry.io/otel/sdk/metric/instrument
is updated to accept astring
for the unit value. (#3776)
Fixed
- Ensure
go.opentelemetry.io/otel
does not use generics. (#3723, #3725) - Multi-reader
MeterProvider
s now export metrics for all readers, instead of just the first reader. (#3720, #3724) - Remove use of deprecated
"math/rand".Seed
ingo.opentelemetry.io/otel/example/prometheus
. (#3733) - Do not silently drop unknown schema data with
Parse
ingo.opentelemetry.io/otel/schema/v1.1
. (#3743) - Data race issue in OTLP exporter retry mechanism. (#3755, #3756)
- Wrapping empty errors when exporting in
go.opentelemetry.io/otel/sdk/metric
. (#3698, #3772) - Incorrect "all" and "resource" definition for schema files in
go.opentelemetry.io/otel/schema/v1.1
. (#3777)
Deprecated
- The
go.opentelemetry.io/otel/metric/unit
package is deprecated.
Use the equivalent unit string instead. (#3776)- Use
"1"
instead ofunit.Dimensionless
- Use
"By"
instead ofunit.Bytes
- Use
"ms"
instead ofunit.Milliseconds
- Use
Release v1.13.0/v0.36.0
1.13.0/0.36.0 2023-02-07
Added
- Attribute
KeyValue
creations functions togo.opentelemetry.io/otel/semconv/v1.17.0
for all non-enum semantic conventions.
These functions ensure semantic convention type correctness. (#3675)
Fixed
- Removed the
http.target
attribute from being added byServerRequest
in the following packages. (#3687)go.opentelemetry.io/otel/semconv/v1.13.0/httpconv
go.opentelemetry.io/otel/semconv/v1.14.0/httpconv
go.opentelemetry.io/otel/semconv/v1.15.0/httpconv
go.opentelemetry.io/otel/semconv/v1.16.0/httpconv
go.opentelemetry.io/otel/semconv/v1.17.0/httpconv
Removed
- The deprecated
go.opentelemetry.io/otel/metric/instrument/asyncfloat64
package is removed. (#3631) - The deprecated
go.opentelemetry.io/otel/metric/instrument/asyncint64
package is removed. (#3631) - The deprecated
go.opentelemetry.io/otel/metric/instrument/syncfloat64
package is removed. (#3631) - The deprecated
go.opentelemetry.io/otel/metric/instrument/syncint64
package is removed. (#3631)
Release v1.12.0/v0.35.0
Added
- The
WithInt64Callback
option togo.opentelemetry.io/otel/metric/instrument
. This options is used to configureint64
Observer callbacks during their creation. (#3507) - The
WithFloat64Callback
option togo.opentelemetry.io/otel/metric/instrument
. This options is used to configurefloat64
Observer callbacks during their creation. (#3507) - The
Producer
interface andReader.RegisterProducer(Producer)
togo.opentelemetry.io/otel/sdk/metric
. These additions are used to enable external metric Producers. (#3524) - The
Callback
function type togo.opentelemetry.io/otel/metric
. This new named function type is registered with aMeter
. (#3564) - The
go.opentelemetry.io/otel/semconv/v1.13.0
package. The package contains semantic conventions from thev1.13.0
version of the OpenTelemetry specification. (#3499)- The
EndUserAttributesFromHTTPRequest
function ingo.opentelemetry.io/otel/semconv/v1.12.0
is merged intoClientRequest
andServerRequest
ingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv
. - The
HTTPAttributesFromHTTPStatusCode
function ingo.opentelemetry.io/otel/semconv/v1.12.0
is merged intoClientResponse
ingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv
. - The
HTTPClientAttributesFromHTTPRequest
function ingo.opentelemetry.io/otel/semconv/v1.12.0
is replaced byClientRequest
ingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv
. - The
HTTPServerAttributesFromHTTPRequest
function ingo.opentelemetry.io/otel/semconv/v1.12.0
is replaced byServerRequest
ingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv
. - The
HTTPServerMetricAttributesFromHTTPRequest
function ingo.opentelemetry.io/otel/semconv/v1.12.0
is replaced byServerRequest
ingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv
. - The
NetAttributesFromHTTPRequest
function ingo.opentelemetry.io/otel/semconv/v1.12.0
is split intoTransport
ingo.opentelemetry.io/otel/semconv/v1.13.0/netconv
andClientRequest
orServerRequest
ingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv
. - The
SpanStatusFromHTTPStatusCode
function ingo.opentelemetry.io/otel/semconv/v1.12.0
is replaced byClientStatus
ingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv
. - The
SpanStatusFromHTTPStatusCodeAndSpanKind
function ingo.opentelemetry.io/otel/semconv/v1.12.0
is split intoClientStatus
andServerStatus
ingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv
. - The
Client
function is included ingo.opentelemetry.io/otel/semconv/v1.13.0/netconv
to generate attributes for anet.Conn
. - The
Server
function is included ingo.opentelemetry.io/otel/semconv/v1.13.0/netconv
to generate attributes for anet.Listener
.
- The
- The
go.opentelemetry.io/otel/semconv/v1.14.0
package. The package contains semantic conventions from thev1.14.0
version of the OpenTelemetry specification. (#3566) - The
go.opentelemetry.io/otel/semconv/v1.15.0
package. The package contains semantic conventions from thev1.15.0
version of the OpenTelemetry specification. (#3578) - The
go.opentelemetry.io/otel/semconv/v1.16.0
package. The package contains semantic conventions from thev1.16.0
version of the OpenTelemetry specification. (#3579) - Metric instruments to
go.opentelemetry.io/otel/metric/instrument
. These instruments are use as replacements of the depreactedgo.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64}
packages.(#3575, #3586)Float64ObservableCounter
replaces theasyncfloat64.Counter
Float64ObservableUpDownCounter
replaces theasyncfloat64.UpDownCounter
Float64ObservableGauge
replaces theasyncfloat64.Gauge
Int64ObservableCounter
replaces theasyncint64.Counter
Int64ObservableUpDownCounter
replaces theasyncint64.UpDownCounter
Int64ObservableGauge
replaces theasyncint64.Gauge
Float64Counter
replaces thesyncfloat64.Counter
Float64UpDownCounter
replaces thesyncfloat64.UpDownCounter
Float64Histogram
replaces thesyncfloat64.Histogram
Int64Counter
replaces thesyncint64.Counter
Int64UpDownCounter
replaces thesyncint64.UpDownCounter
Int64Histogram
replaces thesyncint64.Histogram
NewTracerProvider
togo.opentelemetry.io/otel/bridge/opentracing
. This is used to createWrapperTracer
instances from aTracerProvider
. (#3116)- The
Extrema
type togo.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) - The
go.opentelemetry.io/otel/semconv/v1.17.0
package. The package contains semantic conventions from thev1.17.0
version of the OpenTelemetry specification. (#3599)
Changed
- Jaeger and Zipkin exporter use
github.com/go-logr/logr
as the logging interface, and add theWithLogr
option. (#3497, #3500) - Instrument configuration in
go.opentelemetry.io/otel/metric/instrument
is split into specific options and confguration based on the instrument type. (#3507)- Use the added
Int64Option
type to configure instruments fromgo.opentelemetry.io/otel/metric/instrument/syncint64
. - Use the added
Float64Option
type to configure instruments fromgo.opentelemetry.io/otel/metric/instrument/syncfloat64
. - Use the added
Int64ObserverOption
type to configure instruments fromgo.opentelemetry.io/otel/metric/instrument/asyncint64
. - Use the added
Float64ObserverOption
type to configure instruments fromgo.opentelemetry.io/otel/metric/instrument/asyncfloat64
.
- Use the added
- Return a
Registration
from theRegisterCallback
method of aMeter
in thego.opentelemetry.io/otel/metric
package. ThisRegistration
can be used to unregister callbacks. (#3522) - Global error handler uses an atomic value instead of a mutex. (#3543)
- Add
NewMetricProducer
togo.opentelemetry.io/otel/bridge/opencensus
, which can be used to pass OpenCensus metrics to an OpenTelemetry Reader. (#3541) - Global logger uses an atomic value instead of a mutex. (#3545)
- The
Shutdown
method of the"go.opentelemetry.io/otel/sdk/trace".TracerProvider
releases all computational resources when called the first time. (#3551) - The
Sampler
returned fromTraceIDRatioBased
go.opentelemetry.io/otel/sdk/trace
now uses the rightmost bits for sampling decisions. This fixes random sampling when using ID generators likexray.IDGenerator
and increasing parity with other language implementations. (#3557) - Errors from
go.opentelemetry.io/otel/exporters/otlp/otlptrace
exporters are wrapped in erros identifying their signal name. Existing users of the exporters attempting to identify specific errors will need to useerrors.Unwrap()
to get the underlying error. (#3516) - Exporters from
go.opentelemetry.io/otel/exporters/otlp
will print the final retryable error message when attempts to retry time out. (#3514) - The instrument kind names in
go.opentelemetry.io/otel/sdk/metric
are updated to match the API. (#3562)InstrumentKindSyncCounter
is renamed toInstrumentKindCounter
InstrumentKindSyncUpDownCounter
is renamed toInstrumentKindUpDownCounter
InstrumentKindSyncHistogram
is renamed toInstrumentKindHistogram
InstrumentKindAsyncCounter
is renamed toInstrumentKindObservableCounter
InstrumentKindAsyncUpDownCounter
is renamed toInstrumentKindObservableUpDownCounter
InstrumentKindAsyncGauge
is renamed toInstrumentKindObservableGauge
- The
RegisterCallback
method of theMeter
ingo.opentelemetry.io/otel/metric
changed.- The named
Callback
replaces the inline function parameter. (#3564) Callback
is required to return an error. (#3576)Callback
accepts the addedObserver
parameter added. This new parameter is used byCallback
implementations to observe values for asynchronous instruments instead of calling theObserve
method of the instrument directly. (#3584)- The slice of
instrument.Asynchronous
is now passed as a variadic argument. (#3587)
- The named
- The exporter from
go.opentelemetry.io/otel/exporters/zipkin
is updated to use thev1.16.0
version of semantic conventions. This means it no longer uses the removednet.peer.ip
orhttp.host
attributes to determine the remote endpoint. Instead it uses thenet.sock.peer
attributes. (#3581) - The
Min
andMax
fields of theHistogramDataPoint
ingo.opentelemetry.io/otel/sdk/metric/metricdata
are now defined with the addedExtrema
type instead of a*float64
. (#3487)
Fixed
- Asynchronous instruments that use sum aggregators and attribute filters correctly add values from equivalent attribute sets that have been filtered. (#3439, #3549)
- The
RegisterCallback
method of theMeter
fromgo.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)
Deprecated
- The
NewMetricExporter
ingo.opentelemetry.io/otel/bridge/opencensus
is deprecated. UseNewMetricProducer
instead. (#3541) - The
go.opentelemetry.io/otel/metric/instrument/asyncfloat64
package is deprecated. Use the instruments fromgo.opentelemetry.io/otel/metric/instrument
instead. (#3575) - The
go.opentelemetry.io/otel/metric/instrument/asyncint64
package is deprecated. Use the instruments fromgo.opentelemetry.io/otel/metric/instrument
instead. (#3575) - The
go.opentelemetry.io/otel/metric/instrument/syncfloat64
package is deprecated. Use the instruments fromgo.opentelemetry.io/otel/metric/instrument
instead. (#3575) - The
go.opentelemetry.io/otel/metric/instrument/syncint64
package is deprecated. Use the instruments fromgo.opentelemetry.io/otel/metric/instrument
instead. (#3575) - The
NewWrappedTracerProvider
in `go.opentelemetry.io/otel/bridge/opentr...