mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-11 22:14:02 +01:00
docker: do not enable eBPF by default :(
It requires Linux 5.8+ and this may trigger some support request for little gain.
This commit is contained in:
8
.github/e2e.hurl
vendored
8
.github/e2e.hurl
vendored
@@ -67,14 +67,6 @@ inlet_sentflows: jsonpath "$.data.result[0].value[1]" toInt
|
||||
[Asserts]
|
||||
variable "inlet_sentflows" >= {{ inlet_receivedflows }}
|
||||
|
||||
## Test inlet has eBPF running
|
||||
GET http://127.0.0.1:8080/prometheus/api/v1/query
|
||||
[Query]
|
||||
query: akvorado_inlet_flow_input_udp_ebpf_loaded{job="akvorado-inlet"}
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
jsonpath "$.data.result[0].value[1]" toInt == 1
|
||||
|
||||
## Check outlet received flows from Kafka
|
||||
GET http://127.0.0.1:8080/prometheus/api/v1/query
|
||||
[Query]
|
||||
|
||||
@@ -431,6 +431,7 @@ In the example above, there were 486525 drops. You can solve this in different w
|
||||
is often near the value of `kafka`→`queue-size`, increase this value. This
|
||||
setting has the most impact.
|
||||
1. Increase the number of workers for the UDP input.
|
||||
1. Enable the eBPF load balancer on Linux (check `docker/docker-compose-local.yml`).
|
||||
1. Increase the value of the `net.core.rmem_max` sysctl (on the host) and
|
||||
increase the `receive-buffer` setting for the input to the same value,
|
||||
1. Increase the number of Kafka brokers.
|
||||
|
||||
@@ -12,24 +12,13 @@ identified with a specific icon:
|
||||
|
||||
## Unreleased
|
||||
|
||||
This release brings per-packet load-balancing for incoming flows using eBPF on
|
||||
Linux. Previously, exporters were tied to one worker, triggering packet loss
|
||||
despite many workers available. This requires Linux 5.8+ (support of `CAP_BPF`).
|
||||
For older kernels, add this to your `docker/docker-compose-local.yaml`:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
akvorado-inlet:
|
||||
cap_add: !override
|
||||
- SYS_ADMIN # BPF capability is supported only from Linux 5.8
|
||||
```
|
||||
|
||||
However, if you were experiencing packet loss in the inlet after upgrading to
|
||||
2.0.x, increase the value of `inlet`→`kafka`→`queue-size`, which was set too
|
||||
low. The new shipped value is 4096 instead of 32.
|
||||
If you were experiencing packet loss in the inlet after upgrading to 2.0.x,
|
||||
increase the value of `inlet`→`kafka`→`queue-size`, which was set too low. The
|
||||
new shipped value is 4096 instead of 32.
|
||||
|
||||
- 💥 *config*: stop shipping demo exporter configurations from the orchestrator
|
||||
- 💥 *inlet*: load-balance incoming UDP packets to all workers using eBPF on Linux
|
||||
- ✨ *inlet*: load-balance incoming UDP packets to all workers using eBPF on
|
||||
Linux (check `docker/docker-compose-local.yaml` to enable)
|
||||
- 🩹 *inlet*: fix `akvorado_inlet_flow_input_udp_in_dropped_packets_total` metric
|
||||
- 🩹 *console*: fix completion tooltip being wrapped with Firefox
|
||||
- 🌱 *config*: increase `inlet`→`kafka`→`queue-size` to a more sensible value
|
||||
|
||||
@@ -110,9 +110,9 @@
|
||||
# - subnet: 2001:db8::/64
|
||||
# gateway: 2001:db8::1
|
||||
|
||||
# If you are running an older kernel than Linux 5.8, you need to uncomment the following block:
|
||||
# You can enable the eBPF load balancer to evenly spread load between workers:
|
||||
|
||||
# services:
|
||||
# akvorado-inlet:
|
||||
# cap_add: !override
|
||||
# - SYS_ADMIN # BPF capability is supported only from Linux 5.8
|
||||
# cap_add:
|
||||
# - BPF # or SYS_ADMIN if you don't have Linux 5.8+
|
||||
|
||||
@@ -155,8 +155,6 @@ services:
|
||||
kafka:
|
||||
condition: service_healthy
|
||||
command: inlet http://akvorado-orchestrator:8080
|
||||
cap_add:
|
||||
- BPF
|
||||
volumes:
|
||||
- akvorado-run:/run/akvorado
|
||||
labels:
|
||||
|
||||
Reference in New Issue
Block a user