Skip to content

Beyla v2.0.0 is here!

Compare
Choose a tag to compare
@mariomac mariomac released this 27 Jan 14:56
· 71 commits to main since this release
b535e56

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:

  1. Resource attributes set via OTEL_RESOURCE_ATTRIBUTES and OTEL_SERVICE_NAME environment variables
  2. Resource attributes set via Pod annotations prefixed with resource.opentelemetry.io/.
  3. Resource attributes set via the app.kubernetes.io/name and app.kubernetes.io/part-of Pod labels, for service
    name and namespace, respectively (see documentation to learn how to override these values)
  4. 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. Use BEYLA_TRACE_PRINTER configuration option instead.
  • BEYLA_METRICS_REPORT_TARGET and BEYLA_METRICS_REPORT_PEER were deprecated and undocumented since Beyla 1.5.
    Use the Attributes selection configuration to include the url.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.

By @grcevski in #1436

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 🐛

Other changes/additions

New Contributors

Full Changelog: v1.9.0...v2.0.0