Skip to main content

eBPF application auto-instrumentation with OBI

Collecting application metrics and traces usually means adding language-specific agents or modifying application code. OBI (OpenTelemetry eBPF-based instrumentation) simplifies this process using eBPF for automatic application instrumentation. Without any code changes, OBI inspects executables and the OS networking stack to capture trace spans for web traffic and RED (Rate, Errors, Duration) metrics in Linux-based HTTP/S and gRPC services.

Ready to get started?

See our Getting started guide for setup instructions.

Key capabilities

  • Zero-code, kernel-level instrumentation: Captures traces and RED metrics with no code changes, library installs, or application restarts.
  • Broad language and protocol coverage: Works across Java, .NET, Go, Python, Ruby, Node.js, C, C++, and Rust, spanning HTTP/S, gRPC, gRPC-Web, JSON-RPC, plus major database, messaging, search, and AI/LLM protocols.
  • Distributed tracing with context propagation: Automatically captures, propagates, and forwards trace spans across services.
  • Encrypted-traffic visibility: Monitors TLS/SSL transactions without decrypting content. HTTPS instrumentation is supported for Java, Node.js, and generic Go protocols.
  • AI/LLM observability: Captures payloads for OpenAI, Google Gemini (AI Studio and Vertex AI), AWS Bedrock, Qwen (DashScope), MCP over JSON-RPC, embedding providers (Voyage AI, Cohere, Jina AI), and rerank providers. View the captured AI traffic in Coralogix AI Center.
  • Kubernetes-first with auto-discovery and cloud enrichment: Deploys as a DaemonSet, automatically discovering services and enriching telemetry with Kubernetes and AWS/Azure/GCP metadata.

OBI enables scalable, vendor-neutral observability without invasive changes.

How OBI works

OBI runs as a DaemonSet on each Kubernetes node, capturing every packet transmitted or received at the kernel level with no sampling and no code changes. The agent categorizes traffic by protocol (detected from raw data or via the originating library), maps service-to-service connections, and enriches each interaction with OpenTelemetry conventions. Your OpenTelemetry collector then processes the spans and metrics and forwards them to Coralogix.

This is built on eBPF (extended Berkeley Packet Filter), a Linux kernel technology that safely executes custom logic in-kernel for observability, networking, and security, without modifying applications. OBI uses the OpenTelemetry eBPF instrumentation agent, now part of the official CNCF OpenTelemetry project (upstream documentation).

Key concepts

  • DaemonSet: One agent runs on every Kubernetes node, ensuring cluster-wide visibility and scaling naturally as the cluster grows. See Kubernetes DaemonSets.
  • Automatic service discovery: Detects new pods, containers, and services in real-time without manual configuration.
  • Service naming: Uses Kubernetes metadata (deployment, daemonset, or statefulset names) as the service name.
  • Network observability: Captures latency, packet drops, and errors across inter-service communication.

For background on the underlying technology, see the eBPF Foundation.

System requirements

  • Architecture: AMD64, ARM64
  • Kernel version: 5.8 and above (with BTF enabled), or RHEL 4.18 kernels build 348+

Supported protocols

Changed in v0.8.0

OBI detects all listed protocols across all supported languages. All protocols support encrypted/secure variants except MQTT. Trace context is propagated automatically for HTTP; for other protocols, OBI emits spans but does not propagate context downstream.

ProtocolVersionsMethodsNotes
HTTP1.0/1.1/2.0All
gRPC1.0+AllMethods for long-lived connections opened before OBI starts can't be retrieved and are marked *.
JSON-RPC2.0All
GraphQLAllAll

Additional instrumentation features

Beyond baseline protocol detection, OBI ships built-in enhancements that deepen telemetry quality for specific languages and environments: richer Go library coverage, an embedded OpenTelemetry Java agent for JVM telemetry, and automatic cloud-provider metadata enrichment.

Go-specific instrumentations

New in v0.8.0

For Go applications, the agent provides enhanced instrumentation for specific libraries:

LibrarySupport
Standard Go net/http
Gorilla Mux
Gin
gRPC-Go
Go x/net/http2
Go-Redis v9
Sarama Kafka
Kafka-Go

Java agent integration

New in v0.6.0

OBI v0.6.0+ embeds the OpenTelemetry Java agent directly in the OBI binary. The Java agent is enabled by default — no extra flag or download is required. To disable it, set java.enabled: false in your OBI config or OTEL_EBPF_JAVAAGENT_ENABLED=false in the environment.

This provides richer Java telemetry (for example, JVM metrics, detailed span attributes) without requiring a separate Java agent download or configuration.

Cloud metadata decoration

New in v0.6.0

OBI automatically detects and enriches telemetry with cloud provider resource attributes when running in AWS, Azure, or GCP environments. This adds attributes such as cloud region, account ID, and instance metadata to your spans and metrics without additional configuration.

Benefits

Why teams adopt OBI over agent-based or SDK-based instrumentation. Expand each item for details.

What's changed

OBI behavior changes that may affect existing dashboards, queries, and span filters. Review the relevant version before upgrading.

OBI v0.9.0

OBI v0.7.0+

Feed AI Center from OBI

Installing OBI on the host running your AI application is the simplest way to feed Coralogix AI Center. One install captures AI/LLM traffic from OpenAI, Google Gemini (AI Studio and Vertex AI), AWS Bedrock, Qwen (DashScope), MCP over JSON-RPC, embedding providers, and rerank providers — alongside the other OBI capabilities (distributed tracing, database observability, encrypted-traffic visibility, cloud metadata decoration) on the same install. No code changes, no SDKs, no per-language agents.

APM feature matrix

The table below compares the features supported by Coralogix APM with full OpenTelemetry integration versus those of the eBPF-based APM.

Feature (K8s environments only)eBPFFull OpenTelemetry
Service catalog
Database catalog
Service map (only for Events2Metrics as metrics data source)
Metrics contextualization
Service alerts
SLOs
Apdex
Span - log correlation
API error tracking
Service - log correlation
K8s resources correlation
Serverless monitoring
Transactions
Spans exploration
Traces exploration
Trace map
Sampling
Span metrics

Additional resources

Last updated on