Skip to content

Releases: grafana/beyla

v1.9.0

25 Nov 09:24
fb6dbef
Compare
Choose a tag to compare

What's Changed

Beyla 1.9.0 is released with major internal changes, in preparation to what's coming for the future Beyla 2.0 release.

Breaking changes 🔨

Removed override_instance_id configuration option

This option was aimed uniquely for debugging purposes.

More info: #1125

Fix instance and job in Prometheus exporter

Renaming target_instance Prometheus attribute to instance. Also, the job attribute has been added to Prometheus.

Now, all the metrics are consistent, no matter they are exported via OTEL or Prometheus.

More info: #1130

Set OTEL service name and namespace from application environment variables

If the application has set the OTEL_SERVICE_NAME or OTEL_SERVICE_NAMESPACE variables in its environment,
Beyla will use them to set the reported service name and namespace.

If the variables are not there, Beyla will use the previously existing mechanism to set service name and namespace.

Bug fixes 🐞

Fix cgroup ID parsing in newest Docker versions

More info: #1287

Fix OS capability checking

There were few bugs in the OS capability checking which are being fixed with this PR:

  1. If SYS_ADMIN is present, it effectively means all capabilities.
  2. If we have kernel older than 5.8, SYS_ADMIN is a must, the others weren't split off yet.
  3. If we have NET_ADMIN we also have NET_RAW, so we can relax that check.

More info: #1131

What's new

Introduce option for high volume request tracking

Beyla tracks the full request completion time, this typically means we look to see if the application is responding
with more data after the first HTTP response. One example would be a large file download, where the majority of the time
is actually serializing the data on the wire. When the client uses keep-alive, we don't necessarily see the connection
close event, but we tell by new pushed requests that we should terminate an earlier request.

This approach doesn't work well in when there's high volume of requests, e.g. beyond our current map sizing. The delayed
requests will likely be booted out of the map before we have a chance to complete them.

The BEYLA_BPF_HIGH_REQUEST_VOLUME configuration option forces Beyla to complete the request as soon as the response
is finished. It will produce less accurate accounting for large file downloads, but it will avoid no data for high
volume of requests.

More info: #1192

Use scratch as the base to build the Beyla docker images

It provides smaller images, as well as removing the risk for any potential vulnerability in the base image.

More info: #1367

Kubernetes: no need for a privileged init container anymore

The way Beyla internally mounts and shares some eBPF data structures has changed. This removes the necessity of
giving Beyla elevated privileges, or creating a privileged init container to mount the BPF file system.

More info: #1251

Experimental: Kubernetes API cache service

⚠️ This is an experimental service aimed only for developer preview. Expect breaking changes. Make sure that the
deployed image of the cache service (grafana/beyla-k8s-cache:1.9.x) matches the
version of the Beyla image

To decorate the traces and metrics with Kubernetes metadata, each Beyla instance establishes a connection to the
Kubernetes cache service. On big clusters (500+ nodes, 500+ Beyla instances), this action could greatly overload the
Kubernetes API because listening for cluster-global resources is really expensive.

Experimentally, you can configure Beyla to move the Kube API subscription logic to an external service (with fewer
instances), and connect Beyla to the Kubernetes API cache service instead of the Kubernetes API directly.

The easiest way to enable this service is via our latest Helm chart, in values.yml:

k8sCache:
  replicas: <typically 1 cache replica for 50 Beyla instances>

Other changes/additions

Read more

v1.8.8

18 Nov 16:08
9791155
Compare
Choose a tag to compare

What's Changed

Other changes/additions

Full Changelog: v1.8.7...v1.8.8

v1.8.7

04 Nov 11:08
61514e0
Compare
Choose a tag to compare

Updates OpenTelemetry collector library to v0.112.0 #1309

Full Changelog: v1.8.6...v1.8.7

v1.8.6

11 Oct 23:58
d79774e
Compare
Choose a tag to compare

What's Changed

Other changes/additions

Full Changelog: v1.8.5...v1.8.6

v1.8.5

09 Oct 15:51
6eccfa3
Compare
Choose a tag to compare

What's Changed

Other changes/additions

  • Fixes process metrics when the application has not sent/received any request by @mariomac in #1236
  • Fix trace sampler 1.8 by @grcevski in #1241

Full Changelog: v1.8.4...v1.8.5

v1.8.4

17 Sep 16:24
98352a7
Compare
Choose a tag to compare

What's Changed

Other changes/additions

Full Changelog: v1.8.3...v1.8.4

v1.8.3

10 Sep 15:15
166d284
Compare
Choose a tag to compare

What's Changed

Bug fixes 🐛

Other changes/additions

  • Downgrade release 1.8 branch to Go 1.22 in go.mod by @mariomac in #1151

Full Changelog: v1.8.1...v1.8.3

v0.0.7-pre

12 Sep 14:24
Compare
Choose a tag to compare
v0.0.7-pre Pre-release
Pre-release

What's Changed

Test release for the purpose of verifying if the fix to OTel metric expiration works with the temporary branch.

Breaking changes 🔨

  • Cleanup UID/InstanceID duplicity. Also remove override_instance_id config option by @mariomac in #1125
  • Fix instance and job in prometheus, and document honor_labels by @mariomac in #1130

Bug fixes 🐛

  • Deduplicate instance ids and restore target_instance in Prometheus by @mariomac in #1129

Other changes/additions

  • Add 'watch services' permission to unprivileged example by @marevers in #1126
  • Fix OS capabilities by @grcevski in #1131
  • Update OTEL collector library to v0.108.1 by @mariomac in #1133
  • Helm chart: allow unprivileged deployment of Beyla by @marevers in #1128
  • Update OTEL collector library to v0.108.1 (1.8 backport) by @mariomac in #1134
  • Automatic update of offsets.json by @github-actions in #1136
  • Docs: Fix link to 'Beyla and Kubernetes walkthrough' by @marevers in #1141

Full Changelog: v1.8.3...v0.0.7-pre

v1.8.1

06 Sep 08:23
632289d
Compare
Choose a tag to compare

What's Changed

Update OTEL collector library from v0.102.0 to v0.108.1. This should have no visible effect on users but will enable the integration of Beyla in the next version of Grafana Alloy.

Full Changelog: v1.8.0...v1.8.1

v1.8.0

03 Sep 08:39
9a20dda
Compare
Choose a tag to compare

What's Changed

Breaking changes 🔨

Network metrics: new behavior of the direction field

The direction attribute (whose values were ingress/egress until Beyla 1.7.0) has been renamed to iface_direction. This attribute specifies in which direction of the network interface is a flow captured (ingress or egress).

Since Beyla 1.8.0, the direction attribute shows the direction of a connection (valid for TCP): request or response.

PR: #1074

Process CPU metrics: rename attribute process.cpu.state to cpu.mode

Process metrics are still an experimental/unstable OpenTelemetry specification. We renamed that attribute according to the latest changes in the specification.

PR: #1110

Internal metrics: renamed beyla_build_info to beyla_internal_build_info

This breaking change should not have noticeable effect in someone, as internal metrics are aimed to debug Beyla.

PR: #1119

Bug fixes 🐛

Other changes/additions

New Contributors

Full Changelog: v1.7.0...v1.8.0