Releases: grafana/beyla
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...
v1.9.8
v1.9.7
What's Changed
Bug fixes 🐛
In Beyla 1.6, we introduced a regression that kept Beyla running if one of their subcomponents failed, causing that the lack of instrumentation might remain unnoticed.
Full Changelog: v1.9.6...v1.9.7
v1.9.6
v1.9.5
What's Changed
Other changes/additions
- [1.9] Fix CVE-2024-45338 by @grcevski in #1492
Full Changelog: v1.9.4...v1.9.5