-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Release v1.39.0 #7676
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release v1.39.0 #7676
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7676 +/- ##
=======================================
- Coverage 85.9% 85.9% -0.1%
=======================================
Files 298 298
Lines 21741 21741
=======================================
- Hits 18684 18680 -4
- Misses 2645 2649 +4
Partials 412 412
🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR releases version 1.39.0 of the OpenTelemetry Go SDK along with corresponding experimental module versions (0.61.0 for metrics, 0.15.0 for logs, and 0.0.14 for schema). The release includes significant performance improvements, new experimental observability features, API enhancements, and bug fixes across the codebase.
Key Changes
- Version bumps across all modules from v1.38.0 to v1.39.0 for stable modules, and corresponding bumps for experimental modules
- Simplified version reference paths in versions.yaml from full paths to module-relative paths (e.g.,
./internal/version.go) - Updated CHANGELOG.md with comprehensive release notes for v1.39.0, including additions, changes, fixes, and removals
Reviewed changes
Copilot reviewed 38 out of 38 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| versions.yaml | Updated version numbers for all module-sets (stable-v1, experimental-metrics, experimental-logs, experimental-schema) and simplified version-refs paths to use module-relative paths |
| version.go | Bumped main version string from "1.38.0" to "1.39.0" |
| trace/internal/telemetry/test/go.mod | Updated trace module dependency to v1.39.0 |
| trace/go.mod | Updated otel module dependency to v1.39.0 |
| sdk/version.go | Bumped SDK version string from "1.38.0" to "1.39.0" |
| sdk/metric/version.go | Bumped metric SDK version string from "1.38.0" to "1.39.0" |
| sdk/metric/go.mod | Updated all otel module dependencies to v1.39.0 |
| sdk/log/logtest/go.mod | Updated all otel module dependencies to v1.39.0 |
| sdk/log/go.mod | Updated all otel module dependencies to v1.39.0 |
| sdk/go.mod | Updated all otel module dependencies to v1.39.0 |
| metric/go.mod | Updated all otel module dependencies to v1.39.0 |
| log/logtest/go.mod | Updated all otel module dependencies to v1.39.0 |
| log/go.mod | Updated all otel module dependencies to v1.39.0 |
| go.mod | Updated metric and trace module dependencies to v1.39.0 |
| exporters/zipkin/go.mod | Updated all otel module dependencies to v1.39.0 |
| exporters/stdout/stdouttrace/internal/version.go | Updated version constant to "1.39.0" |
| exporters/stdout/stdouttrace/go.mod | Updated all otel module dependencies to v1.39.0 |
| exporters/stdout/stdoutmetric/go.mod | Updated all otel module dependencies to v1.39.0 |
| exporters/stdout/stdoutlog/go.mod | Updated all otel module dependencies to v1.39.0 |
| exporters/prometheus/internal/version.go | Updated version constant to "0.61.0" |
| exporters/prometheus/go.mod | Updated all otel module dependencies to v1.39.0 |
| exporters/otlp/otlptrace/version.go | Bumped version string from "1.38.0" to "1.39.0" |
| exporters/otlp/otlptrace/otlptracehttp/internal/version.go | Updated version constant to "1.39.0" |
| exporters/otlp/otlptrace/otlptracehttp/go.mod | Updated all otel module dependencies to v1.39.0 |
| exporters/otlp/otlptrace/otlptracegrpc/internal/version.go | Updated version constant to "1.39.0" |
| exporters/otlp/otlptrace/otlptracegrpc/go.mod | Updated all otel module dependencies to v1.39.0 |
| exporters/otlp/otlptrace/go.mod | Updated all otel module dependencies to v1.39.0 |
| exporters/otlp/otlpmetric/otlpmetrichttp/version.go | Bumped version string from "1.38.0" to "1.39.0" |
| exporters/otlp/otlpmetric/otlpmetrichttp/go.mod | Updated all otel module dependencies to v1.39.0 |
| exporters/otlp/otlpmetric/otlpmetricgrpc/version.go | Bumped version string from "1.38.0" to "1.39.0" |
| exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod | Updated all otel module dependencies to v1.39.0 |
| exporters/otlp/otlplog/otlploghttp/go.mod | Updated all otel module dependencies to v1.39.0 |
| exporters/otlp/otlplog/otlploggrpc/go.mod | Updated all otel module dependencies to v1.39.0 |
| bridge/opentracing/go.mod | Updated all otel module dependencies to v1.39.0 |
| bridge/opencensus/version.go | Bumped version string from "1.38.0" to "1.39.0" |
| bridge/opencensus/test/go.mod | Updated all otel module dependencies to v1.39.0 |
| bridge/opencensus/go.mod | Updated all otel module dependencies to v1.39.0 |
| CHANGELOG.md | Added v1.39.0 release section with comprehensive notes covering additions, changes, fixes, and removals; reorganized previous unreleased content into the release section |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
pellared
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some new changelog entries have been added.
Overview
Added
go.opentelemetry.io/otel/sdk/metricusing hashing for map keys. (Use Set hash in Distinct (2nd attempt) #7175)WithInstrumentationAttributeSetoption togo.opentelemetry.io/otel/log,go.opentelemetry.io/otel/metric, andgo.opentelemetry.io/otel/tracepackages. This provides a concurrent-safe and performant alternative toWithInstrumentationAttributesby accepting a pre-constructedattribute.Set. (trace,metric,log: add WithInstrumentationAttributeSet option #7287)go.opentelemetry.io/otel/exporters/prometheus. Check thego.opentelemetry.io/otel/exporters/prometheus/internal/xpackage documentation for more information. (feat(prometheus): Add observability for prometheus exporter #7345)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc. (feat: logs SDK observability - otlploggrpc exporter metrics #7353)DeltaTemporalitySelector,CumulativeTemporalitySelector,LowMemoryTemporalitySelectortogo.opentelemetry.io/otel/sdk/metric. (Add temporality selector functions #7434)go.opentelemetry.io/otel/sdk/log. (Instrument theSimpleLogProcessorfrom sdk/log #7548)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (Instrument theotlptracegrpcexporter #7459)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (Instrument theotlptracehttpexporter #7486)go.opentelemetry.io/otel/sdk/trace. (feat: sdk/trace: span processed metric for simple span processor #7374)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (Instrument theotlploghttpexporter #7512)go.opentelemetry.io/otel/sdk/metric. (Instrument manual reader from sdk/metric #7524)go.opentelemetry.io/otel/sdk/metric. (feat: instrument periodic reader from sdk/metric #7571)OTEL_EXPORTER_OTLP_LOGS_INSECUREandOTEL_EXPORTER_OTLP_INSECUREenvironmental variables ingo.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (otlploghttp: support OTEL_EXPORTER_OTLP_LOGS_INSECURE and OTEL_EXPORTER_OTLP_INSECURE env vars #7608)Enabledmethod to theProcessorinterface ingo.opentelemetry.io/otel/sdk/log. AllProcessorimplementations now include anEnabledmethod. (sdk/log: move Enabled method from FilterProcessor to Processor #7639)go.opentelemetry.io/otel/semconv/v1.38.0package. The package contains semantic conventions from thev1.38.0version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade fromgo.opentelemetry.io/otel/semconv/v1.37.0.(Generate semconv/v1.38.0 #7648)Changed
Distinctingo.opentelemetry.io/otel/attributeis no longer guaranteed to uniquely identify an attribute set. Collisions betweenDistinctvalues for different Sets are possible with extremely high cardinality (billions of series per instrument), but are highly unlikely. (Use Set hash in Distinct (2nd attempt) #7175)WithInstrumentationAttributesingo.opentelemetry.io/otel/tracesynchronously de-duplicates the passed attributes instead of delegating it to the returnedTracerOption. (trace,metric,log: change WithInstrumentationAttributes to not de-depuplicate the passed attributes in a closure #7266)WithInstrumentationAttributesingo.opentelemetry.io/otel/metersynchronously de-duplicates the passed attributes instead of delegating it to the returnedMeterOption. (trace,metric,log: change WithInstrumentationAttributes to not de-depuplicate the passed attributes in a closure #7266)WithInstrumentationAttributesingo.opentelemetry.io/otel/logsynchronously de-duplicates the passed attributes instead of delegating it to the returnedLoggerOption. (trace,metric,log: change WithInstrumentationAttributes to not de-depuplicate the passed attributes in a closure #7266)OTEL_GO_X_SELF_OBSERVABILITYenvironment variable toOTEL_GO_X_OBSERVABILITYingo.opentelemetry.io/otel/sdk/trace,go.opentelemetry.io/otel/sdk/log, andgo.opentelemetry.io/otel/exporters/stdout/stdouttrace. (Rename Self-Observability as just Observability #7302)Recordingo.opentelemetry.io/otel/sdk/metricwhen min and max are disabled usingNoMinMax. (Don't track min and max when disabled #7306)prometheus.NewInvalidMetricingo.opentelemetry.io/otel/exporters/prometheus.NewInvalidMetric, and Prometheus scrapes fail with HTTP 500 by default. To preserve the prior behavior (scrapes succeed while errors are logged), configure your Prometheus HTTP handler with:promhttp.HandlerOpts{ ErrorHandling: promhttp.ContinueOnError }. (feat: Improve error handling in prometheus exporter #7363)go.opentelemetry.io/otel/attributefor better performance. (Consider using xxHash instead of fnv64-1a #7371)TranslationStrategyingo.opentelemetry.io/exporters/prometheusis changed fromotlptranslator.NoUTF8EscapingWithSuffixestootlptranslator.UnderscoreEscapingWithSuffixes. (Prometheus exporter: change default translation strategy #7421)go.opentelemetry.io/otel/sdk/metric. (Use sync.Map and atomics to improve sum performance #7427)Span.Flagsfield ingo.opentelemetry.io/exporters/otlp/otlptrace/otlptracehttpandgo.opentelemetry.io/exporters/otlp/otlptrace/otlptracegrpc. (OTLP trace exporter include W3C trace flags (bits 0–7) in Span.Flags #7438)ErrorTypefunction ingo.opentelemetry.io/otel/semconv/v1.37.0now handles custom error types.If an error implements an
ErrorType() stringmethod, the return value of that method will be used as the error type. (Support custom error type semantics #7442)Fixed
WithInstrumentationAttributesoptions ingo.opentelemetry.io/otel/trace,go.opentelemetry.io/otel/metric, andgo.opentelemetry.io/otel/logto properly merge attributes when passed multiple times instead of replacing them. Attributes with duplicate keys will use the last value passed. (trace,metric,log: WithInstrumentationAttributes options to merge attributes #7300)attribute.Setwhen using theEqualmethod is not affected by the user overriding the empty set pointed to byattribute.EmptySetingo.opentelemetry.io/otel/attribute. (Do not use the user-defined empty set when comparing sets. #7357)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc. (Return partial OTLP export errors to the caller #7372)go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (Return partial OTLP export errors to the caller #7372)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc. (Return partial OTLP export errors to the caller #7372)go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (Return partial OTLP export errors to the caller #7372)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (Return partial OTLP export errors to the caller #7372)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (Return partial OTLP export errors to the caller #7372)AddAttributes,SetAttributes,SetBodyonRecordingo.opentelemetry.io/otel/sdk/logto not mutate input. (sdk/log: Fix AddAttributes, SetAttributes, SetBody on Record to not mutate input #7403)RecordSetmethods ingo.opentelemetry.io/otel/semconv/v1.37.0. (Fix package documentation name and return err insemconv/v1.37.0#7655)RecordSetmethods ingo.opentelemetry.io/otel/semconv/v1.36.0. (Fix package documentation name and return error insemconv/v1.36.0#7656)Removed
FilterProcessorinterface ingo.opentelemetry.io/otel/sdk/log. TheEnabledmethod has been added to theProcessorinterface instead. AllProcessorimplementations must now implement theEnabledmethod. Custom processors that do not filter records can implementEnabledto returntrue. (sdk/log: move Enabled method from FilterProcessor to Processor #7639)