RETIT presents „eBPF jAgent: Transaction-level Resource Demand Tracing for Java Applications Using eBPF and OpenTelemetry“ at the Symposium on Software Performance 2026
On November 10th, 2026 Bryan Liegsalz (byteleaf GmbH) and Prof. Dr. Andreas Brunnert (Munich University of Applied Sciences HM / RETIT GmbH) presented their paper „eBPF jAgent: Transaction-level Resource Demand Tracing for Java Applications Using eBPF and OpenTelemetry“ at the 17th Symposium on Software Performance (SSP 2026) in Würzburg.
What it is about
The resource demands of individual transactions are needed to parameterize performance models and to correctly attribute energy demands to individual software components. Collecting them so far requires instrumentation inside the application that is tied to a specific framework or language – such as our OpenTelemetry Java Agent Extension (OTJAE).
The eBPF jAgent takes a different route: it uses the extended Berkeley Packet Filter (eBPF) to measure CPU, memory, storage and network demands of Java transactions from within the Linux kernel, without modifying application code. Transaction boundaries come from the USDT probes of the HotSpot JVM, and the demands are exported as OpenTelemetry metrics – one data point per transaction.

Figure 1 from the paper: high-level architecture of the eBPF jAgent.
For languages that are not statically compiled, such as Java, eBPF needs additional information from the runtime to detect transactions – here the USDT probes of the JVM, which cause considerable overhead. The language-independent approach is therefore currently better suited to statically compiled languages. For Java we will keep using our OpenTelemetry Java Agent Extension for now, pursue the eBPF approach further for statically compiled languages and then extend it to interpreted and bytecode-compiled languages.
The eBPF jAgent is available as open source: https://github.com/hm-green-it-lab/ebpf-jagent
The 17th Symposium on Software Performance takes place from November 9th to 11th, 2026 in Würzburg. The talk was part of the session „Tracing, Observability & Overhead“.
The full paper is available here: https://www.performance-symposium.org/wp-content/uploads/2026/10/Liegsalz_eBPF_jAgent_Transaction-level_Resource_Demand_Tracing_for_Java_Applications.pdf
The slides of the talk are available here: /wp-content/uploads/2026/11/eBPF-jAgent-Transaction-level-Resource-Demand-Tracing-SSP-2026.pdf