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 contribution in #4226
- @hexdigest made their first contribution in #3899
- @gkze made their first contribution in #4402
- @jaredjenkins made their first contribution in #4409
- @utezduyar made their first contribution in #4456
Full Changelog: v1.16.0...v1.17.0