NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #503 by repository stars
Last release 3 days ago
16 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Some releases are documented
notes for 18 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
5893 releases · first in 2019
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Global meter forwarding implementation. This enables deferred initialization for metric instruments registered before the first Meter SDK is installed
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)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Rename MaxSumCount aggregation to MinMaxSumCount and add the Min interface for this aggregation.
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)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Optimized the simplelru map for attributes to reduce the number of allocations.
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.
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)Module set experimental-traces, Version v0.1.0
Module set experimental-traces, Version v0.1.0
This release contains the first stable release of the OpenTelemetry Go Logs API and SDK. Our project stability guarantees now apply to the following modules:
go.opentelemetry.io/otel/loggo.opentelemetry.io/otel/sdk/logSee our versioning policy for more information about these stability guarantees.
String method for KeyValue type in go.opentelemetry.io/otel/attribute. (#8205)String method for Set type in go.opentelemetry.io/otel/attribute. (#8347)WithMaxExportBatchSize to go.opentelemetry.io/otel/sdk/metric to configure the maximum export batch size for PeriodicReader. (#8960)WithAttributeValueDepthLimit, DefaultAttributeValueDepthLimit, and SpanLimits.AttributeValueDepthLimit in go.opentelemetry.io/otel/sdk/trace to configure the maximum depth of span, event, link, and instrumentation scope attribute values. (#8938)WithAttributeValueDepthLimit in go.opentelemetry.io/otel/sdk/log to configure the maximum depth of log record and instrumentation scope attribute values. (#8938)WithMaxResponseSize to go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp,
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp, and
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#8941)ProbabilitySampler in go.opentelemetry.io/otel/sdk/trace/x that conforms to the OpenTelemetry specification's threshold-based sampling algorithm. (#8123)*Binder extension interfaces in go.opentelemetry.io/otel/metric/x for instruments that support binding attributes ahead of time. (#8760)Finisher synchronous metric instrument extension interface to go.opentelemetry.io/otel/metric/x. (#8906)go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest. (#8993)go.opentelemetry.io/otel/sdk/trace and go.opentelemetry.io/otel/sdk/log. (#8938)go.opentelemetry.io/otel/sdk/trace and go.opentelemetry.io/otel/sdk/log by rebuilding composite values only when truncation is needed. (#8912)traceparent using a hex lookup table in go.opentelemetry.io/otel/propagation, which rejects the specification-disallowed upper-case characters without a separate scan of the header. (#8739)TraceIDFromHex and SpanIDFromHex in go.opentelemetry.io/otel/trace to eliminate bounds checks. (#8740)go.opentelemetry.io/otel/trace, go.opentelemetry.io/otel/sdk/trace, and go.opentelemetry.io/otel/sdk/log.go.opentelemetry.io/otel/trace, go.opentelemetry.io/otel/sdk/trace, and go.opentelemetry.io/otel/sdk/log. (#9054)NewPeriodicReader where r.inst was assigned after the background goroutine was launched in go.opentelemetry.io/otel/sdk/metric. (#9028)int64 values in Sum, Histogram, and ExponentialHistogram aggregations in go.opentelemetry.io/otel/sdk/metric. (#8981)grpc.DialOption values passed via WithDialOption take precedence over conflicting internally-computed defaults in
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc,
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc, and
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#8805, #8834, #8836)OTEL_METRIC_EXPORT_INTERVAL and OTEL_METRIC_EXPORT_TIMEOUT values as invalid in go.opentelemetry.io/otel/sdk/metric. (#8800)NewFixedSizeReservoir and FixedSizeReservoirProvider when given a negative size in go.opentelemetry.io/otel/sdk/metric/exemplar; negative sizes are now clamped to zero, consistent with a size of zero. (#8832)ZeroThreshold during OTLP metric export in go.opentelemetry.io/otel/exporters/otlp/otlpmetric. (#8801)go.opentelemetry.io/otel/semconv/v1.32.0, go.opentelemetry.io/otel/semconv/v1.33.0, and go.opentelemetry.io/otel/semconv/v1.34.0 record measurements only once when no attributes are provided. (#8849)OTEL_TRACES_SAMPLER and OTEL_TRACES_SAMPLER_ARG values as unset in go.opentelemetry.io/otel/sdk/trace. (#8873)OTEL_EXPORTER_OTLP_ENDPOINT path joining in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp so trailing-slash base URLs do not produce double-slash log export paths. (#8864)RecordError calls back into the span in go.opentelemetry.io/otel/sdk/trace. (#8815)SimpleSpanProcessor.Shutdown from panicking when constructed with a nil exporter in go.opentelemetry.io/otel/sdk/trace. (#8844)go.opentelemetry.io/otel/exporters/prometheus. (#8839)go.opentelemetry.io/otel/metric/x.WithDefaultAttributes when a matching View in go.opentelemetry.io/otel/sdk/metric does not specify an attribute filter. (#8859)OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_METRICS_ENDPOINT, while preserving unix:// and unix-abstract:// targets; treat unix-abstract:// endpoints as insecure in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc and go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#8862)OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_TRACES_ENDPOINT in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#8852)Property values on demand in go.opentelemetry.io/otel/baggage and go.opentelemetry.io/otel/propagation.OTEL_GO_X_METRIC_EXPORT_BATCH_SIZE environment variable in go.opentelemetry.io/otel/sdk/metric.
Use the WithMaxExportBatchSize option instead. (#8960)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →