Enabling developers to effectively monitor and analyze distributed applications for rapid and efficient problem solving
Written in Rust and eBPF for minimum overhead and maximum performance
-
Tettamanti Lorenzo 📧 [email protected]
-
Lorenzo Bradanini 📧 [email protected]
CortexBrain is an ambitious open-source project designed to build an intelligent, lightweight, and highly efficient monitoring platform for distributed cloud and hybrid (cloud–edge) workflows. By leveraging the power of eBPF, CortexBrain can successfully manage networking and observability in a distributed cluster, limiting resource waste and improving overall performance.
Comprehensive information about CortexBrain’s core architecture, installation, and practical applications is available in the Official Documentation and on the CortexFlow blog.
-
🔎 Deeper Insights: CortexBrain integrates eBPF with the KubeAPI to produce deeper kernel-level insights of your system
-
🚁 No sidecar overhead: Sidecarless architecture that eliminates memory waste and processing overhead
-
🔒 Safety: The linux BPF Verifier ensures that all the programs are safe to run.A JIT compiler converts bytecode into native CPU instructions for optimal execution efficiency. CortexBrain can trace network traffic such as ingress (incoming) and egress (outgoing) TCP/UDP connections and apply policies directly at kernel level by attaching the programs in different hooks such as TC (traffic control) and XDP hooks. All the intercepted events are successfully propagated in the user space thanks to BPF maps.
Our current development efforts are dedicated to the following key features:
- 🌐 Open Telemetry Integration: Integrating the open telemetry stack to our metrics to produce industry standard metrics formats
- 📈 Metrics enhancement: Expanding the current metrics landscape to provide deeper system understanding
- 📊 DashBoard Integration: Delivering beautiful user centered data visualization from the collected metrics
- 📡 [Experimental] Cloud-Edge Multi-Cluster Integration: Enabling orchestration between hybrid cloud and edge environments
- 🧪[Experimental] GPU Observability: Introducing GPU tracing and monitoring capabilities to efficiently support AI/ML applications
⚠️ CortexBrain is still in its development stages, so you can expect some bugs. Contributions and feedback are highly appreciated to help improve the project!
CortexBrain provides a simple installation for users thanks to his command line interface. You can find the installation guide in the official documentation
cargo install cortexflow-clicfcli install cortexflowcfcli service listDo you think the project is missing something? Contributing is the best way to show your skills and leave your mark on a project. If you know DevOps/Kubernetes, networking, security, or you enjoy maintaining a repository, please write an email to [email protected]
| Role | Skills | Tasks | Related Issues and Milestones |
|---|---|---|---|
| CortexBrain Core Developer | - Kubernetes - Networks - Rust programming language |
- Work alongside us to build and optimize the core functionalities (Client,DNS,Proxy,Telemetry,etc..) |
- Rust - Core - eBPF |
| CortexBrain Dashboard Developer | - React - Frontend Development - Javascript/TypeScript |
- Work alongside us to design and improve the dashboard |
Javascript |
| General Mantainers | - Github - Practical organition - Documentation |
- Keep the repository organized and clean - Write/Update documentation - Spot typos in the repository |
- Documentation - question |
| Code Reviewers/Testers | - Rust - Javascript/TypeScript - Kubernetes - Docker |
- Review code and suggest changes/optimizations - Write tests for CI/CD |
Code refactoring |
We welcome contributions from the community! To contribute to the project, please follow these steps:
- Fork the repository.
- Check out Contributing Best Practices
- Create a new branch for your feature (
git checkout -b feature/feature-name). - Submit a Pull Request with a detailed explanation of your changes.
If you would like to contribute a new feature, we ask you to open a discussion before submitting a PR. This is to ensure that all new features align with the project's goals and to avoid overlapping work or conflicting views.
Please initiate a discussion in the GitHub Discussions section where we can collectively review, refine, and approve your idea before you begin implementation. Pull Requests for new features that have not been discussed beforehand may be declined to maintain project coherence and ensure alignment with the broader roadmap.
By collaborating in this manner, we can maintain clarity and consistency, ensuring that all contributors are working towards the same objectives. Thank you for your understanding and contributions!