A lightweight, modular CLI tool for managing and monitoring eBPF programs on Linux systems. Built in Rust for performance and reliability.
- eBPF Program Management: Load, unload, and monitor eBPF programs
- System Monitoring: Real-time system metrics and process monitoring
- Interactive TUI: Terminal-based user interface for monitoring
- Configuration Management: Flexible configuration system
- Network Monitoring: Network interface and traffic monitoring
- Database Integration: SQLite-based data storage and management
- Rust 1.70+
- Linux kernel 4.18+ with eBPF support
- libbpf development libraries
- clang and llvm for eBPF compilation
# Clone the repository
git clone https://github.com/stackroost/eclipta.git
cd eclipta
# Build from source
cargo build --release
# Install (requires sudo for eBPF operations)
sudo cp target/release/eclipta /usr/local/bin/eclipta
# Show welcome message and help
eclipta welcome
# Check system status
eclipta status
# Load a sample eBPF program
eclipta load --program bin/simple_trace.o --name my-tracer
# List loaded programs
eclipta list
# Start interactive monitoring
eclipta monitor
# Unload program
eclipta unload --program my-tracer
The project includes sample eBPF programs for testing:
bin/simple_trace.o
- Basic tracepoint programbin/simple_xdp.o
- Basic XDP program
To build your own eBPF programs:
cd examples/ebpf
make
welcome
- Show welcome message and setup helpstatus
- Show CLI runtime statusmonitor
- Interactive terminal UI for monitoringlogs
- View system or agent logswatch-cpu
- Monitor CPU usage
load
- Load eBPF programunload
- Unload eBPF programlist
- List loaded programsinspect
- Inspect program detailsupload
- Upload program to storageremove
- Remove program from storage
ping-all
- Check agent connectivityalerts
- List alerting agents
config
- Manage configurationdaemon
- Start daemon process
check-db
- Check database statusmigrate
- Run database migrations
Configuration is stored in /etc/eclipta/config.yaml
. Key settings:
log_level: "info"
daemon_enabled: false
auto_start_programs: false
monitoring_interval: 5
eclipta/
├── eclipta-cli/ # Main CLI application
│ ├── src/
│ │ ├── commands/ # Command implementations
│ │ ├── utils/ # Utility functions
│ │ └── main.rs # Entry point
│ └── Cargo.toml
├── examples/ebpf/ # Sample eBPF programs
│ ├── simple_trace.c
│ ├── simple_xdp.c
│ └── Makefile
├── bin/ # Compiled eBPF programs
│ ├── simple_trace.o
│ └── simple_xdp.o
├── eclipta.yaml # Comprehensive documentation
└── README.md
# Development build
cargo build
# Release build
cargo build --release
# Run tests
cargo test
# Format code
cargo fmt
# Lint code
cargo clippy
- Create command module in
eclipta-cli/src/commands/
- Add command to
main.rs
command enum - Implement command handler
- Update documentation in
eclipta.yaml
For comprehensive documentation including all commands, options, and examples, see eclipta.yaml
.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT © 2025 Mahesh Bhatiya
- Issues: GitHub Issues
- Documentation: GitHub Wiki
- Email: [email protected]