·
1 commit
to main
since this release
Immutable
release. Only release title and notes can be modified.
Overview
v0.13.0 is a feature release. It also fixes a group of memory-safety bugs in the socket-layer context propagation that could corrupt TLS connections of instrumented workloads or copy unrelated kernel memory into telemetry.
Context-propagation memory safety
- The HTTP header injector no longer acts on leftover buffer data from a previous request, which could write a traceparent into the middle of a TLS stream and reset the connection. (#3257)
- Message-buffer reads are bounded by the mapped data window, so a failed pull can no longer copy adjacent kernel memory into span payloads. Also fixes a masking bug that copied nothing for sends of 8 KiB or more. (#3298)
- The message buffers are invalidated whenever filling them fails, so no reader can mistake a previous message for the current one. (#3304)
Protocol and tracing fixes
- Application-supplied traceparents are preserved in Go HTTP/2, and header injection there fails safely. (#3156, #3159)
- TCP client and server roles are classified by the local port, fixing swapped roles for same-namespace clients. (#3146)
- Established idle connections are no longer reported as failed connects. (#3043)
- DNS spans follow OTel conventions, peer naming from DNS captures is fixed, and reverse DNS supports IPv6. (#3174, #2947, #3244)
- Exiting processes keep their PID valid for a grace period so their final events are not lost. (#3170)
New instrumentation and metrics
- Runtime metrics for Python, JVM, and Node.js; Go runtime probes are gated behind the
application_runtimefeature. (#3028, #3203, #3131, #3227) - Network and stats metrics for processes in isolated network namespaces outside Kubernetes. (#2861)
- New attributes:
db.response.status_code,db.namespace, andserver.porton database duration metrics;messaging.operation.nameon messaging spans. (#3271, #3193, #3097, #3136) - Aerospike server spans, Go 1.27 support, and better service naming for Python, Deno, .NET, and Node.js apps. (#3167, #3221, #3112, #3132, #3118, #3099)
- OBI publishes its telemetry schema and a generated telemetry reference;
schema_urlnow points at 0.13.0. (#3044, #3215)
Behavior changes
service.nameandservice.namespaceare no longer default metric labels; select them explicitly if you depend on them. (#3168)error.typevalues are unified across spans and metrics; the attribute name is unchanged. (#3196)- Go runtime metrics require enabling the
application_runtimefeature. (#3227) metrics.featuresis printed as feature names instead of a bitmask. (#3265)
What's Changed
General
- generictracer: stop reporting established idle connections as failed connects by @mifisignal in #3043
- Keep clang-tidy compatible with LLVM 22 by @MrAlias in #3127
- nodejs: preserve getTracer(name, version, options) through the SDK handoff by @NimrodAvni78 in #3095
- Conform to OTEL messaging semantic conventions by @NimrodAvni78 in #3136
- Add
server.portattribute todb.client.operation.durationby @pinoOgni in #3097 - fix: validate Prometheus scrape paths by @immanuwell in #3134
- Limit Java TLS buffer allocation to payload size by @MrAlias in #3126
- nodejs: extract meaningful node application names when other metadata is missing by @grcevski in #3099
- Reject split span metric format conflicts by @MrAlias in #3123
- Fix DNS capture so peer endpoints get named correctly by @mifisignal in #2947
- bpf: classify TCP client/server by the local port, not the sorted d_port by @mmat11 in #3146
- ci: migrate OSSF Scorecard to shared workflow by @opentelemetrybot in #3166
- ci: prebuild hatest-obi images to save runner time by @mmat11 in #3119
- Enable the eBPF PID filter before injecting the Java agent by @mifisignal in #2949
- fix dns spans to conform to otel conventions + test coverage by @NimrodAvni78 in #3174
- remove service.name and service.namespace from default metric labels by @NimrodAvni78 in #3168
- Support Go 1.27 in CI by @MrAlias in #3147
- nodejs: export manual span kind; honor explicit span.end(t) within bounded skew by @NimrodAvni78 in #3105
- Fail schema generation on duplicate config type names by @elliehmy in #2997
- Add Nodejs
v8js.*runtime metrics (GC duration and heap spaces) by @pinoOgni in #3131 - docs: sync devdocs with codebase Aug 2026 by @skl in #3198
- release: add draft release verification script by @mmat11 in #3133
- nodejs: fix --experimental-config-file handling for service name discovery by @grcevski in #3200
- Make Config v1 integration fixtures migratable by @MrAlias in #3149
- feat(java): report incompatible preloaded agents by @salman-frs in #3135
- emit obi.queue.capacity.ratio and declare it by @NimrodAvni78 in #3181
- Fix confmap decoding of YAML sequences into text-unmarshalable types by @elliehmy in #3189
- Add
db.namespaceondb.clientanddb.serveroperation duration metrics by @pinoOgni in #3193 - Replace disabled Kafka Fetch v12/v15 tests with a session-fetch error case by @pinoOgni in #3201
- Restore Go 1.26 images after CI regression by @MrAlias in #3206
- Publish OBI telemetry schema by @NimrodAvni78 in #3044
- declare span-size metrics and span-metric data-point attributes by @NimrodAvni78 in #3169
- Derive
ProtocolTypeconstants from the generated BPF enum by @pinoOgni in #3213 - Add Aerospike server spans by @pinoOgni in #3167
- Bind Java injection to stable process identities by @MrAlias in #3184
- Fix unit tests in Darwin by @mariomac in #3216
- ran 'go fix' to modernize code to Go 1.26 by @mariomac in #3212
- python: extract service metadata for known frameworks by @grcevski in #3112
- Fix sys admin permission requirements by @grcevski in #3220
- Make Go HTTP/2 Framer injection fail safely by @MrAlias in #3159
- Fix lints by @grcevski in #3222
- Preserve application traceparents in Go HTTP/2 by @MrAlias in #3156
- Fix lint issue in http2go test by @pinoOgni in #3223
- dotnet: Name .NET apps as the OpenTelemetry .NET SDK by @grcevski in #3118
- Add support for Python runtime metrics by @marctc in #3028
- Gate Go runtime metrics probes behind the
application_runtimefeature by @pinoOgni in #3227 - fix memory pressure by @grcevski in #3232
- deno: extract service metadata of deno apps by @grcevski in #3132
- fix: route klog output through slog by @skl in #3192
- Support Go 1.27 target instrumentation by @MrAlias in #3221
- Add JVM class, thread, and CPU runtime metrics by @marctc in #3203
- Update Rafael's org by @rafaelroquetto in #3242
- Fix flaky Python runtime metrics integration test by @marctc in #3239
- Otel compliance: Add missing otel network attributes by @NimrodAvni78 in #3194
- fix(cpython): resolve staticcheck and unused lint errors on non-amd64 by @pinoOgni in #3255
- fix(rdns): fix rdns qsection validation check by @rafaelroquetto in #3243
- pids: keep blocked PIDs valid for a grace period so their final events drain by @mmat11 in #3170
- rdns: add ipv6 support by @rafaelroquetto in #3244
- Otel compliance: improve and unify error.type across spans and metrics by @NimrodAvni78 in #3196
- Convert event type defines to an enum and derive the Go constants from it by @pinoOgni in #3218
- tpinjector: skip HTTP injection on stale msg buffers by @mmat11 in #3257
- tests: fix flaky integration test TestPythonRuntimeMetricsOTel by @mmat11 in #3267
- tests: fix flaky unit test TestAppMetricsExpiration by @mmat11 in #3266
- Print
metrics.featuresas feature names instead of a bitmask by @pinoOgni in #3265 - publish an OBI telemetry reference generated from the registry by @NimrodAvni78 in #3215
- ci: add arm64 runner to privileged unit tests by @skl in #3275
- ci: add arm to linux lint job by @skl in #3302
- ci: merge x86/arm integration tests workflows by @skl in #3287
- ci: move security scanning to shared workflow by @opentelemetrybot in #3202
- Generate Go offsets atomically by @MrAlias in #3238
- Fix out-of-bounds read in fill_msg_buffers when msg pull fails by @darkraider01 in #3298
- tpinjector: invalidate msg buffers when fill_msg_buffers bails by @mmat11 in #3304
- Dynamic Client: Support isolated netns non-k8s processes for network+stats metrics by @damemi in #2861
- Prepare obi for version v0.13.0 by @mmat11 in #3317
Fixed
- Fix Go netFD read map cleanup by @MrAlias in #3124
- Limit Kafka Produce topic fan-out by @MrAlias in #3122
- Fix log enricher buffer suppression order by @MrAlias in #3125
- Initialize process tracer logger in constructor by @MrAlias in #3148
- Add
db.response.status_codeto DB client and server operation duration metrics by @pinoOgni in #3271
Dependencies
- Update module github.com/IBM/sarama to v1.60.2 by @renovate[bot] in #3137
- Update module github.com/ohler55/ojg to v1.28.5 by @renovate[bot] in #3138
- Update go toolchain directive to v1.27.0 by @renovate[bot] in #3139
- Update module github.com/oschwald/maxminddb-golang/v2 to v2.5.0 by @renovate[bot] in #3141
- Update module github.com/redis/go-redis/v9 to v9.22.0 by @renovate[bot] in #3142
- Update dependency locust to v2.46.4 by @renovate[bot] in #3144
- Update google.golang.org packages by @renovate[bot] in #3050
- Update dependency google-api-core to v2.35.0 by @renovate[bot] in #3160
- Update dependency google-auth to v2.57.0 by @renovate[bot] in #3161
- Update integration test pinned images by @renovate[bot] in #3163
- Update LVH kernel images by @renovate[bot] in #3164
- Update otel/ebpf-instrument Docker tag to v0.12.2 by @renovate[bot] in #3165
- Update dependency bidict to v0.24.0 by @renovate[bot] in #3171
- Update quay.io/prometheus/prometheus Docker tag to v3.14.0 by @renovate[bot] in #3173
- Update otel/opentelemetry-collector-contrib Docker tag to v0.159.0 by @renovate[bot] in #3172
- Update valkey/valkey Docker tag to v9 by @renovate[bot] in #3176
- Update dependency cryptography to v50.0.1 by @renovate[bot] in #3180
- Update otel/opentelemetry-collector-contrib Docker tag to v0.159.0 by @renovate[bot] in #3182
- Update quay.io/prometheus/prometheus Docker tag to v3.14.0 by @renovate[bot] in #3183
- Update dependency googleapis-common-protos to v1.75.2 by @renovate[bot] in #3178
- Update dependency proto-plus to v1.28.4 by @renovate[bot] in #3179
- Update dependency bidict to v0.24.1 by @renovate[bot] in #3185
- Update Github Actions by @renovate[bot] in #3186
- Update Github Actions (major) by @renovate[bot] in #3187
- Update dependency click to v8.5.0 - autoclosed by @renovate[bot] in #3197
- Update Docker by @renovate[bot] in #3070
- Update dependency msgpack to v1.2.2 by @renovate[bot] in #3211
- Update Java by @renovate[bot] in #3208
- Update dependency uuid to v14.0.2 by @renovate[bot] in #3207
- Update Rust crate actix-web to v4.15.0 by @renovate[bot] in #3209
- Update dependency grpcio to v1.83.1 by @renovate[bot] in #3224
- Update dependency grpcio-health-checking to v1.83.1 by @renovate[bot] in #3225
- Update grafana/otel-lgtm Docker tag to v0.32.0 by @renovate[bot] in #3229
- Update quay.io/prometheus/prometheus Docker tag to v3.14.0 by @renovate[bot] in #3231
- Update otel/opentelemetry-collector-contrib Docker tag to v0.159.0 by @renovate[bot] in #3230
- Update dependency websocket-client to v1.9.1 by @renovate[bot] in #3245
- Update module github.com/golangci/golangci-lint/v2 to v2.13.2 by @renovate[bot] in #3252
- Update dependency python-engineio to v4.14.0 by @renovate[bot] in #3246
- Update victoriametrics/vmagent Docker tag to v1.151.0 by @renovate[bot] in #3256
- Update dependency websocket-client to v1.9.2 by @renovate[bot] in #3260
- Update dependency protobuf to v7.36.1 by @renovate[bot] in #3264
- Update library/nginx:1.31.4 Docker digest to b34848e by @renovate[bot] in #3263
- Update dependency zizmor to v1.30.0 by @renovate[bot] in #3253
- Update Docker by @renovate[bot] in #3262
- Update Github Actions by @renovate[bot] in #3273
- Update curlimages/curl Docker tag to v8.22.0 by @renovate[bot] in #3288
- Update nginx Docker tag to v1.31.5 by @renovate[bot] in #3292
- Update dependency axios to v1.20.0 by @renovate[bot] in #3293
- Update otel/opentelemetry-collector-contrib Docker tag to v0.160.0 by @renovate[bot] in #3295
- Update Java by @renovate[bot] in #3294
- Update nginx:1.31.5-alpine Docker digest to 72ba65e by @renovate[bot] in #3309
- Update OpenTelemetry Go contrib packages by @renovate[bot] in #3249
- Update grafana/otel-lgtm Docker tag to v0.32.1 by @renovate[bot] in #3315
New Contributors
- @salman-frs made their first contribution in #3135
- @darkraider01 made their first contribution in #3298
Full Changelog: v0.12.2...v0.13.0