Overview
v0.12.1 supersedes the unpublished v0.12.0 release. The v0.12.0 tag was created, but release validation failed because generation left the tagged commit dirty, so no GitHub Release was published. This patch release restores a clean release build and carries forward the expedited reliability fixes and other changes intended for v0.12.0.
Users should install v0.12.1; no v0.12.0 release artifacts are available.
Release correction
- Fixed an unguarded BPF program introduced by a merge race on
main, restoring clean generation and release validation. (#3101)
Critical reliability fixes
- Prevented uprobe programs from being preempted on private-stack kernels, avoiding a kernel panic observed under moderate TLS load on Ubuntu 26.04. (#3059, #3056)
- Disabled context propagation when the
FIONREADfixup cannot be attached, preventing OBI from risking disruption to instrumented applications. (#3076) - Attached Go probes to every usable canonical and vendored symbol copy, fixing missing instrumentation in binaries that execute multiple embedded copies of a library. (#3020, #3065)
- Stopped completed server requests from incorrectly parenting later client calls, restored connection attribution for wrapped Go TLS clients, and preserved enriched log lines from short-lived processes. (#3001, #3037, #3055)
- Ensured Prometheus ports and paths registered after the first server start are served, and sanitized invalid UTF-8 metric attributes so one malformed value cannot drop an entire OTLP export batch. (#3072, #3003)
Instrumentation and configuration
- Added Java service-name discovery consistent with OpenTelemetry Java, preferring the Spring Boot application name, JAR manifest title, and JAR basename before falling back to
java. (#3089) - Added opt-in capture of manual spans created through
@opentelemetry/apiwhen a Node.js application has no SDK registered. (#2661) - Added Node.js event-loop utilization and delay runtime metrics through the existing inspector-injected agent. (#2939)
- Added experimental OTEP 4719 process-context enrichment for resource attributes and metadata shared through the
OTEL_CTXmapping. (#1914) - Added protocol- and signal-scoped application filters and enabled their end-to-end use in Configuration v2 while preserving Configuration v1's global filtering behavior. (#2996, #3066)
Metrics
- Added
db.server.operation.durationfor server-side database spans, including Redis, Memcached, and SQL. (#3091) - Centralized internal metric declarations and corrected four OTLP metric names that incorrectly encoded Prometheus counter suffixes. Prometheus names remain unchanged except for the two map-entry gauges described below. (#3026)
Behavior changes and compatibility notes
Warning
Four internal OTLP metric names changed: obi.bpf.map.entries_total to obi.bpf.map.entries, obi.bpf.map.max_entries_total to obi.bpf.map.max_entries, obi.bpf.network.packets.total to obi.bpf.network.packets, and obi.bpf.network.ignored.packets.total to obi.bpf.network.ignored.packets. With default Prometheus translation, the two map gauges also lose the _total suffix. (#3026)
- Server-side Redis and Memcached measurements now use
db.server.operation.durationinstead ofdb.client.operation.duration; update dashboards and alerts that read server-side measurements from the client metric. (#3091) - Node.js manual span capture is opt-in through
nodejs.manual_spans: trueorOTEL_EBPF_NODEJS_MANUAL_SPANS; it remains inactive when an SDK is already registered. (#2661)
What's Changed
General
- Add protocol- and signal-scoped filter runtime by @MrAlias in #2996
- gotracer: publish wrapped TLS client connections by @MrAlias in #3037
- Prefer exact Go symbols over vendor aliases by @MrAlias in #3020
- logenricher: don't lose log lines of short-lived processes by @mmat11 in #3055
- [OTEP 4719] Add processcontext enrichement by @florianl in #1914
- ci: run bpf unit tests on arm by @skl in #3080
- Fix versions.yaml by @MrAlias in #3083
- Attach Go probes to all matching symbol copies by @MrAlias in #3065
- fix: cp: stop answered server requests from parenting later client calls by @mmat11 in #3001
- ci: run verifier tests on demand by @mmat11 in #3085
- fionread: disable CP on failed fixup attachment by @mmat11 in #3076
- fix(metrics)!: derive internal metric names and drop Prometheus-isms from the OTLP ones by @NimrodAvni78 in #3026
- fix(metrics): sanitize invalid UTF-8 in OTLP attribute values by @NimrodAvni78 in #3003
- chore(examples): pin go-trace-api to a released OBI image by @NimrodAvni78 in #3092
- bpf: guard uprobe programs against preemption on private-stack kernels by @mmat11 in #3059
- Support protocol-scoped filters in Config V2 by @MrAlias in #3066
- prommgr: serve ports registered after the first StartHTTP call by @mlushpenko in #3072
- Node.js manual span capture by @NimrodAvni78 in #2661
- Update release documentation for v0.11.0 by @MrAlias in #3061
- Emit
db.server.operation.durationfor server-side DB spans by @pinoOgni in #3091 - Fix instrumentation for executables sharing an inode across filesystems by @marctc in #2848
- Release v0.12.0 by @MrAlias in #3096
- bpf: fix unguarded program after merge race on main by @mmat11 in #3101
- Discover java service names like OpenTelemetry Java by @grcevski in #3089
- Release v0.12.1 by @MrAlias in #3110
Documentation
Dependencies
- Update otel/ebpf-instrument:main Docker digest to fd7dd67 by @renovate[bot] in #3058
- Update otel/ebpf-instrument Docker tag to v0.11.0 by @renovate[bot] in #3062
- Update otel/ebpf-instrument:main Docker digest to 4b6e2f3 by @renovate[bot] in #3064
- Update otel/opentelemetry-collector-contrib Docker tag to v0.158.0 by @renovate[bot] in #3060
- Update otel/opentelemetry-collector-contrib Docker tag to v0.159.0 by @renovate[bot] in #3074
- Update otel/opentelemetry-collector-contrib Docker tag to v0.159.0 by @renovate[bot] in #3075
- Update otel/ebpf-instrument:main Docker digest to 314be3b by @renovate[bot] in #3073
- Update dependency idna to v3.19 by @renovate[bot] in #3077
- Update LVH kernel images by @renovate[bot] in #3071
- Update prom/prometheus Docker tag to v3.14.0 by @renovate[bot] in #3079
- Update otel/ebpf-instrument:main Docker digest to 31c014d by @renovate[bot] in #3086
- Update github/codeql-action action to v4.37.7 by @renovate[bot] in #3087
- Update astral-sh/setup-uv action to v10 by @renovate[bot] in #3088
- Update quay.io/prometheus/prometheus Docker tag to v3.14.0 by @renovate[bot] in #3081
New Contributors
- @mlushpenko made their first contribution in #3072
Full Changelog: v0.11.0...v0.12.1