Broadcom Software Academy Blog

Introducing The eBPF Agent: A New, No-Code Approach for Cloud-Native Observability

Written by Ravina Khanna | Sep 16, 2024 7:20:53 PM
Additional contributor: Sasanka Pusapati
Key Takeaways
  • Adopt microservices (eBPF) agents for monitoring in dynamic and resource-constrained environments.
  • Employ DX Operational Observability to gain low-overhead, real-time, and non-intrusive monitoring capabilities.
  • Establish end-to-end observability across the entire digital delivery chain and equip teams with actionable insights.

Microservices architecture has become a dominant approach for building scalable, resilient, and flexible applications. However, monitoring these microservices presents unique challenges due to their distributed nature, fixed or limited resources, enterprise scale, and the dynamic nature of environments, such as Kubernetes clusters. The result is that in-process application agents often introduce significant overhead because they rely on intrusive instrumentation and frequent polling. Quite simply, they are heavy agents. 

Adopting microservices (eBPF) agents for monitoring helps teams address critical needs for a low-overhead, real-time, and non-intrusive monitoring solution in dynamic and resource-constrained environments. eBPF agents are lightweight and powerful!

Before diving into the enchanting world of eBPF monitoring, let’s unravel the mystery of eBPF itself. Imagine eBPF as a magical lens—a way to peer into the inner workings of your Linux system for cloud-native observability. Here’s what the eBPF agent can do:

  1. System calls and network traffic: eBPF can monitor system calls, network traffic, and system behavior in real time. It’s like having a wizard’s crystal ball that reveals hidden secrets.
  2. Granularity galore: With eBPF, you can trace performance data on a process-by-process basis. Whether for individual containers, specific processes, or entire applications, eBPF offers unparalleled granularity.
  3. Security sorcery: Some IT solutions wield eBPF for runtime security auditing and incident response. It’s the guardian at the castle gates that ensures your system stays safe.

Feature comparison of in-process and eBPF agents

Feature In-process agent eBPF agent
Agent execution space Inside application (user-space) execution Outside monitoring
Overhead and performance impact Higher overhead; intrusive Low overhead; non-intrusive
Scope of monitoring Application-specific monitoring; limited to the application System-wide monitoring; application-agnostic

Architectural comparison

eBPF agent: A powerful solution for cloud-native monitoring

DX Operational Observability (DX O2) helps teams contend with the explosive growth in monitoring data, infrastructure complexity, and business demands. The product enables end-to-end observability across the entire digital delivery chain and empowers IT operations teams with actionable insights to efficiently manage modern and complex environments.

The eBPF agent is a powerful addition to the DX Operational Observability ecosystem. It provides dynamic instrumentation by inserting probes into the running system, without requiring restarts or recompilation. Here are some key features:

  1. Dynamic instrumentation: The eBPF agent dynamically inserts probes into the system, allowing on-the-fly instrumentation. This avoids disruption since there is no need for teams to restart or recompile applications.
  2. Kernel-level metrics collection: The eBPF agent leverages Linux kernel-level API calls that are consistent across all hosts in the cluster. This ensures uniform collection of observability metrics. To help teams monitor the health and performance of applications, it provides three key performance indicators (KPIs):
    • Responses per interval
    • Errors per interval
    • Average response time


  3. Language-agnostic, broad support: The eBPF agent natively supports applications built using Java, .NET, PHP, NodeJS, Python, Golang, or C++. With native support for these widely adopted technologies, eBPF can readily correlate the full stack monitoring data it gathers as transactions transverse complex IT estates. Teams benefit from an intuitive presentation of the application flow topology.

  4. Near-zero overhead: The agent sits outside the application pod. This minimizes overhead while still providing valuable insights.

Universal Monitoring Agent (UMA) features a microservices agent that runs as part of UMA daemonset pods (app-container-monitor). The UMA acts as a single agent deployment that automatically discovers and monitors Kubernetes and Red Hat OpenShift containers, applications, and cluster services.

The eBPF agent: Innovative, powerful, and enchanting!

The new eBPF monitoring agent provides comprehensive insights into the performance and interactions of frontends, backends, and application flows (AppFlow). It provides teams with outside-in monitoring of applications for cloud-native observability, without requiring changes to the applications.

There will be situations where in-process agents provide distinct benefits. However, given changes in application architectures and the monitoring needs and constraints that teams face, these occasions are more the exception than the norm. Choosing between a microservices (eBPF) agent and an in-process application agent depends on your specific requirements, such as the level of detail needed, the acceptable overhead, and whether system-wide or application-specific monitoring is desired.