Skip to content

Releases: grafana/beyla

v1.6.2

24 May 08:39
e401ad2
Compare
Choose a tag to compare

What's Changed

Bug fixes

  • Restore service.name as metric attribute (1.6 backport) by @mariomac in #869

Other changes/additions

  • Fix attributes filter network documentation (1.6 backport) by @mariomac in #863

Full Changelog: v1.6.1...v1.6.2

v1.6.1

22 May 15:47
Compare
Choose a tag to compare

Fixes an array index panic during SQL parsing by @mariomac in #857

v1.6.0

21 May 12:54
a22db74
Compare
Choose a tag to compare

What's Changed

Breaking changes 🔨

Standardized how we set peernames in traces

Now traces prefer the peer hostname over the IP addres. This could affect you if you have any alert or dashboard relying in the old IP-based peer address.

What's new

Attribute selectors for application metrics

Beyla 1.5 allowed to select which attributes were reported in the network metrics.

Beyla 1.6 extends this feature to application-level metrics. For example:

attributes:
  select:
    beyla_network_flow_bytes:
      # limit the beyla_network_flow_bytes attributes to only the three attributes
      include:
        - beyla.ip
        - src.name
        - dst.port
    sql_client_duration:
      # report all the possible attributes but db_statement
      include: ["*"]
      exclude: ["db_statement"]
    http_client_request_duration:
      # report the default attribute set but exclude the Kubernetes Pod information
      exclude: ["k8s.pod.*"]

Check the documentation for more details.

Filter flows and spans by attribute values

Beyla 1.6 lets filtering out metrics and spans not matching the provided selection criteria.

For example:

filter:
  network:
    transport: UDP
    dst_port: "53"

Would cause that beyla only reports UDP network flows whose destination port is 53.

It allows to match multiple values by with a filesystem-like Glob syntax. For example:

filter:
  application:
    k8s.pod.name: beyla-*

Would report only application metrics and traces from Kubernetes pods whose name starts with beyla-.

Check the documentation for more details.

Expire Application metrics with Prometheus exporter

To reduce cardinality of Application metrics in Prometheus, Beyla will stop reporting the metrics of an application between two endpoints when there is unobserved activity during 5 minutes. You can override the default 5-minutes value with the BEYLA_PROMETHEUS_TTL configuration options.

This feature was already available in Beyla 1.5 for network metrics exported via OTEL or Prometheus. However, the expiration is not yet available for Application observability with OpenTelemetry, as the OpenTelemetry SDK does not yet provide a feasible way to remove histogram metrics.

Support OTEL_GO_AUTO_TARGET_EXE environment variable

In order to enforce our compatibility with opentelemetry standards, the OTEL_GO_AUTO_TARGET_EXE configuration option is now supported.

This environment variable is equivalent to the BEYLA_EXECUTABLE_NAME environment variable.

Bug fixes 🐛

Add .total suffix to network flow bytes metric in OTEL

When network metrics are sent via Prometheus or via an intermadiate OTEL collector, the metrics are queryable as beyla_network_flow_metrics_total in Grafana.

Before this release, when using the OTEL endpoint in Grafana Cloud, metrics were visible as beyla_network_flow_metrics, without the _total.

Beyla 1.6.0 adds explicitly the .total suffix to the OTEL exporter.

Other bug fixes

Other changes/additions

Read more

v1.5.3

08 May 08:14
165a71c
Compare
Choose a tag to compare

What's Changed

