Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

367 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Doping - A Scalable Telemetry System for Multi-Cluster Performance Monitoring

A distributed telemetry system that combines eBPF-based kernel tracing with ML prediction for low-overhead, multi-cluster performance monitoring. Built in Rust with Python ML services, coordinated via ZooKeeper, and deployable on Kubernetes.

Project Structure

kernel/           - eBPF kernel programs (Aya framework)
userspace/        - Main Rust monitoring application
simple_ml_bridge/ - Python ML prediction service
scripts/          - Deployment, testing, and evaluation scripts
eval_data/        - Evaluation datasets and results

Quick Start

# Run collector with basic system monitoring
cargo run -- --zookeeper-connection localhost:2181 --cluster-id local --cpu --memory --network

# Run collector with all system monitors
cargo run -- --zookeeper-connection localhost:2181 --cluster-id local --all-system

# Run collector with eBPF tracing
cargo run -- --zookeeper-connection localhost:2181 --cluster-id local --ebpf-all

# Run collector with prediction enabled
cargo run -- --zookeeper-connection localhost:2181 --cluster-id local --all-system --prediction

# Run aggregator 
cargo run -- --zookeeper-connection localhost:2181 --cluster-id local --aggregator --influxdb-url http://localhost:8086

# Run aggregator with prediction enabled
cargo run -- --zookeeper-connection localhost:2181 --cluster-id local --aggregator --prediction --influxdb-url http://localhost:8086

Node Types

  • Collector (default) - Collecting system metrics and/or eBPF data, sends to aggregator
  • Aggregator - Processes telemetry data, stores in InfluxDB, predicts future metrics using ML service

Evaluation

The eval_data/ directory contains evaluation datasets covering:

  • eBPF overhead and observability measurements
  • Network usage prediction accuracy
  • Prediction utility comparison (no prediction vs. loaded model vs. live training)
  • Live training variance analysis
  • Chaos engineering resilience tests

License

GNU General Public License v3.0

About

No description or website provided.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages