Releases: grafana/beyla
v2.1.0
What's Changed
Breaking changes 🔨
Bug fixes 🐛
- Fix Network pipeline in Alloy by @mariomac in #1674
- Fix process metrics dashboard by @mariomac in #1672
- Fix OTEL HTTP exclusion detection by @mariomac in #1688
Other changes/additions
- Simplify process FindAndInstrument synchronization by @mariomac in #1579
- support app.kubernetes.io/version label by default by @mariomac in #1580
- Update Helm Chart version and appVersion by @mariomac in #1582
- Make go context propagation error message more explicit by @rafaelroquetto in #1581
- Verify Cilium only if TC is going to be enabled by @grcevski in #1584
- Update helm chart to beyla 2.0.1 by @mariomac in #1586
- Fix go http2 internal support by @grcevski in #1589
- Update helm chart to Beyla 2.0.2 by @rafaelroquetto in #1591
- Tweak capabilities detection by @rafaelroquetto in #1588
- Fix context propagation Go TLS bug by @grcevski in #1596
- Fix support for missing .text section by @grcevski in #1597
- Src and Dst zone attributes for Kubernetes by @mariomac in #1593
- Speedup network integration tests by @mariomac in #1595
- Update
make docs
procedure by @github-actions in #1592 - Fix clang-tidy check workflow by @rafaelroquetto in #1601
- Add beyla_network_inter_zone_bytes metric by @mariomac in #1600
- Add documenation on Beyla's performance by @marctc in #1573
- Document new beyla_network_inter_zone_bytes metric by @mariomac in #1602
- Create beyla-mixin subdir by @marctc in #1604
- Automatic update of offsets.json by @github-actions in #1607
- Correct default value in docs for enforce_sys_caps by @marevers in #1609
- Update
make docs
procedure by @github-actions in #1613 - Remove distributed traces limitation by @grafsean in #1614
- Introduce documentation about required capabilities by @rafaelroquetto in #1587
- Add dev docs on how to add TCP based tracers by @marctc in #1618
- Fix Prometheus connection issue in one K8s integration test by @mariomac in #1617
- Allow users to skip Kernel check for bpf_loop functionality by @markrogers95 in #1612
- Better support for context propagation with thread pools by @grcevski in #1605
- Switch the order of env configurations in helm charts by @Komey in #1621
- Docs: copy edits for cardinality measurement guide by @grafsean in #1622
- Bump chart version for 2.0.3 by @grcevski in #1620
- Try to fix Flaky K8s test by @mariomac in #1625
- Add span skip attribute for span metrics generation by @grcevski in #1626
- Fix issue with nested SSL requests by @grcevski in #1627
- Add an option to debug protocol issues by @grcevski in #1629
- Automatic update of offsets.json by @github-actions in #1630
- Add runbooks for Beyla by @marctc in #1615
- Introduce workflow for building eBPF binaries by @rafaelroquetto in #1634
- Change integration tests workflow to only run after the ebpf bin builder workflow has completed by @rafaelroquetto in #1638
- Improve SQL detection by @grcevski in #1635
- Revert usage of workflow_run by @rafaelroquetto in #1641
- Bump golang.org/x/net from 0.24.0 to 0.33.0 in /test/integration/components/gokafka by @dependabot in #1636
- Bump golang.org/x/net from 0.24.0 to 0.33.0 in /configs/offsets/sarama by @dependabot in #1637
- Automatic update of offsets.json by @github-actions in #1644
- Enable ProtocolDebug for ExternalLogger by @marctc in #1631
- Use the Header Host field when possible for generic tracer by @grcevski in #1640
- FIx http2 memory leak by @grcevski in #1643
- Build ebpf objects on CI by @rafaelroquetto in #1639
- Remove stray debug message by @rafaelroquetto in #1648
- Remove codecov from VM tests by @rafaelroquetto in #1647
- Revert building binaries on CI by @rafaelroquetto in #1654
- Bump golang.org/x/net from 0.27.0 to 0.33.0 in /test/integration/components/go_grpc_server_mux by @dependabot in #1656
- Add support for exemplars in metrics (OTEL) by @grcevski in #1655
- Exemplars tests by @grcevski in #1659
- Update
make docs
procedure by @github-actions in #1661 - More logs for process discovery by @mariomac in #1658
- Add AKS/EKS instructions by @rafaelroquetto in #1649
- Detect if running on host network before enabling context propagation by @grcevski in #1660
- Add Support for Additional Volume Mounts and Volumes in Helm DaemonSet Template by @filippobuletto in #1662
- Run protocol detector always on sock msg by @grcevski in #1664
- Fix v2 module by @marctc in #1663
- Move filter package to pkg to be public by @marctc in #1673
- Fix memory leak with pids filter by @grcevski in #1675
- Update
make docs
procedure by @github-actions in #1676 - Append unified to cgroup filepath in v2 case only if exists by @markrogers95 in #1623
- fix: update BUILDINFO_PKG to v2 in Makefile by @icylord in #1682
- Fix gRPC connection reuse issue by @grcevski in #1686
- Fix marshaling bug by @grcevski in #1690
- Automatic update of offsets.json by @github-actions in #1694
- Traces host info metric by @grcevski in #1689
- Revert accidental vendor file change by @grcevski in #1700
- Set Resource to internal trace instrumentation by @marctc in #1699
- Set Headers when using gRPC by @marctc in #1702
- Documenting inter-zone traffic by @mariomac in #1696
- Fix example deployment by @mariomac in #1705
- Generate eBPF files as part of the build process by @rafaelroquetto in #1666
- Add ability to auto-instrument with the OTel Java SDK by @grcevski in #1704
- Add support for generating non-bpf files by @rafaelroquetto in #1710
- Update
make docs
procedure by @github-actions in #1712 - Automatic update of offsets.json by @github-actions in #1711
- Automatic update of offsets.json by @github-actions in #1715
- Only download java agent when out of date by @rafaelroquetto in #1714
- Disable package extender probes on error by @rafaelroquetto in #1719
- Automatic update of offsets.json by @github-actions in #1720
- Add tool to check undocumented fields by @marctc in #1722
- Add tool to check unmapped fields in Alloy by @marctc in #1723
- Fix name generation for BPF metrics by @marctc in #1552
- Fix typos in multiple files by @co63oc in #1737
- Use Sets for traces_target_info metric by @marctc in #1735
- Remove relref shortcodes by @robbymilo in #1729
- Print printable characters in cfg.ProtocolDebug by @mariomac in...
v2.0.7
What's Changed
Other changes/additions
This release features a backport of work done on the trace context propagation front to move the writing of traceparent headers from the TC level to the sock_msg level, ensuring trace context propagation does not disrupt applications such as istio.
- Extend packet at the sock msg level (#1740) by @rafaelroquetto in #1752
Full Changelog: v2.0.6...v2.0.7
v2.0.6
What's Changed
Bug fixes 🐛
- Allow defining extra resource labels in prometheus by @github-actions in #1744
Due to internal limitations of the Prometheus API client, Beyla needs to know beforehand which attributes are exposed
for each metric. This would cause that some attributes that are discovered at runtime, during instrumentation, won't
be visible by default. For example, attributes defined on each application via Kubernetes annotations, or in the
target application's OTEL_RESOURCE_ATTRIBUTES
environment variable.
For example, an application defining the OTEL_RESOURCE_ATTRIBUTES=deployment.environment=production
as environment
variable, the target_info{deployment.environment="production"}
attribute would be visible by default if the metrics
are exported via OpenTelemetry but not if they are exported via Prometheus.
To make deployment_environment
visible in Prometheus, you need to add it to the prometheus > extra_resource_attributes
YAML property or BEYLA_PROMETHEUS_EXTRA_RESOURCE_ATTRIBUTES
environment variable.
- Fix OTEL HTTP exclusion detection by @github-actions in #1691
Other changes/additions
- Fix: update BUILDINFO_PKG to v2 in Makefile (#1682) by @marctc in #1682 #1685
- Fix example deployment by @github-actions in #1708
- [v2.0.x] Remove relref shortcodes by @robbymilo in #1730
Full Changelog: v2.0.5...v2.0.6
v2.0.5
v2.0.4
v1.9.9
v2.0.3
v2.0.2
What's Changed
Other changes/additions
- Fixed a bug affecting trace context propagation at library level for go services involving HTTP2 by @grcevski in #1590
Full Changelog: v2.0.1...v2.0.2
v2.0.1
What's Changed
Other changes/additions
Fixes an error that caused Beyla to not properly start on users with Cilium.
by @rafaelroquetto in #1585
Full Changelog: v2.0.0...v2.0.1
Beyla v2.0.0 is here!
What's Changed
Breaking changes 🔨
Align Beyla setting Service Name/Namespace/Instance according to the OpenTelemetry collector and operator specs
Service Name and Namespace of applications can be set from different metadata, in the following order of priority:
- Resource attributes set via
OTEL_RESOURCE_ATTRIBUTES
andOTEL_SERVICE_NAME
environment variables - Resource attributes set via Pod annotations prefixed with
resource.opentelemetry.io/
. - Resource attributes set via the
app.kubernetes.io/name
andapp.kubernetes.io/part-of
Pod labels, for service
name and namespace, respectively (see documentation to learn how to override these values) - Resource attributes calculated from the owner's metadata (e.g.
k8s.deployment.name
) or pod's metadata (e.g.k8s.pod.name
)
Service Instance ID in Kubernetes is now set as: <namespace>.<pod name>.<container name>
.
Defaulting OpenTelemetry metrics push interval to 60 seconds
In Beyla 1.9, OpenTelemetry were pushed every 5 seconds as default, which might involve higher telemetry costs.
Beyla 2.0 increases this value to 60 seconds. Check the Beyla documentation to check how to override such value.
Exclude system services (self-instrumentation) by default
In auto-instrumentation, Beyla excludes by default the Alloy, OTEL Collector and Beyla pods. You can override
this value using the default_exclude_services
configuration file option. Check documentation for information
about overriding the values.
Contribution from @marevers in #1536
Removed support for deprecated and hidden configuration options
BEYLA_PRINT_TRACES
were deprecated and undocumented since Beyla 1.7. UseBEYLA_TRACE_PRINTER
configuration option instead.BEYLA_METRICS_REPORT_TARGET
andBEYLA_METRICS_REPORT_PEER
were deprecated and undocumented since Beyla 1.5.
Use the Attributes selection configuration to include theurl.path
and
client.address
metrics attributes.
Update OpenTelemetry semantic convention for OTEL v1.30.0
Following updates in OpenTelemetry semantic conventions, he db.system
metric attribute has been renamed to db.system.name
.
New features 🆕
Extended support for traces' context propagation
We added extra eBPF probes at the network layers 4 and 7, which allow writing traceparent headers for a wide range of
application languages.
It is currently disabled by default. To enable it, set the environment variable:
BEYLA_BPF_ENABLE_CONTEXT_PROPAGATION=true
The technical details are here: #1396
Add support for FastCGI protocol
Beyla 2.0 adds support for tracking the FastCGI protocol which is very popular with modern PHP applications.
Unix sockets support
Beyla 2.0 dds support for running TCP and HTTP connections over unix sockets. These are different than the regular TCP sockets because they run streams across mapped files on disk.
Ensure Cilium compatibility
Beyla 1.9 network metrics were incompatible with Cilium, due to conflicts in the Traffic Control resource sharing.
Beyla 2.0 uses BPF link support via TCX to
coexist with Cilium.
By @rafaelroquetto in #1535
Bug fixes 🐛
- Stop Beyla if either NetO11y or AppO11y component fails by @mariomac in #1519
- Fix node name resolution in kubernetes by @mariomac in #1529
- Fix direct packet access by @rafaelroquetto in #1575
Other changes/additions
- Export internal metrics using OTEL metrics by @marctc in #1425
- Helm: remove init container/volume as they are no longer required by @marevers in #1273
- Stop flooding WARNING logs with 'couldn't delete flow entry' by @mariomac in #1408
- Helm chart 1.5.0 by @mariomac in #1398
- Add container name label by @marctc in #1394
- Don't read Go maps anymore by @grcevski in #1413
- Add support for decoding ENDBR32/64 instructions by @rafaelroquetto in #1416
- Fix informers on stale object deletion by @mariomac in #1420
- Add alerts for internal metrics by @marctc in #1412
- fix flaky unit tests by @mariomac in #1421
- Fix SQL detection by @grcevski in #1427
- Improving eBPF generator Docker image by @mariomac in #1428
- Correct documentation of routes default behavior by @mariomac in #1431
- Automatic update of offsets.json by @github-actions in #1429
- Decrease level of "couldn't delete flow" message by @mariomac in #1434
- Fix eBPF Instruction Set broken url by @lucianocarvalho in #1432
- Add support for attaching uprobes and uretprobes to offsets by @rafaelroquetto in #1419
- Fix bpf_printk only accept three parameter by @tomatopunk in #1438
- Fix missing check for ignored metrics for Prometheus export by @grcevski in #1441
- Bump golang.org/x/crypto from 0.22.0 to 0.31.0 in /test/integration/components/gokafka by @dependabot in #1446
- Bump golang.org/x/crypto from 0.29.0 to 0.31.0 by @dependabot in #1449
- Fix missing service info by @grcevski in #1444
- heuristic: make wildcard character configurable by @marevers in #1418
- Kafka server spans shouldn't be producers and consumers by @grcevski in #1452
- Print more information on failing flaky tests by @mariomac in #1451
- Automatic update of offsets.json by @github-actions in #1453
- allow restricting Kube metadata to local node only by @mariomac in #1440
- Refactor http2_grpc to leverage tail calls by @rafaelroquetto in #1447
- Bump golang.org/x/crypto from 0.22.0 to 0.31.0 in /configs/offsets/sarama by @dependabot in #1455
- Integration tests: increase TSDB retention time of prometheus by @mariomac in #1458
- Increase timeout for ARM tests by @rafaelroquetto in #1463
- Isolate BPF_TRACEPARENT macro by @rafaelroquetto in #1457
- Ensure TC programs play nice with 3rdparty programs by @rafaelroquetto in #1462
- Fix missing http2 connection info by @rafaelroquetto in #1464
- Light refactoring of the TC attachment code by @rafaelroquetto in #1466
- Automatic update of offsets.json by @github-actions in #1470
- Treat go binaries without offsets as generic by @rafaelroquetto in #1476
- Update
make docs
procedure by @github-actions in #1480 - Update
make docs
procedure by @github-actions in #1483 - Automatic update of offsets.json by @github-actions in #1482
- Fixed: Service name must be less than 15 chars by @xogoodnow in #1479
- Upgrade to OTel v0.116.0 by @ptodev in #1484
- Add marevers to team members by @grcevski in #1493
- Fix typo in EBPFTracer by @rafaelroquetto in #1494
- Fix CVE-2024-45338 by @grcevski in #1491
- Automatic update of offsets.json by @github-actions in #1495
- Update CODEOWNERS by @marctc in #1496
- Automatic update of offsets.json by @github-actions in #1501
- Update Vale workflow by @jdbaldry in #1497
- Lint all documentation sources by @jdbaldry in #1504
- Add TCX support by @rafaelroquetto in #1478
- Fix library discovery bug by @grcevski in #1498
- Remove network metrics experimental by @grafsean in #1510
- TCManager: split code to InterfaceManager by @rafaelroquetto in #1509
- Vendor parts of the metrics SDK by @grcevski in #1511
- Update helm to version 1.9.6 by @grcevski in #1516
- Update helm chart docs by @mariomac in #1518
- Dump metrics and traces on file after integration tests...