Other changes/additions

  • Fix crash if only application_service_graph feature is enabled (1.5 b… by @mariomac in #808

Full Changelog: v1.5.2...v1.5.3

v1.5.2

23 Apr 14:07
72af6c9
Compare
Choose a tag to compare

What's Changed

  • Fix race conditions in kube database (1.5 backport) by @mariomac in #774

Full Changelog: v1.5.1...v1.5.2

v1.5.1

22 Apr 09:06
e36cd60
Compare
Choose a tag to compare

What's Changed

Fixes a bug introduced in Beyla 1.5.0 that could cause some that Go gRPC instrumented services stopped working.

v1.5.0

19 Apr 07:35
6bf78e9
Compare
Choose a tag to compare

Highlights

Kubernetes: add support for pod matching based on labels by @msvechla

This change adds a new selector property k8s_pod_labels to the discovery.services configuration section. This selector property will limit the instrumentation to the applications running in the Pods having labels with matching keys and values.

Kudos for @msvechla for its contribution.

Direct generation of span metrics and service graph metrics

Beyla 1.5 can generate application metrics in span metrics/service graph format directly, replicating how metrics are derived from application traces. This allows for better support and integration with products which rely on span metrics, such as Grafana Cloud Application Observability, where the application traces are sampled, and therefore the span metrics are inaccurate.

To enable span or service graph metrics, add the application_span or application_service_graph values to the BEYLA_OTEL_METRICS_FEATURES or BEYLA_PROMETHEUS_FEATURES configuration properties. Check the Beyla configuration documentation for more details.

Some improvements in network metrics generation

⚠️ Network metrics is still an experimental feature under active development. Expect breaking changes
in future Beyla versions.

Network metrics now can be exported as Prometheus, as an alternative to OpenTelemetry. To enable it, just set the BEYLA_PROMETHEUS_PORT configuration value when BEYLA_NETWORK_METRICS is enabled.

You can filter metrics by Internet protocol. For example, you could restrict the network metrics only to UDP traffic. The BEYLA_NETWORK_PROTOCOLS and BEYLA_NETWORK_EXCLUDE_PROTOCOLS will let you enumerate which protocols to accept
or exclude.

To reduce cardinality of Network metrics, either in Prometheus or OpenTelemetry, Beyla will stop reporting the network metrics between two endpoints when there is unobserved traffic between both endpoints during 5 minutes. You can override the default 5-minutes value with the BEYLA_OTEL_METRICS_TTL or BEYLA_PROMETHEUS_TTL configuration options. This feature is not yet available for application-level metrics.

Finally, the following attributes can be now added to the network metrics: src.port, dst.port and transport.

Check documentation for more configuration details.

Fixing long response tracking

Fixed a bug present in previous versions of Beyla, that prevented Beyla from properly measuring the response time of long responses
(for example, a data stream or downloading a large file).

Complete cahngelog

Bug fixes 🐛

Other changes/additions

  • Better way to inject headers in gRPC by @grcevski in #672
  • Remove stray debug code by @grcevski in #687
  • Fix traces receiver for Grafana Agent by @marctc in #690
  • Update cilium library to v0.13.2 by @mariomac in #685
  • Add support for pod matching based on labels by @msvechla in #694
  • Increase Refresh Interval in Sample Dashboard by @SeamusGrafana in #701
  • OTEL exporter: separate metrics by features by @mariomac in #697
  • Fix Spans ID creation for OTEL Traces receiver by @marctc in #703
  • Make prometheus registry configurable by @marctc in #702
  • Revert cilium lib to 0.12.3 by @mariomac in #705
  • NetO11y: refactor attributes filter to be prometheus-ready by @mariomac in #704
  • Move transform package to pkg directory by @marctc in #706
  • RED Metrics Dashboard now supports multiple metric names by @mariomac in #707
  • Track black box multi network interface by @grcevski in #698
  • Prometheus exporter for network metrics by @mariomac in #708
  • Document Network Prometheus exporter by @mariomac in #712
  • Add support for tracking properly large responses by @grcevski in #710
  • Reduce size of the http2 code by @grcevski in #711
  • Automatic update of offsets.json by @github-actions in #714
  • Link to rendered tutorial docs rather than the source files by @fstab in #686
  • Network metrics: prometheus expirer by @mariomac in #715
  • Automatic update of offsets.json by @github-actions in #719
  • Helm chart by @khushijain21 @wasim-nihal in #642
  • Update Go version to 1.22 + update and fix linters by @mariomac in #674
  • Change Agent to Alloy by @grafsean in #727
  • Add network ports as available attributes in network observability by @grcevski in #724
  • Rename Grafana Agent to Alloy in code by @marctc in #728
  • Automatic update of offsets.json by @github-actions in #726
  • Network metrics agent without using the Traffic Control ebpf interface by @grcevski in #721
  • Change Go to use net.FD for peer and host by @grcevski in #725
  • Add option for direct Beyla spanmetric generation by @grcevski in #731
  • Add instrumentation for sql.Exec by @marctc in #733
  • Implement prometheus scrape span metrics by @grcevski in #735
  • Remove gin specific instrumentation by @grcevski in #738
  • Update unprivileged documentation to require NET_RAW by @dashpole in #730
  • Allow customizing the base path and don't mount the BPF fs if it is already mounted by @dashpole in #741
  • Updated the pipes library by @mariomac in #736
  • Support transport protocol as network metric attribute by @mariomac in #744
  • Finish K8s informers when the context is cancelled by @mariomac in #747
  • Makefile: automatically update prereq binaries after version changes by @mariomac in #748
  • Support network metrics in helm chart by @mariomac in #743
  • Network metrics: Expire old metrics for OTEL exporter by @mariomac in #720
  • Add example of Kubernetes instrumentation with Alloy by @marctc in #750
  • Shorten K8s integration tests time by @mariomac in #749
  • update network metrics pipeline doc by @mariomac in #756
  • Added more descriptive failing messages to flaky integration test by @mariomac in #755
  • Network metrics: filter by transport protocol by @mariomac in #752
  • Update helm chart Beyla version by @mariomac in #754
  • Add support for directly generating span graphs by @grcevski in #745
  • Document protocols filter by @mariomac in #753

New Contributors

Full Changelog: v1.4.1...v1.5.0

v1.4.2

19 Apr 16:24
94aae99
Compare
Choose a tag to compare

What's Changed

Other changes/additions

  • Backport net_fd connection parsing for more reliable black-box propagation in Go by @grcevski in #718
  • Make sure we ignore invalid spans by @grcevski in #761

Full Changelog: v1.5.0...v1.4.2

v1.4.1

04 Apr 17:46
4f9d076
Compare
Choose a tag to compare

What's Changed

Other changes/additions

  • Backport net_fd connection parsing for more reliable black-box propagation in Go by @grcevski in #718

Full Changelog: v1.4.0...v1.4.1

v1.3.4

04 Apr 16:05
c6639a8
Compare
Choose a tag to compare

What's Changed

Other changes/additions

  • Backport net_fd connection parsing for more reliable black-box propagation in Go by @grcevski in #717

Full Changelog: v1.3.3...v1.3.4