What's Changed
This is the first release we are making that is directly vendoring most of the code from the upstream OpenTelemetry eBPF Instrumentation repositiory, which Grafana Labs donated as a project to the OpenTelemetry community.
New major features
- MongoDB protocol support for some programming languages
- JSON RPC support for Go
- Support for adding manual spans in Go
- Improved NodeJS distributed traces support
- Survey mode for service discovery
Breaking changes 🔨
- Optimize k8s cache by @mariomac in #1939
- Add OTel span metrics exposition format by @grcevski in #1989
- Make k8s on when we are running on k8s by @grcevski in #1991
Bug fixes 🐛
- Add bound checks to fastelf by @rafaelroquetto in #1914
- Fix wrong SSL port by @rafaelroquetto in #1918
- Fix block in instrumentable discovery by @grcevski in #1917
- Fix Go gRPC context propagation support by @grcevski in #1965
Other changes/additions
- Automatic update of offsets.json by @github-actions[bot] in #1902
- Remove PID to prevent cardinality explosion by @rafaelroquetto in #1907
- Revert the stripping of the PID in the svc.Instance by @rafaelroquetto in #1910
- Support OTEL env var substitution in YAML config by @mariomac in #1909
- import godeltaprof by @korniltsev in #1916
- Introduce Required() method by @rafaelroquetto in #1906
- Add GH action to prevent edit sensitive files by @marctc in #1894
- Fix README typo by @martincostello in #1927
- Align span status to http semantic conventions by @gouthamve in #1926
- Upgrade to OTel 0.125.0 by @marctc in #1904
- docs: fix typo in open-ports by @gouthamve in #1923
- Fix Backport PR GH action and restore deleted GH action by @marctc in #1929
- Add service name template by @thoro in #1813
- GitHub Action to generate eBPF symbols on release by @marctc in #1937
- Instrumentation status logging by @marevers in #1935
- Survey info by @grcevski in #1933
- More ssl correlation fixes by @grcevski in #1941
- Automatic update of offsets.json by @github-actions[bot] in #1944
- Fix eBPF binary generation GH action by @marctc in #1940
- Generate Java SDK jar in GH action to generate binaries by @marctc in #1947
- Defaulting metrics ttl back to 5m by @mariomac in #1948
- Remove prototype L7 tracer by @rafaelroquetto in #1950
- Add zizmor file to support PR with forks by @grcevski in #1951
- Fix flaky survey mode prometheus test by @grcevski in #1952
- Docs: format remaining config tables into combined tables by @grafsean in #1945
- Introduce option to only generate ebpf files when modified by @rafaelroquetto in #1953
- Remove .gitattributes by @marctc in #1956
- Fix missing ebpf ignore tags by @rafaelroquetto in #1959
- Associate gen image version with the current branch/release by @rafaelroquetto in #1958
- Handle multiple pids in a container for target_info by @grcevski in #1960
- Fix generator image workflow by @rafaelroquetto in #1964
- docs: added a link to the workflow badge by @bravesasha in #1967
- Fix typos by @omahs in #1968
- chore: add badge and license link by @bravesasha in #1969
- Pass EBPF_VER to generator image by @rafaelroquetto in #1970
- Fix race condition in K8s informers by @mariomac in #1973
- fix Beyla cache ports in helm chart by @mariomac in #1972
- Fix permissions of helm-release GH action by @mariomac in #1975
- Prevent unnecessary K8s cache updates by @mariomac in #1977
- Fix http2 multiple connections issues by @grcevski in #1971
- Remove quotes from gen image build flow by @grcevski in #1984
- Bump golang.org/x/net from 0.36.0 to 0.38.0 in /test/oats/http by @dependabot[bot] in #1963
- Ensure request types match when correlating by @grcevski in #1983
- Move Prometheus goroutine start to work for Alloy too by @grcevski in #1982
- Fix helm-release.yml by @mariomac in #1985
- Switch some log lines to debug by @grcevski in #1987
- Standardise to service_name everywhere and provide k8s_kind label by @grcevski in #1988
- Make host metrics explicit by @grcevski in #1990
- Automatic update of offsets.json by @github-actions[bot] in #1996
- Revert "Add GH action to prevent edit sensitive files (#1894)" by @marctc in #1999
- Perf: generate otel traces by @almostinf in #1995
- Fix bad trace propagation patch by @grcevski in #2001
- Automatic update of offsets.json by @github-actions[bot] in #2002
- Move "Survey" configuration section to Globs instead of Regex by @mariomac in #1993
- Use v2 of publishing workflow that checks out HEAD of version branch on tag events by @jdbaldry in #2005
- Automatic update of offsets.json by @github-actions[bot] in #2004
- cleanup: remove redundant check by @Andreagit97 in #2006
- Track nginx async connections by @grcevski in #2009
- Removing system-wide instrumentation by @mariomac in #2010
- Improve nodejs request correlation by @rafaelroquetto in #2007
- Decoupling survey_info pipeline by @mariomac in #2016
- Allow Beyla to be reloaded as a component by @grcevski in #2017
- Remove more statics by @grcevski in #2018
- Fix generator image name in the workflow file by @rafaelroquetto in #2019
- Automatic update of offsets.json by @github-actions[bot] in #2021
- Break on context done on the new survey process watcher by @grcevski in #2020
- feat: support adding extra manifests through values by @greenled in #1998
- Vendor swarm nodes from OBI by @mariomac in #2023
- Automatic update of offsets.json by @github-actions[bot] in #2026
- Deprecating "discovery > services" and adding the new "discovery > instrument" section by @mariomac in #2012
- Fix OATS tests by @mariomac in #2028
- Fix ephemeral port info for accept4 by @grcevski in #2015
- Add extra group attributes by @almostinf in #1891
- Try to fix Beyla helm release by @mariomac in #2031
- Remove default k8s namespaces by @grcevski in #2029
- Migrating codecov secret by @mariomac in #2034
- Investigating codecov issue (from origin branch) by @mariomac in #2040
- Prevent pull requests to fail from external forks by @mariomac in #2041
- try to fix error in vm integration tests by @mariomac in #2043
- Determine grpc errors based on grpc-message presence by @grcevski in #2036
- Update default excluded services doc by @grcevski in #2032
- Sync eBPF with OBI by @grcevski in #2037
- Fix Typo in Documentation and Code Comments by @leopardracer in #2035
- Vendor bhpack from OBI by @grcevski in #2038
- Fix nodejs prints for old kernels by @grcevski in #2044
- Vendor exec, goexec, attributes, svc, services from OBI by @grcevski in #2045
- Fix Typographical Errors in Comments by @kilavvy in #2047
- Vendors many utils packages from OBI by @grcevski in #2049
- Change readme to point to OBI by @grcevski in #2051
- Vendoring BPF C code from OBI by @mariomac in #2048
- chore: bump otel to 128 by @korniltsev in #2052
- Instructions about managing the obi-src submodule by @mariomac in #2053
- Refactor the attributes code to work with upstream by @grcevski in #2050
- More obi vendoring by @grcevski in #2056
- Use obi and beyla variables interchangeably by @grcevski in #2057
- Automatic beyla.Config -> obi.Config struct conversion by @mariomac in #2058
- Fix comments for gRPC WriteStatus rename and metrics test assumption by @vtjl10 in #2055
- Vendor Rdns plugin from OBI by @grcevski in #2060
- Vendor partially some of the metrics code by @grcevski in #2061
- Vendor kubecache by @mariomac in #2062
- vendor content of
transform
pkg by @marctc in #2063 - Vendor discover pkg to use OBI by @marctc in #2067
- Vendoring most logic from internal/pipe package by @mariomac in #2064
- Vendor prometheus exporter by @mariomac in #2069
- Vendor OTEL exporters from OBI by @mariomac in #2070
- Add support for context propagation in the Helm chart by @marctc in #2072
- Update to latest OBI by @grcevski in #2073
- Testing discovery override by @mariomac in #2075
- Add prometheus-config-reloader to default exclude by @grcevski in #2078
- Bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.3.0 by @dependabot[bot] in #2080
- Update OBI + Fix docker build by @mariomac in #2076
- Change product from cloud to oss by @grafsean in #2081
- Replace beyla-ebpf-generator by obi-generator image by @mariomac in #2082
- Vendoring part of the process finder pipeline by @mariomac in #2084
- Update OBI submodule & fix breaking API changes by @mariomac in #2088
- Release 2.5 fix branch by @grcevski in #2089
New Contributors
- @martincostello made their first contribution in #1927
- @thoro made their first contribution in #1813
- @bravesasha made their first contribution in #1967
- @omahs made their first contribution in #1968
- @Andreagit97 made their first contribution in #2006
- @greenled made their first contribution in #1998
- @leopardracer made their first contribution in #2035
- @kilavvy made their first contribution in #2047
- @vtjl10 made their first contribution in #2055
New Contributors in OpenTelemetry eBPF Instrumentation
- @MrAlias made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#3
- @github-actions[bot] made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#28
- @rafaelroquetto made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#34
- @opentelemetrybot made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#39
- @renovate[bot] made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#40
- @cuichenli made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#46
- @marctc made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#68
- @otelbot[bot] made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#79
- @NimrodAvni78 made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#131
- @mmat11 made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#188
- @pellared made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#247
- @Andreagit97 made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#244
- @dongho-jung made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#252
- @titaneric made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#161
- @skl made their first contribution in open-telemetry/opentelemetry-ebpf-instrumentation#274
Full Changelog: v2.2.0...v2.5.0-pre