github open-telemetry/opentelemetry-go v1.38.0
Release v1.38.0/v0.60.0/v0.14.0/v0.0.13

7 days ago

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 the go.opentelmetry.io/otel/semconv/v1.34.0 package. (#6962)
  • Add WithAllowKeyDuplication in go.opentelemetry.io/otel/sdk/log which can be used to disable deduplication for log records. (#6968)
  • Add WithCardinalityLimit option to configure the cardinality limit in go.opentelemetry.io/otel/sdk/metric. (#6996, #7065, #7081, #7164, #7165, #7179)
  • Add Clone method to Record in go.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 the go.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 the v1.36.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.34.0.(#7032, #7041)
  • Add support for configuring Prometheus name translation using WithTranslationStrategy option in go.opentelemetry.io/otel/exporters/prometheus. The current default translation strategy when UTF-8 mode is enabled is NoUTF8EscapingWithSuffixes, but a future release will change the default strategy to UnderscoreEscapingWithSuffixes for compliance with the specification. (#7111)
  • Add experimental self-observability log metrics in go.opentelemetry.io/otel/sdk/log. Check the go.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 the go.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 the v1.37.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.36.0.(#7254)

Changed

  • Optimize TraceIDFromHex and SpanIDFromHex in go.opentelemetry.io/otel/sdk/trace. (#6791)
  • Change AssertEqual in go.opentelemetry.io/otel/log/logtest to accept TestingT in order to support benchmarks and fuzz tests. (#6908)
  • Change DefaultExemplarReservoirProviderSelector in go.opentelemetry.io/otel/sdk/metric to use runtime.GOMAXPROCS(0) instead of runtime.NumCPU() for the FixedSizeReservoirProvider default size. (#7094)

Fixed

  • SetBody method of Record in go.opentelemetry.io/otel/sdk/log now deduplicates key-value collections (log.Value of log.KindMap from go.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 and WithoutCounterSuffixes options, preferring WithTranslationStrategy instead. (#7111)
  • Deprecate support for OTEL_GO_X_CARDINALITY_LIMIT environment variable in go.opentelemetry.io/otel/sdk/metric. Use WithCardinalityLimit 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 in stdouttrace by @MrAlias in #7198
  • Flatten stdouttrace Exporter.initSelfObservability into Exporter.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 into TracerProvider.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 of defer in stdouttrace by @MrAlias in #7204
  • Use t.Cleanup instead of defer in sdk/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 into logger.newLoggerr and use t.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 with system.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 and RecordSet 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

Full Changelog: exporters/prometheus/v0.59.1...v1.38.0

Don't miss a new opentelemetry-go release

NewReleases is sending notifications on new releases.