Overview
This release is the last to support Go 1.23. The next release will require at least Go 1.24.
Added
- Add native histogram exemplar support in
go.opentelemetry.io/otel/exporters/prometheus
. (#6772) - Add template attribute functions to the
go.opentelmetry.io/otel/semconv/v1.34.0
package. (#6939)ContainerLabel
DBOperationParameter
DBSystemParameter
HTTPRequestHeader
HTTPResponseHeader
K8SCronJobAnnotation
K8SCronJobLabel
K8SDaemonSetAnnotation
K8SDaemonSetLabel
K8SDeploymentAnnotation
K8SDeploymentLabel
K8SJobAnnotation
K8SJobLabel
K8SNamespaceAnnotation
K8SNamespaceLabel
K8SNodeAnnotation
K8SNodeLabel
K8SPodAnnotation
K8SPodLabel
K8SReplicaSetAnnotation
K8SReplicaSetLabel
K8SStatefulSetAnnotation
K8SStatefulSetLabel
ProcessEnvironmentVariable
RPCConnectRPCRequestMetadata
RPCConnectRPCResponseMetadata
RPCGRPCRequestMetadata
RPCGRPCResponseMetadata
- Add
ErrorType
attribute helper function to thego.opentelmetry.io/otel/semconv/v1.34.0
package. (#6962) - Add
WithAllowKeyDuplication
ingo.opentelemetry.io/otel/sdk/log
which can be used to disable deduplication for log records. (#6968) - Add
WithCardinalityLimit
option to configure the cardinality limit ingo.opentelemetry.io/otel/sdk/metric
. (#6996, #7065, #7081, #7164, #7165, #7179) - Add
Clone
method toRecord
ingo.opentelemetry.io/otel/log
that returns a copy of the record with no shared state. (#7001) - Add experimental self-observability span and batch span processor metrics in
go.opentelemetry.io/otel/sdk/trace
. Check thego.opentelemetry.io/otel/sdk/trace/internal/x
package documentation for more information. (#7027, #6393, #7209) - The
go.opentelemetry.io/otel/semconv/v1.36.0
package. The package contains semantic conventions from thev1.36.0
version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade fromgo.opentelemetry.io/otel/semconv/v1.34.0.
(#7032, #7041) - Add support for configuring Prometheus name translation using
WithTranslationStrategy
option ingo.opentelemetry.io/otel/exporters/prometheus
. The current default translation strategy when UTF-8 mode is enabled isNoUTF8EscapingWithSuffixes
, but a future release will change the default strategy toUnderscoreEscapingWithSuffixes
for compliance with the specification. (#7111) - Add experimental self-observability log metrics in
go.opentelemetry.io/otel/sdk/log
. Check thego.opentelemetry.io/otel/sdk/log/internal/x
package documentation for more information. (#7121) - Add experimental self-observability trace exporter metrics in
go.opentelemetry.io/otel/exporters/stdout/stdouttrace
. Check thego.opentelemetry.io/otel/exporters/stdout/stdouttrace/internal/x
package documentation for more information. (#7133) - Support testing of [Go 1.25]. (#7187)
- The
go.opentelemetry.io/otel/semconv/v1.37.0
package. The package contains semantic conventions from thev1.37.0
version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade fromgo.opentelemetry.io/otel/semconv/v1.36.0.
(#7254)
Changed
- Optimize
TraceIDFromHex
andSpanIDFromHex
ingo.opentelemetry.io/otel/sdk/trace
. (#6791) - Change
AssertEqual
ingo.opentelemetry.io/otel/log/logtest
to acceptTestingT
in order to support benchmarks and fuzz tests. (#6908) - Change
DefaultExemplarReservoirProviderSelector
ingo.opentelemetry.io/otel/sdk/metric
to useruntime.GOMAXPROCS(0)
instead ofruntime.NumCPU()
for theFixedSizeReservoirProvider
default size. (#7094)
Fixed
SetBody
method ofRecord
ingo.opentelemetry.io/otel/sdk/log
now deduplicates key-value collections (log.Value
oflog.KindMap
fromgo.opentelemetry.io/otel/log
). (#7002)- Fix
go.opentelemetry.io/otel/exporters/prometheus
to not append a suffix if it's already present in metric name. (#7088) - Fix the
go.opentelemetry.io/otel/exporters/stdout/stdouttrace
self-observability component type and name. (#7195) - Fix partial export count metric in
go.opentelemetry.io/otel/exporters/stdout/stdouttrace
. (#7199)
Deprecated
- Deprecate
WithoutUnits
andWithoutCounterSuffixes
options, preferringWithTranslationStrategy
instead. (#7111) - Deprecate support for
OTEL_GO_X_CARDINALITY_LIMIT
environment variable ingo.opentelemetry.io/otel/sdk/metric
. UseWithCardinalityLimit
option instead. (#7166)
What's Changed
- chore(deps): update golang.org/x/telemetry digest to 96f361d by @renovate[bot] in #7054
- fix(deps): update googleapis to a45f3df by @renovate[bot] in #7058
- chore(deps): update github/codeql-action action to v3.29.3 by @renovate[bot] in #7055
- fix(deps): update module github.com/golangci/golangci-lint/v2 to v2.3.0 by @renovate[bot] in #7060
- chore(deps): update module github.com/securego/gosec/v2 to v2.22.7 by @renovate[bot] in #7059
- chore(deps): update python:3.13.5-slim-bullseye docker digest to 89aa817 by @renovate[bot] in #7061
- chore(deps): update python:3.13.5-slim-bullseye docker digest to 17c88fd by @renovate[bot] in #7062
- Fix markdown-fail-fast on push by @MrAlias in #7057
- sdk/trace: self-observability: span metrics by @pellared in #7027
- chore(deps): update module github.com/ldez/grignotin to v0.10.0 by @renovate[bot] in #7072
- fix(deps): update module google.golang.org/grpc to v1.74.2 by @renovate[bot] in #7073
- chore(deps): update python:3.13.5-slim-bullseye docker digest to ba65ee6 by @renovate[bot] in #7068
- sdk/metric: do not document default cardinality limit by @pellared in #7065
- docs: unify doc comments for functions returning bool by @pellared in #7064
- fix(deps): update module go.opentelemetry.io/collector/pdata to v1.36.1 by @renovate[bot] in #7070
- fix(deps): update github.com/prometheus/otlptranslator digest to fce6240 by @renovate[bot] in #7075
- fix(deps): update module github.com/cenkalti/backoff/v5 to v5.0.3 by @renovate[bot] in #7077
- chore(deps): update github/codeql-action action to v3.29.4 by @renovate[bot] in #7076
- Add Flc as an approver by @pellared in #7053
- chore(deps): update module go.opentelemetry.io/build-tools to v0.25.0 by @renovate[bot] in #7079
- fix(deps): update build-tools to v0.25.0 by @renovate[bot] in #7080
- chore(deps): update python:3.13.5-slim-bullseye docker digest to 846d391 by @renovate[bot] in #7078
- chore(deps): update module github.com/bombsimon/wsl/v5 to v5.1.1 by @renovate[bot] in #7082
- chore(deps): update module github.com/daixiang0/gci to v0.13.7 by @renovate[bot] in #7085
- fix(deps): update github.com/prometheus/otlptranslator digest to ab8d56d by @renovate[bot] in #7088
- fix: add mock server URL to .lycheeignore by @flc1125 in #7090
- chore(deps): update module github.com/sonatard/noctx to v0.4.0 by @renovate[bot] in #7092
- chore(deps): update golang.org/x/telemetry digest to 1581f0a by @renovate[bot] in #7096
- fix(deps): update googleapis to f173205 by @renovate[bot] in #7097
- chore(deps): update module github.com/4meepo/tagalign to v1.4.3 by @renovate[bot] in #7098
- Modernize by @ash2k in #7089
- Remove notice about internaltest which is not generated anymore by @dmathieu in #7093
- sdk/metric: use runtime.GOMAXPROCS(0) instead of runtime.NumCPU() in DefaultExemplarReservoirProviderSelector for the FixedSizeReservoirProvider default size by @lzakharov in #7094
- ci: Add use-any linter by @flc1125 in #7091
- chore: enable gocritic linter by @mmorel-35 in #7095
- chore(deps): update module github.com/sagikazarmark/locafero to v0.10.0 by @renovate[bot] in #7100
- chore(deps): update golang.org/x/telemetry digest to 28f32e4 by @renovate[bot] in #7099
- fix(deps): update module go.opentelemetry.io/collector/pdata to v1.37.0 by @renovate[bot] in #7101
- fix(deps): update build-tools to v0.26.0 by @renovate[bot] in #7105
- chore(deps): update github/codeql-action action to v3.29.5 by @renovate[bot] in #7103
- Fix names in experimental readmes by @pellared in #7106
- fix(deps): update module go.opentelemetry.io/proto/otlp to v1.7.1 by @renovate[bot] in #7108
- fix(deps): update module github.com/prometheus/client_golang to v1.23.0 by @renovate[bot] in #7109
- Add changelog entry for version bump of otlptranslator - suffixes are now deduplicated by @ArthurSens in #7086
- fix(deps): update module github.com/golangci/golangci-lint/v2 to v2.3.1 by @renovate[bot] in #7118
- chore: enable extra-rules from gofumpt by @mmorel-35 in #7114
- chore(deps): update module github.com/alecthomas/chroma/v2 to v2.20.0 by @renovate[bot] in #7125
- fix(deps): update googleapis to a7a43d2 by @renovate[bot] in #7126
- sdk/metric: Apply Cardinality Limits to Aggregations by @ysolomchenko in #7081
- chore: enable unused-parameter rule from revive by @mmorel-35 in #7122
- Add support for native histogram exemplars by @shivanthzen in #6772
- chore(deps): update golang.org/x/telemetry digest to 9469f96 by @renovate[bot] in #7134
- chore(deps): update module github.com/charmbracelet/x/ansi to v0.10.1 by @renovate[bot] in #7135
- Testing: Run sync measure benchmarks in parallel by @dashpole in #7113
- chore(deps): update actions/download-artifact action to v5 by @renovate[bot] in #7136
- Add benchmark for map access using attribute Equivalent by @dashpole in #7123
- Add security insights document to repository by @MrAlias in #7129
- sdk/log: self-observability: log created metric by @mahendrabishnoi2 in #7121
- fix(deps): update golang.org/x by @renovate[bot] in #7138
- chore(deps): update actions/cache action to v4.2.4 by @renovate[bot] in #7140
- fix(deps): update module google.golang.org/protobuf to v1.36.7 by @renovate[bot] in #7141
- chore(deps): update lycheeverse/lychee-action action to v2.5.0 by @renovate[bot] in #7143
- chore(deps): update github/codeql-action action to v3.29.6 by @renovate[bot] in #7144
- chore(deps): update golang.org/x/telemetry digest to 01f7bf4 by @renovate[bot] in #7146
- chore(deps): update golang.org/x by @renovate[bot] in #7147
- chore: enable ptrToRefParam from go-critic by @mmorel-35 in #7131
- chore(deps): update python docker tag to v3.13.6 by @renovate[bot] in #7148
- chore(deps): update golang.org/x by @renovate[bot] in #7149
- chore(deps): update python:3.13.6-slim-bullseye docker digest to e98b521 by @renovate[bot] in #7151
- chore(deps): update github/codeql-action action to v3.29.7 by @renovate[bot] in #7152
- chore(deps): update github/codeql-action action to v3.29.8 by @renovate[bot] in #7156
- fix(deps): update golang.org/x by @renovate[bot] in #7153
- fix(deps): update golang.org/x/exp digest to a408d31 by @renovate[bot] in #7158
- fix(deps): update module github.com/prometheus/otlptranslator to v0.0.1 by @renovate[bot] in #7159
- chore: enable unused-receiver rule from revive by @mmorel-35 in #7130
- feat(stdouttrace): add experimental self-observability metrics by @flc1125 in #7133
- chore(deps): update actions/checkout action to v5 by @renovate[bot] in #7168
- sdk/log: Add EventNameProcessor example by @pellared in #7128
- chore(deps): update otel/weaver docker tag to v0.17.0 by @renovate[bot] in #7163
- fix(deps): update googleapis to 6b04f9b by @renovate[bot] in #7169
- chore(deps): update module go.opentelemetry.io/build-tools to v0.26.1 by @renovate[bot] in #7170
- sdk/trace: self-observability: batch span processor metrics by @dashpole in #6393
- fix(deps): update build-tools to v0.26.1 by @renovate[bot] in #7171
- Add subscript to issue templates by @opentelemetrybot in #7116
- fix(deps): update golang.org/x to 51f8813 by @renovate[bot] in #7173
- Upgrade semconv gen to weaver v0.17.0 by @MrAlias in #7172
- sdk/metric: Add Unit Tests for Cardinality Limits by @ysolomchenko in #7164
- sdk/metric: Deprecate the
sdk/metric/x
Feature Supporting Cardinality Limits by @ysolomchenko in #7166 - sdk/metric: package example includes Cardinality Limits by @ysolomchenko in #7165
- fix(deps): update module go.opentelemetry.io/collector/pdata to v1.38.0 by @renovate[bot] in #7177
- chore(deps): update module go-simpler.org/musttag to v0.14.0 by @renovate[bot] in #7178
- fix(deps): update googleapis to 5f3141c by @renovate[bot] in #7176
- chore(deps): update github/codeql-action action to v3.29.9 by @renovate[bot] in #7181
- Support Go 1.25 by @MrAlias in #7187
- ci(benchmarks): switch runner to Oracle bare metal by @tdn21 in #7183
- chore(deps): update module github.com/charmbracelet/colorprofile to v0.3.2 by @renovate[bot] in #7190
- chore(deps): update module go.opentelemetry.io/build-tools to v0.26.2 by @renovate[bot] in #7191
- fix(deps): update build-tools to v0.26.2 by @renovate[bot] in #7192
- chore(deps): update otel/weaver docker tag to v0.17.1 by @renovate[bot] in #7207
- Use the context passed to
ExportSpans
for measurements instdouttrace
by @MrAlias in #7198 - Flatten
stdouttrace
Exporter.initSelfObservability
intoExporter.New
by @MrAlias in #7197 - Fix component name for stdouttrace by @MrAlias in #7195
- Restructure component ID counting in stdouttrace by @MrAlias in #7196
- chore(deps): update module go.augendre.info/fatcontext to v0.8.1 by @renovate[bot] in #7213
- sdk/trace: do not defer if not self-observing by @MrAlias in #7206
- Flatten
tracer.initSelfObservability
intoTracerProvider.Tracer
by @MrAlias in #7205 - Fix minor grammatical error in
sdk/trace/internal/x
README.md by @MrAlias in #7211 - Fix minor grammatical error in stdouttrace by @MrAlias in #7202
- Fix callbackAttributesOpt variable name by @MrAlias in #7210
- Fix minor grammatical error in
Distinct
docs by @MrAlias in #7203 - Use
t.Cleanup
instead ofdefer
instdouttrace
by @MrAlias in #7204 - Use
t.Cleanup
instead ofdefer
insdk/trace
by @MrAlias in #7208 - chore(deps): update github/codeql-action action to v3.29.10 by @renovate[bot] in #7214
- Handle partial export counts in
stdouttrace
observability by @MrAlias in #7199 - Pool attribute slices in
stdouttrace
self-observability by @MrAlias in #7201 - fix(deps): update googleapis to 3122310 by @renovate[bot] in #7216
- chore(deps): update module github.com/kevinburke/ssh_config to v1.4.0 by @renovate[bot] in #7219
- fix(deps): update module google.golang.org/grpc to v1.75.0 by @renovate[bot] in #7220
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.27.2 by @renovate[bot] in #7224
- fix(deps): update module google.golang.org/protobuf to v1.36.8 by @renovate[bot] in #7225
- chore(deps): update codecov/codecov-action action to v5.5.0 by @renovate[bot] in #7227
- chore(deps): update github/codeql-action action to v3.29.11 by @renovate[bot] in #7229
- sdk/trace: More trace id tests by @bboreham in #7155
- chore(deps): update github.com/golangci/golines digest to d4663ad by @renovate[bot] in #7238
- chore(deps): update lycheeverse/lychee-action action to v2.6.0 by @renovate[bot] in #7239
- feat(stdouttrace): generate counter implementation via templates by @yumosx in #7231
- refactor(logger): Flatten
logger.initSelfObservability
intologger.newLoggerr
and uset.Cleanup
instead of defer by @yumosx in #7228 - fix(deps): update module github.com/stretchr/testify to v1.11.0 by @renovate[bot] in #7242
- chore(deps): update lycheeverse/lychee-action action to v2.6.1 by @renovate[bot] in #7243
- Wrap
Float64ObservableCounter
withsystem.CPUTime
by @MrAlias in #7235 - Fix CPUModeSystem variable name by @MrAlias in #7233
- Return early in semconv generated packages if no attributes passed by @MrAlias in #7222
- [chore] Upgrade semconv pkg use to v1.36.0 by @MrAlias in #7237
- fix: correct package import paths by @flc1125 in #7244
- sdk/metric: Add Documentation for Cardinality Limits by @ysolomchenko in #7179
- sdk/log: Deduplicate key-value collections in Record.SetBody by @Mojachieee in #7002
- fix(deps): update google.golang.org/genproto/googleapis/rpc digest to c5933d9 by @renovate[bot] in #7246
- chore(deps): update google.golang.org/genproto/googleapis/api digest to c5933d9 by @renovate[bot] in #7250
- Add copyright header to generated semconv packages by @MrAlias in #7248
- Clarify overflow attribute description in doc.go to indicate it is boolean true by @cijothomas in #7247
- trace: optimize id parsing and string functions by @jschaf in #6791
- Propagate context to self-observability measurements in
sdk/trace
by @MrAlias in #7209 - Amortize measurement option allocations by @MrAlias in #7215
- Add
AddSet
andRecordSet
methods to semconv generated packages by @MrAlias in #7223 - chore(deps): update module github.com/ldez/tagliatelle to v0.7.2 by @renovate[bot] in #7253
- chore(deps): update module go.opentelemetry.io/build-tools to v0.27.0 by @renovate[bot] in #7257
- chore(deps): update module github.com/gordonklaus/ineffassign to v0.2.0 by @renovate[bot] in #7259
- Generate the
semconv/v1.37.0
packages by @MrAlias in #7254 - prometheus: Add support for setting Translation Strategy config option by @ywwg in #7111
- fix(deps): update module github.com/stretchr/testify to v1.11.1 by @renovate[bot] in #7261
- Upgrade semconv dependencies to v1.37.0 by @MrAlias in #7260
- Add benchmark for set equality by @dashpole in #7262
- chore(deps): update module github.com/mgechev/revive to v1.12.0 by @renovate[bot] in #7269
- Refactor BSP observability setup by @MrAlias in #7264
- Statically define trace observability attributes by @MrAlias in #7263
- Add tests for attribute JSON marshalling by @dashpole in #7268
- Release v1.38.0 by @MrAlias in #7271
New Contributors
- @lzakharov made their first contribution in #7094
- @ArthurSens made their first contribution in #7086
- @shivanthzen made their first contribution in #6772
- @mahendrabishnoi2 made their first contribution in #7121
- @tdn21 made their first contribution in #7183
- @cijothomas made their first contribution in #7247
- @ywwg made their first contribution in #7111
Full Changelog: exporters/prometheus/v0.59.1...v1.38.0