| Crates.io | orb8-common |
| lib.rs | orb8-common |
| version | 0.0.3 |
| created_at | 2025-11-28 02:50:57.607887+00 |
| updated_at | 2026-01-07 00:20:47.468502+00 |
| description | Shared types between eBPF and userspace for orb8 |
| homepage | https://github.com/Ignoramuss/orb8 |
| repository | https://github.com/Ignoramuss/orb8 |
| max_upload_size | |
| id | 1954750 |
| size | 16,114 |
eBPF-powered observability toolkit for Kubernetes with first-class GPU telemetry
| Crate | crates.io | docs.rs |
|---|---|---|
orb8 |
crates.io/crates/orb8 | docs.rs/orb8 |
orb8-common |
crates.io/crates/orb8-common | docs.rs/orb8-common |
orb8-agent |
crates.io/crates/orb8-agent | docs.rs/orb8-agent |
orb8-cli |
crates.io/crates/orb8-cli | docs.rs/orb8-cli |
orb8 (orbit) is a high-performance observability toolkit built with Rust and eBPF, designed specifically for Kubernetes clusters running AI/ML workloads. It provides deep, low-level visibility into container networking, system calls, resource utilization, and GPU performance with minimal overhead.
The name "orb8" represents orbiting around your cluster infrastructure, continuously observing and monitoring from all angles.
Existing Kubernetes observability tools either focus on high-level metrics or security-specific use cases. orb8 fills the gap by providing:
For Building:
rust-src componentbpf-linker (install via cargo install bpf-linker)For Running eBPF Programs:
Platform-Specific:
Future Features:
# Install the CLI
cargo install orb8-cli
# Install the agent (requires Linux with eBPF support)
cargo install orb8-agent
git clone https://github.com/Ignoramuss/orb8.git
cd orb8
cargo build --release
kubectl apply -f deploy/orb8-daemonset.yaml
Note: orb8 v0.0.2 includes working network flow capture, CLI, and gRPC API.
# Start the agent (requires Linux with eBPF support, or use Lima VM on macOS)
orb8-agent
# In another terminal, use the CLI to interact with the agent:
# Check agent status
orb8 status
# Output:
# Agent Status
# ----------------------------------------
# Node: your-hostname
# Version: 0.0.2
# Health: OK
# Events Processed: 150
# Active Flows: 3
# Generate some network traffic
ping -c 5 127.0.0.1
# Query aggregated flows
orb8 flows
# Output:
# NAMESPACE/POD PROTOCOL SOURCE DESTINATION DIR BYTES PACKETS
# unknown/cgroup-0 ICMP 127.0.0.1:0 127.0.0.1:0 ingress 588B 6
# Stream live network events
orb8 trace network --duration 30s
# Output:
# Streaming network events from localhost:9090...
# NAMESPACE/POD PROTOCOL SOURCE DESTINATION DIR BYTES TIME
# unknown/cgroup-0 ICMP 127.0.0.1:0 127.0.0.1:0 ingress 98B 14:30:45
# Start the agent in Lima VM
make run-agent
# Query agent status via gRPC
grpcurl -plaintext -proto orb8-proto/proto/orb8.proto \
localhost:9090 orb8.v1.OrbitAgentService/GetStatus
# Query captured flows via gRPC
grpcurl -plaintext -proto orb8-proto/proto/orb8.proto \
localhost:9090 orb8.v1.OrbitAgentService/QueryFlows
# Monitor network flows for all pods in a namespace (coming)
orb8 trace network --namespace default
# Track DNS queries across the cluster (coming)
orb8 trace dns --all-namespaces
# Monitor syscalls for security anomalies
orb8 trace syscall --pod suspicious-pod-456
# Monitor GPU utilization for AI workloads
orb8 trace gpu --namespace ml-training
macOS:
# Terminal 1: Start agent
make dev # First time only - creates VM (~5 min)
make run-agent # Starts agent with sudo
# Terminal 2: Use CLI
make shell
orb8 status # Check agent health
ping -c 5 127.0.0.1 # Generate traffic
orb8 flows # View aggregated flows
orb8 trace network --duration 10s # Stream live events
Linux:
# Terminal 1: Start agent
make run-agent # Starts agent with sudo
# Terminal 2: Use CLI
orb8 status
ping -c 5 127.0.0.1
orb8 flows
orb8 trace network --duration 10s
Expected output from orb8 status:
Agent Status
----------------------------------------
Node: your-hostname
Version: 0.0.2
Health: OK
Events Processed: 150
Active Flows: 3
make test # Run all tests
make verify-setup # Verify environment is configured correctly
| Command | Description |
|---|---|
make magic |
Build, test, install (uses VM on macOS, native on Linux) |
make magic-local |
Build, test, install (native, no VM) |
make dev |
Setup Lima VM (macOS only) |
make shell |
Enter Lima VM (macOS only) |
make build |
Build all crates |
make build-agent |
Build agent only |
make run-agent |
Build and run agent with sudo |
make test |
Run tests |
make fmt |
Format code |
make clippy |
Run linter |
make clean |
Delete VM and cleanup |
orb8 consists of three main components:
See docs/ARCHITECTURE.md for detailed design documentation.
Note: orb8 is in active development. The table shows planned capabilities (see Roadmap for timeline).
| Feature | orb8 | Pixie | Tetragon | kubectl-trace |
|---|---|---|---|---|
| GPU Telemetry | Yes (planned) | No | No | No |
| eBPF-based | Yes | Yes | Yes | Yes |
| Network Tracing | Yes (planned) | Yes | Yes | Partial |
| Syscall Monitoring | Yes (planned) | Partial | Yes | Yes |
| K8s Native | Yes | Yes | Yes | Yes |
| AI Workload Focus | Yes | No | No | No |
| Overhead | <1% (target) | ~2-5% | <1% | Varies |
See ROADMAP.md for the full development plan.
Current Status: Phase 2 Complete, Phase 3 In Progress
Completed:
In Progress:
Planned:
orb8 requires Linux for eBPF functionality.
Development uses Lima/QEMU to provide a Linux VM with full eBPF support. Your code is automatically mounted from macOS into the VM.
Native development with direct kernel access. No VM required.
Use WSL2 and follow Linux instructions.
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Step 1: Verify your environment
make verify-setup
Step 2: Build, test, and install
Linux:
make magic-local # Native build, test, install
cargo build # Or build manually
cargo test # Run tests
macOS (Phase 1.1 - build infrastructure):
make magic-local # Fast local testing
# eBPF compiles to bytecode but doesn't load (no kernel)
macOS (Phase 1.2+ - actual eBPF execution):
make magic # Full VM-based testing
make shell # Enter VM
orb8 --help
Expected output for Phase 1.1: Both platforms will show:
warning: target filter `bins` specified, but no targets matched
Finished `release` profile [optimized]
This is expected - probe binaries come in Phase 1.2.
Linux:
# Verify environment
make verify-setup
# Build and test
cargo build
cargo test
# For Phase 1.1 specifically
cargo build -p orb8-probes # eBPF build infrastructure
cargo clippy -p orb8-probes -- -D warnings
macOS:
# Quick setup (no VM)
make verify-setup
cargo build -p orb8-probes
# Full setup (with VM for eBPF execution)
make dev # Creates VM (5-10 min first time)
make shell # Enter VM
cargo build
cargo test
See docs/DEVELOPMENT.md for detailed setup instructions and troubleshooting.
Apache License 2.0 - see LICENSE for details.
Built with:
Note: This project is in early development. GPU telemetry features (Phase 7) will require specific hardware and driver configurations when implemented.