v1.3.1
版本发布时间: 2024-02-26 23:34:15
grafana/beyla最新发布版本:v1.8.4(2024-09-18 00:24:41)
Highlights
⚠️ Breaking change: update metric collection names to stable HTTP spec
We have updated the metrics collection names to the stable HTTP spec for OpenTelemetry. This change also applies to our Prometheus metrics exporter: https://github.com/open-telemetry/semantic-conventions/blob/main/docs/http/http-metrics.md
Users should update their dashboards, alerts, etc, from the following old to the following new names.
Old Prometheus metric names:
-
http_server_duration_seconds
-
http_client_duration_seconds
-
http_server_request_size_bytes
-
http_client_request_size_bytes
Old OTEL metric names:
-
http.server.duration
-
http.client.duration
-
http.server.request.size
-
http.client.request.size
New Prometheus metric names:
-
http_server_request_duration_seconds
-
http_client_request_duration_seconds
-
http_server_request_body_size_bytes
-
http_client_request_body_size_bytes
New OTEL metric names:
-
http.server.request.duration
-
http.client.request.duration
-
http.server.request.body.size
-
http.client.request.body.size
Fixed Kubernetes integration for GKE and other distributions
The way GKE internally stored the container IDs in the /proc filesystem was not recognized by Beyla. In consequence, Beyla was not able to match process/container low-level information with high-level Kubernetes metadata.
This could also happen with other Kubernetes distributions.
Native histograms for Prometheus
For Prometheus, native histograms are enabled if you
enable the native-histograms
feature in your Prometheus collector.
Exponential histograms for OpenTelemetry
For OpenTelemetry you can use exponential histograms for the predefined histograms instead of defining the buckets manually. You need to set up the standard OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION environment variable. See the Beyla documentation for more information.
Improved memory usage
Under some high-load scenarios (a single Beyla instance instrumenting 80 containers), the virtual memory space was in the order of GigaBytes.
In the test results, the virtual memory (container_memory_usage_bytes and container_memory_working_set_bytes) decreased from 155MiB to 84MiB on 1 container instrumentation, and 3.5GiB to 338MiB when load tested with about 80 containers.
RSS (container_memory_rss) didn't change much. About 75MiB with 1 container and 206MiB when load tested.
Full changelog
Breaking changes 🔨
- Update metric collection names to stable HTTP spec by @grcevski in https://github.com/grafana/beyla/pull/598
Bug fixes 🐛
- Support DaemonSet and StatefulSet in discovery and decoration by @mariomac in https://github.com/grafana/beyla/pull/571
- Fixed gRPC 1.61 offsets and updated go.mod versions by @mariomac in https://github.com/grafana/beyla/pull/609
Other changes/additions
- Detect trace conflicts in Kprobe context propagation by @grcevski in https://github.com/grafana/beyla/pull/557
- K8s tutorial: add extra steps for trace visualization by @mariomac in https://github.com/grafana/beyla/pull/561
- Track clones for context propagation by @grcevski in https://github.com/grafana/beyla/pull/560
- Add support for tracking http2 client and server requests by @grcevski in https://github.com/grafana/beyla/pull/568
- Prometheus exporter: add k8s_replicaset_name, k8s_daemonset_name and k8s_statefulset_name attributes by @mariomac in https://github.com/grafana/beyla/pull/574
- Update K8s documentation with the daemonset/replicaset/statefulset selectors and labels by @mariomac in https://github.com/grafana/beyla/pull/575
- Removing BEYLA_SYSTEM_WIDE advicing from error logs by @mariomac in https://github.com/grafana/beyla/pull/577
- Improve Docker container ID parsing from /proc/pid/cgroup by @mariomac in https://github.com/grafana/beyla/pull/578
- Fix
publish-technical-documentation-release
workflow for tag events by @jdbaldry in https://github.com/grafana/beyla/pull/583 - Catch pids that are off a parent and not quite ready by @grcevski in https://github.com/grafana/beyla/pull/581
- Add fallback to no kretprobes by @grcevski in https://github.com/grafana/beyla/pull/582
- Reorganizing Beyla configuration packages by @mariomac in https://github.com/grafana/beyla/pull/584
- Propagate context in http2 by @grcevski in https://github.com/grafana/beyla/pull/585
- Black-box context propagation for go by @grcevski in https://github.com/grafana/beyla/pull/587
- doc update for readOnlyRootFilesystem by @esara in https://github.com/grafana/beyla/pull/594
- Disable http2 context prop test by @grcevski in https://github.com/grafana/beyla/pull/596
- Added http route to client attributes by @vgnanasekaran in https://github.com/grafana/beyla/pull/597
- Fix check for context propagation support by @myhro in https://github.com/grafana/beyla/pull/600
- Add route to client requests for promscrape and tests by @grcevski in https://github.com/grafana/beyla/pull/599
- Compile as statically linked binary by @myhro in https://github.com/grafana/beyla/pull/601
- Add Vale workflow to lint prose on added/modified lines by @jdbaldry in https://github.com/grafana/beyla/pull/604
- parse containerid for a pid from cgroup as a hex chain by @esara in https://github.com/grafana/beyla/pull/589
- Synchronize bpf2go in makefile with version in go.mod by @mariomac in https://github.com/grafana/beyla/pull/610
- update ebp-generator image to ubuntu by @mariomac in https://github.com/grafana/beyla/pull/613
- Add docs for running unprivileged in k8s by @grcevski in https://github.com/grafana/beyla/pull/611
- Announce the community call by @grcevski in https://github.com/grafana/beyla/pull/616
- Switch to sys_bind to support more platforms by @grcevski in https://github.com/grafana/beyla/pull/615
- Add support for native/exponential histograms by @marctc in https://github.com/grafana/beyla/pull/614
- Don't cleanup prematurely by @grcevski in https://github.com/grafana/beyla/pull/619
- Fix generator-build-image makefile task by @mariomac in https://github.com/grafana/beyla/pull/624
- Network flows metrics by @mariomac in https://github.com/grafana/beyla/pull/586
- Temporary workaround for unsupported DWARF location types by @mariomac in https://github.com/grafana/beyla/pull/626
- Reduce BPF memory consumption by @grcevski in https://github.com/grafana/beyla/pull/620
- Exposing beyla_build_info metric in Prometheus exporter by @mariomac in https://github.com/grafana/beyla/pull/627
- Fix integration tests' coverage data by @mariomac in https://github.com/grafana/beyla/pull/631
- Fixing coverage report in K8s tests by @mariomac in https://github.com/grafana/beyla/pull/633
- Fix docs links and build warnings by @grafsean in https://github.com/grafana/beyla/pull/636
- Replace BEYLA_OTEL_USE_EXPONENTIAL_HISTOGRAMS by standard env var by @mariomac in https://github.com/grafana/beyla/pull/635
- Fix missing go_trace_map cleanup by @grcevski in https://github.com/grafana/beyla/pull/638
- Fixing network metrics' bytes and adding some useful fields by @mariomac in https://github.com/grafana/beyla/pull/641
- switch maps to LRU to mitigate failed retprobes by @grcevski in https://github.com/grafana/beyla/pull/643
- Added Marc to code owners and maintainers lists by @mariomac in https://github.com/grafana/beyla/pull/647
New Contributors
- @esara made their first contribution in https://github.com/grafana/beyla/pull/594
- @vgnanasekaran made their first contribution in https://github.com/grafana/beyla/pull/597
- @marctc made their first contribution in https://github.com/grafana/beyla/pull/614
Full Changelog: https://github.com/grafana/beyla/compare/v1.2.1...v1.3.1
1、 beyla-linux-amd64-v1.3.1.tar.gz 28.37MB
2、 beyla-linux-arm64-v1.3.1.tar.gz 26.49MB