Overview
Pixie
Pixie is an open-source observability platform for Kubernetes that uses eBPF to automatically capture telemetry data β without any code changes or manual instrumentation.
Key Features
- Zero-instrumentation: Uses eBPF to automatically trace HTTP, gRPC, MySQL, PostgreSQL, Redis, Cassandra, DNS, and more
- Full-body request tracing: Captures complete request and response bodies (headers, payloads)
- In-cluster processing: Data stays in the cluster β no external data transfer required
- PxL scripting: Custom query language for flexible data exploration
- CPU flamegraphs: Built-in continuous profiling for Go, C++, Rust applications
- Network monitoring: TCP drops, retransmits, DNS resolution tracking
Architecture
Source: https://docs.px.dev/about-pixie/what-is-pixie/
Components
| Component | Description |
|---|---|
| PEM (Pixie Edge Module) | Agent installed on each node. Uses eBPF to collect data, which is stored locally on the node in-memory. |
| Vizier | Collector installed per cluster. Responsible for query execution and managing PEMs. |
| Kelvin | Central query execution engine within Vizier. Aggregates results from PEMs across the cluster. |
| Pixie Cloud | Manages user authentication, API keys, and data proxying. Can be hosted (Community Cloud) or self-hosted. |
Pixie CLI (px) |
Command-line tool to deploy Pixie, run PxL queries, and manage resources like API keys. |
| Pixie Client API | Programmatic access to Pixie data for integrations, Slackbots, and custom applications. |
Supported Protocols
| Protocol | Auto-traced | Notes |
|---|---|---|
| HTTP | β | β |
| HTTP/2 (gRPC) | β | Golang gRPC with/without TLS; requires debug info |
| MySQL | β | β |
| PostgreSQL | β | β |
| Redis | β | β |
| Cassandra (CQL) | β | β |
| DNS | β | β |
| Kafka | β | β |
| NATS | β | Requires NATS build with debug information |
| AMQP | β | β |
| MongoDB | β | β |
When to Use Pixie
- β Quick debugging β no instrumentation setup needed
- β Network-level visibility β TCP drops, DNS issues, inter-service traffic
- β Database query profiling β full SQL queries with latency and error rates
- β Legacy services β works with any language, no SDK required
- β Security-sensitive environments β data stays in-cluster
- β Long-term storage β Pixie stores data in-memory (short retention, typically minutes to hours)
- β Custom business metrics β use Prometheus/OTel for application-specific metrics
- β Cross-cluster tracing β use OpenTelemetry for distributed traces across clusters
Pixie vs OpenTelemetry
| Aspect | Pixie | OpenTelemetry |
|---|---|---|
| Instrumentation | None (eBPF) | SDK or auto-instrumentation |
| Setup effort | Deploy agent | Add SDK to each service |
| Data location | In-cluster only | Exported to backends |
| Retention | Minutes to hours | Days to years |
| Protocol support | Automatic for supported protocols | Depends on instrumentation |
| Custom spans/metrics | Limited (PxL scripts) | Full control |
| Cross-cluster | No | Yes |
π‘ Best practice: Use Pixie for rapid debugging and network-level insights, and OpenTelemetry for long-term observability with custom instrumentation. They complement each other.