Skip to content

Releases: open-telemetry/opentelemetry-go

Release v1.15.0/v0.38.0

28 Apr 14:53
v1.15.0
8e76ab2
Compare
Choose a tag to compare

Added

  • The go.opentelemetry.io/otel/metric/embedded package. (#3916)
  • The Version function to go.opentelemetry.io/otel/sdk to return the SDK version. (#3949)
  • Add a WithNamespace option to go.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 measurements
      • NewAddConfig used to create a new AddConfig
      • AddOption used to configure an AddConfig
    • The RecordConfig used to hold configuration for recorded measurements
      • NewRecordConfig used to create a new RecordConfig
      • RecordOption used to configure a RecordConfig
    • The ObserveConfig used to hold configuration for observed measurements
      • NewObserveConfig used to create a new ObserveConfig
      • ObserveOption used to configure an ObserveConfig
  • WithAttributeSet 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)
  • The Version function to go.opentelemetry.io/otel/exporters/otlp/otlpmetric to return the OTLP metrics client version. (#3956)
  • The Version function to go.opentelemetry.io/otel/exporters/otlp/otlptrace to return the OTLP trace client version. (#3956)

Changed

  • The Extrema in go.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 from go.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 package go.opentelemetry.io/otel/metric/noop. (#3941)
    • metric.NewNoopMeterProvider is replaced with noop.NewMeterProvider
  • Add all the methods from "go.opentelemetry.io/otel/trace".SpanContext to bridgeSpanContext by embedding otel.SpanContext in bridgeSpanContext. (#3966)
  • Wrap UploadMetrics error in go.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 Observer methods in go.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
  • Move global metric back to go.opentelemetry.io/otel/metric/global from go.opentelemetry.io/otel. (#3986)

Fixed

  • TracerProvider allows calling Tracer() 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 by NewSimpleSpanProcessor in go.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 to go.opentelemetry.io/otel/metric instead. (#4018)

Release v1.15.0-rc.2/v0.38.0-rc.2

23 Mar 14:52
v1.15.0-rc.2
7ad0ae4
Compare
Choose a tag to compare
Pre-release

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 to go.opentelemetry.io/otel/sdk/resource. (#3812)
  • The WithoutTimestamps option to go.opentelemetry.io/otel/exporters/stdout/stdoutmetric to sets all timestamps to zero. (#3828)
  • The new 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)
  • 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 using NewSet or NewSetWithFiltered in go.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 and SkipContextSetup in OpenTracing bridge. (#3833)
  • The New and Detect functions from go.opentelemetry.io/otel/sdk/resource return errors that wrap underlying errors instead of just containing the underlying error strings. (#3844)
  • Both the Histogram and HistogramDataPoint are redefined with a generic argument of [N int64 | float64] in go.opentelemetry.io/otel/sdk/metric/metricdata. (#3849)
  • The metric Export interface from go.opentelemetry.io/otel/sdk/metric accepts a *ResourceMetrics instead of ResourceMetrics. (#3853)
  • Rename Asynchronous to Observable in go.opentelemetry.io/otel/metric/instrument. (#3892)
  • Rename Int64ObserverOption to Int64ObservableOption in go.opentelemetry.io/otel/metric/instrument. (#3895)
  • Rename Float64ObserverOption to Float64ObservableOption in go.opentelemetry.io/otel/metric/instrument. (#3895)
  • The internal logging changes the verbosity level of info to V(4), the verbosity level of debug to V(8). (#3900)

Fixed

  • TracerProvider consistently doesn't allow to register a SpanProcessor after shutdown. (#3845)

Removed

  • The deprecated go.opentelemetry.io/otel/metric/global package is removed. (#3829)
  • The unneeded Synchronous interface in go.opentelemetry.io/otel/metric/instrument was removed. (#3892)
  • The Float64ObserverConfig and NewFloat64ObserverConfig in go.opentelemetry.io/otel/sdk/metric/instrument. Use the added float64 instrument configuration instead. (#3895)
  • The Int64ObserverConfig and NewInt64ObserverConfig in go.opentelemetry.io/otel/sdk/metric/instrument. Use the added int64 instrument configuration instead. (#3895)
  • The NewNoopMeter function in go.opentelemetry.io/otel/metric, use NewMeterProvider().Meter("") instead. (#3893)

Release v1.15.0-rc.1/v0.38.0-rc.1

02 Mar 15:54
v1.15.0-rc.1
34aacd9
Compare
Choose a tag to compare
Pre-release

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 in go.opentelemetry.io/otel. (#3818)
    • Use Meter for a metric.Meter from the global metric.MeterProvider.
    • Use GetMeterProivder for a global metric.MeterProvider.
    • Use SetMeterProivder to set the global metric.MeterProvider.

Changed

  • 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. Use go.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

27 Feb 22:03
v1.14.0
2e54fbb
Compare
Choose a tag to compare

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 to go.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 the v1.18.0 version of the OpenTelemetry specification. (#3719)
    • The following const renames from go.opentelemetry.io/otel/semconv/v1.17.0 are included:
      • OtelScopeNameKey -> OTelScopeNameKey
      • OtelScopeVersionKey -> OTelScopeVersionKey
      • OtelLibraryNameKey -> OTelLibraryNameKey
      • OtelLibraryVersionKey -> OTelLibraryVersionKey
      • OtelStatusCodeKey -> OTelStatusCodeKey
      • OtelStatusDescriptionKey -> OTelStatusDescriptionKey
      • OtelStatusCodeOk -> OTelStatusCodeOk
      • OtelStatusCodeError -> OTelStatusCodeError
    • The following func renames from go.opentelemetry.io/otel/semconv/v1.17.0 are included:
      • OtelScopeName -> OTelScopeName
      • OtelScopeVersion -> OTelScopeVersion
      • OtelLibraryName -> OTelLibraryName
      • OtelLibraryVersion -> OTelLibraryVersion
      • OtelStatusDescription -> OTelStatusDescription
  • A IsSampled 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)
  • The WithInstrumentationAttributes option to go.opentelemetry.io/otel/metric. (#3738)
  • The WithInstrumentationAttributes option to go.opentelemetry.io/otel/trace. (#3739)
  • The following environment variables are supported by the periodic 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.

Changed

  • Fall-back to TextMapCarrier when it's not HttpHeaders in go.opentelemetry.io/otel/bridge/opentracing. (#3679)
  • The Collect method of the "go.opentelemetry.io/otel/sdk/metric".Reader interface is updated to accept the metricdata.ResourceMetrics value the collection will be made into.
    This change is made to enable memory reuse by SDK users. (#3732)
  • The WithUnit option in go.opentelemetry.io/otel/sdk/metric/instrument is updated to accept a string for the unit value. (#3776)

Fixed

  • Ensure go.opentelemetry.io/otel does not use generics. (#3723, #3725)
  • Multi-reader MeterProviders now export metrics for all readers, instead of just the first reader. (#3720, #3724)
  • Remove use of deprecated "math/rand".Seed in go.opentelemetry.io/otel/example/prometheus. (#3733)
  • Do not silently drop unknown schema data with Parse in go.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 of unit.Dimensionless
    • Use "By" instead of unit.Bytes
    • Use "ms" instead of unit.Milliseconds

Release v1.13.0/v0.36.0

07 Feb 20:01
v1.13.0
f2fd476
Compare
Choose a tag to compare

1.13.0/0.36.0 2023-02-07

Added

  • Attribute KeyValue 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)

Fixed

  • Removed the http.target attribute from being added by ServerRequest 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

29 Jan 15:48
v1.12.0
6cb5718
Compare
Choose a tag to compare

Added

  • The WithInt64Callback option to go.opentelemetry.io/otel/metric/instrument. This options is used to configure int64 Observer callbacks during their creation. (#3507)
  • The WithFloat64Callback option to go.opentelemetry.io/otel/metric/instrument. This options is used to configure float64 Observer callbacks during their creation. (#3507)
  • The Producer interface and Reader.RegisterProducer(Producer) to go.opentelemetry.io/otel/sdk/metric. These additions are used to enable external metric Producers. (#3524)
  • The Callback function type to go.opentelemetry.io/otel/metric. This new named function type is registered with a Meter. (#3564)
  • The 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)
    • The EndUserAttributesFromHTTPRequest function in go.opentelemetry.io/otel/semconv/v1.12.0 is merged into ClientRequest and ServerRequest in go.opentelemetry.io/otel/semconv/v1.13.0/httpconv.
    • The HTTPAttributesFromHTTPStatusCode function in go.opentelemetry.io/otel/semconv/v1.12.0 is merged into ClientResponse in go.opentelemetry.io/otel/semconv/v1.13.0/httpconv.
    • The HTTPClientAttributesFromHTTPRequest function in go.opentelemetry.io/otel/semconv/v1.12.0 is replaced by ClientRequest in go.opentelemetry.io/otel/semconv/v1.13.0/httpconv.
    • The HTTPServerAttributesFromHTTPRequest function in go.opentelemetry.io/otel/semconv/v1.12.0 is replaced by ServerRequest in go.opentelemetry.io/otel/semconv/v1.13.0/httpconv.
    • The HTTPServerMetricAttributesFromHTTPRequest function in go.opentelemetry.io/otel/semconv/v1.12.0 is replaced by ServerRequest in go.opentelemetry.io/otel/semconv/v1.13.0/httpconv.
    • The NetAttributesFromHTTPRequest function in go.opentelemetry.io/otel/semconv/v1.12.0 is split into Transport in go.opentelemetry.io/otel/semconv/v1.13.0/netconv and ClientRequest or ServerRequest in go.opentelemetry.io/otel/semconv/v1.13.0/httpconv.
    • The SpanStatusFromHTTPStatusCode function in go.opentelemetry.io/otel/semconv/v1.12.0 is replaced by ClientStatus in go.opentelemetry.io/otel/semconv/v1.13.0/httpconv.
    • The SpanStatusFromHTTPStatusCodeAndSpanKind function in go.opentelemetry.io/otel/semconv/v1.12.0 is split into ClientStatus and ServerStatus in go.opentelemetry.io/otel/semconv/v1.13.0/httpconv.
    • The Client function is included in go.opentelemetry.io/otel/semconv/v1.13.0/netconv to generate attributes for a net.Conn.
    • The Server function is included in go.opentelemetry.io/otel/semconv/v1.13.0/netconv to generate attributes for a net.Listener.
  • The 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)
  • The 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)
  • The 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)
  • Metric instruments to go.opentelemetry.io/otel/metric/instrument. These instruments are use as replacements of the depreacted go.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64} packages.(#3575, #3586)
    • Float64ObservableCounter replaces the asyncfloat64.Counter
    • Float64ObservableUpDownCounter replaces the asyncfloat64.UpDownCounter
    • Float64ObservableGauge replaces the asyncfloat64.Gauge
    • Int64ObservableCounter replaces the asyncint64.Counter
    • Int64ObservableUpDownCounter replaces the asyncint64.UpDownCounter
    • Int64ObservableGauge replaces the asyncint64.Gauge
    • Float64Counter replaces the syncfloat64.Counter
    • Float64UpDownCounter replaces the syncfloat64.UpDownCounter
    • Float64Histogram replaces the syncfloat64.Histogram
    • Int64Counter replaces the syncint64.Counter
    • Int64UpDownCounter replaces the syncint64.UpDownCounter
    • Int64Histogram replaces the syncint64.Histogram
  • NewTracerProvider to go.opentelemetry.io/otel/bridge/opentracing. This is used to create WrapperTracer instances from a TracerProvider. (#3116)
  • The 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)
  • The 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)

Changed

  • Jaeger and Zipkin exporter use github.com/go-logr/logr as the logging interface, and add the WithLogr 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 from go.opentelemetry.io/otel/metric/instrument/syncint64.
    • Use the added Float64Option type to configure instruments from go.opentelemetry.io/otel/metric/instrument/syncfloat64.
    • Use the added Int64ObserverOption type to configure instruments from go.opentelemetry.io/otel/metric/instrument/asyncint64.
    • Use the added Float64ObserverOption type to configure instruments from go.opentelemetry.io/otel/metric/instrument/asyncfloat64.
  • Return a 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)
  • Global error handler uses an atomic value instead of a mutex. (#3543)
  • Add NewMetricProducer to go.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 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)
  • 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 use errors.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 to InstrumentKindCounter
    • InstrumentKindSyncUpDownCounter is renamed to InstrumentKindUpDownCounter
    • InstrumentKindSyncHistogram is renamed to InstrumentKindHistogram
    • InstrumentKindAsyncCounter is renamed to InstrumentKindObservableCounter
    • InstrumentKindAsyncUpDownCounter is renamed to InstrumentKindObservableUpDownCounter
    • InstrumentKindAsyncGauge is renamed to InstrumentKindObservableGauge
  • The RegisterCallback method of the Meter in go.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 added Observer parameter added. This new parameter is used by Callback implementations to observe values for asynchronous instruments instead of calling the Observe method of the instrument directly. (#3584)
    • The slice of instrument.Asynchronous is now passed as a variadic argument. (#3587)
  • The exporter from 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)
  • The Min and Max fields of the HistogramDataPoint in go.opentelemetry.io/otel/sdk/metric/metricdata are now defined with the added Extrema type instead of a *float64. (#3487)

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 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)

Deprecated

  • The NewMetricExporter in go.opentelemetry.io/otel/bridge/opencensus is deprecated. Use NewMetricProducer instead. (#3541)
  • The go.opentelemetry.io/otel/metric/instrument/asyncfloat64 package is deprecated. Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)
  • The go.opentelemetry.io/otel/metric/instrument/asyncint64 package is deprecated. Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)
  • The go.opentelemetry.io/otel/metric/instrument/syncfloat64 package is deprecated. Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)
  • The go.opentelemetry.io/otel/metric/instrument/syncint64 package is deprecated. Use the instruments from go.opentelemetry.io/otel/metric/instrument instead. (#3575)
  • The NewWrappedTracerProvider in `go.opentelemetry.io/otel/bridge/opentr...
Read more

Release v1.11.2/0.34.0

05 Dec 19:48
v1.11.2
bc5cf7e
Compare
Choose a tag to compare

Added

  • The WithView 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)
  • Add Instrumentation Scope and Version as info metric and label in Prometheus exporter.
    This can be disabled using the WithoutScopeInfo() option added to that package.(#3273, #3357)
  • OTLP exporters now recognize: (#3363)
    • OTEL_EXPORTER_OTLP_INSECURE
    • OTEL_EXPORTER_OTLP_TRACES_INSECURE
    • OTEL_EXPORTER_OTLP_METRICS_INSECURE
    • OTEL_EXPORTER_OTLP_CLIENT_KEY
    • OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY
    • OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY
    • OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE
    • OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE
    • OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE
  • The View type and related NewView function to create a view according to the OpenTelemetry specification are added to go.opentelemetry.io/otel/sdk/metric.
    These additions are replacements for the View type and New function from go.opentelemetry.io/otel/sdk/metric/view. (#3459)
  • The 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)
  • The Stream type is added to go.opentelemetry.io/otel/sdk/metric to define a metric data stream a view will produce. (#3459)
  • The AssertHasAttributes allows instrument authors to test that datapoints returned have appropriate attributes. (#3487)

Changed

  • The "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)
  • The Temporality(view.InstrumentKind) metricdata.Temporality and Aggregation(view.InstrumentKind) aggregation.Aggregation methods are added to the "go.opentelemetry.io/otel/sdk/metric".Exporter interface. (#3260)
  • The Temporality(view.InstrumentKind) metricdata.Temporality and Aggregation(view.InstrumentKind) aggregation.Aggregation methods are added to the "go.opentelemetry.io/otel/exporters/otlp/otlpmetric".Client interface. (#3260)
  • The WithTemporalitySelector and WithAggregationSelector ReaderOptions have been changed to ManualReaderOptions in the go.opentelemetry.io/otel/sdk/metric package. (#3260)
  • The periodic reader in the go.opentelemetry.io/otel/sdk/metric package now uses the temporality and aggregation selectors from its configured exporter instead of accepting them as options. (#3260)

Fixed

  • The go.opentelemetry.io/otel/exporters/prometheus exporter fixes duplicated _total suffixes. (#3369)
  • Remove comparable requirement for Readers. (#3387)
  • Cumulative metrics from the OpenCensus bridge (go.opentelemetry.io/otel/bridge/opencensus) are defined as monotonic sums, instead of non-monotonic. (#3389)
  • Asynchronous counters (Counter and UpDownCounter) from the metric SDK now produce delta sums when configured with delta temporality. (#3398)
  • Exported 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)
  • Reenabled Attribute Filters in the Metric SDK. (#3396)
  • Asynchronous callbacks are only called if they are registered with at least one instrument that does not use drop aggragation. (#3408)
  • Do not report empty partial-success responses in the go.opentelemetry.io/otel/exporters/otlp exporters. (#3438, #3432)
  • Handle partial success responses in go.opentelemetry.io/otel/exporters/otlp/otlpmetric exporters. (#3162, #3440)
  • Prevent duplicate Prometheus description, unit, and type. (#3469)
  • Prevents panic when using incorrect attribute.Value.As[Type]Slice(). (#3489)

Removed

  • The go.opentelemetry.io/otel/exporters/otlp/otlpmetric.Client interface is removed. (#3486)
  • The go.opentelemetry.io/otel/exporters/otlp/otlpmetric.New function is removed. Use the otlpmetric[http|grpc].New directly. (#3486)

Deprecated

  • The 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)

Release v1.11.1/v0.33.0

19 Oct 20:02
v1.11.1
2fe8861
Compare
Choose a tag to compare

Added

  • The Prometheus exporter in go.opentelemetry.io/otel/exporters/prometheus registers with a Prometheus registerer on creation. By default, it will register with the default Prometheus default registerer. A non-default registerer can be used by passing the WithRegisterer option. (#3239)
  • Added the WithAggregationSelector option to the go.opentelemetry.io/otel/exporters/prometheus package to change the default AggregationSelector used. (#3341)
  • The Prometheus exporter in go.opentelemetry.io/otel/exporters/prometheus converts the Resource associated with metric exports into a target_info metric. (#3285)

Changed

  • The "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)

Fixed

  • The URL-encoded values from the OTEL_RESOURCE_ATTRIBUTES environment variable are decoded. (#2963)
  • The baggage.NewMember function decodes the value parameter instead of directly using it. This fixes the implementation to be compliant with the W3C specification. (#3226)
  • Slice attributes of the attribute package are now comparable based on their value, not instance. (#3108 #3252)
  • The Shutdown and ForceFlush methods of the "go.opentelemetry.io/otel/sdk/trace".TraceProvider no longer return an error when no processor is registered. (#3268)
  • The Prometheus exporter in go.opentelemetry.io/otel/exporters/prometheus cumulatively sums histogram buckets. (#3281)
  • The sum of each histogram data point is now uniquely exported by the go.opentelemetry.io/otel/exporters/otlpmetric exporters. (#3284, #3293)
  • Recorded values for asynchronous counters (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)
  • The Prometheus exporter in 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)
  • The go.opentelemetry.io/otel/exporters/prometheus exporter now correctly adds _total suffixes to counter metrics. (#3360)
  • The 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)

Release v1.11.0/v0.32.3

12 Oct 17:28
v1.11.0
ff18552
Compare
Choose a tag to compare

Retracts the v0.32.2 version of go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetricgrpc and go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetrichttp given they include unresolvable dependencies.

Added

  • Add default User-Agent header to OTLP exporter requests (go.opentelemetry.io/otel/exporters/otlptrace/otlptracegrpc and go.opentelemetry.io/otel/exporters/otlptrace/otlptracehttp). (#3261)

Changed

  • span.SetStatus has been updated such that calls that lower the status are now no-ops. (#3214)
  • Upgrade golang.org/x/sys/unix from v0.0.0-20210423185535-09eb48e85fd7 to v0.0.0-20220919091848-fb04ddd9f9c8.
    This addresses GO-2022-0493. (#3235)

Release v0.32.2 -- Metric SDK (Alpha)

11 Oct 22:01
sdk/metric/v0.32.2
29511a0
Compare
Choose a tag to compare

Added

  • Added an example of using metric views to customize instruments. (#3177)
  • Add default User-Agent header to OTLP exporter requests (go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetricgrpc and go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetrichttp). (#3261)

Changed

  • Flush pending measurements with the PeriodicReader in the go.opentelemetry.io/otel/sdk/metric when ForceFlush or Shutdown are called. (#3220)
  • Update histogram default bounds to match the requirements of the latest specification. (#3222)

Fixed

  • Use default view if instrument does not match any registered view of a reader. (#3224, #3237)
  • Return the same instrument every time a user makes the exact same instrument creation call. (#3229, #3251)
  • Return the existing instrument when a view transforms a creation call to match an existing instrument. (#3240, #3251)
  • Log a warning when a conflicting instrument (e.g. description, unit, data-type) is created instead of returning an error. (#3251)
  • The OpenCensus bridge no longer sends empty batches of metrics. (#3263)