Skip to content

oslabs-beta/BottleNetes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

797 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
bottlenetes logo

Bottlenetes

A user-friendly platform to monitor, identify bottlenecks, and interact with your Kubernetes clusters.

Uncorking Kubernetes Bottlenecks & Insights, One Pod at a Time


โœจ๐Ÿ› ๏ธโœจ Tech Stack โœจ๐Ÿ› ๏ธโœจ

Written With ๐Ÿ› ๏ธ

JavaScript TypeScript HTML CSS

Frontend ๐ŸŽจ

React React Router Vite Tailwind CSS MUI Lucide Zustand

Backend ๐Ÿ–ฅ๏ธ

Node.js Express.js Axios CORS

Database ๐Ÿ›ข๏ธ

PostgreSQL Sequelize Supabase

DevOps & Infrastructure โš™๏ธ

Kubernetes Docker AWS EKS Minikube

Monitoring ๐Ÿ“Š

Prometheus PromQL Chart.js

Auth & Security ๐Ÿ”’

JWT Passport GitHub OAuth Google OAuth bcrypt

Tools & CI/CD ๐Ÿ› ๏ธ

GitHub Actions Shell Script Vercel Trello TS-Node Nodemon ESLint

AI ๐Ÿค–

OpenAI API


๐Ÿ“š Table of Contents ๐Ÿ“š


๐Ÿ“– About this Project ๐Ÿ“–

Bottlenetes is a productivity tool that helps you monitor, identify bottlenecks, and manage your Kubernetes clusters. It provides:

  • Realtime & Historical Monitoring: View the current and past status of pods and services on your cluster.

  • Intuitive Web UI: Restart pods, view logs, adjust replicas, and configure resource requests/limitsโ€”all from your browser!

  • Latency tracking: Integrated service mesh to track latency and help identify bottlenecks in your cluster.

Why Bottlenetes?

Managing Kubernetes can be time-consuming and often requires a suite of different tools. Bottlenetes consolidates these needs into a single UI, letting you manage cluster health, resources, logs, and performance data all under one roof. Say goodbye to the days of juggling multiple dashboards! โœจ


๐ŸŽฅ Demo ๐ŸŽฅ


โœจ Features โœจ

  • Real-time Metrics โฑ๏ธ: Monitor the CPU and memory usage of each pod in real time.
  • K8s Resource Management ๐Ÿค–: Debug, manage, scale, and remove workloads from a convenient UI.
  • Bottlenecks Identification โš ๏ธ: Track latency and service mesh metrics to quickly detect inefficiencies.
  • Security & Permissions ๐Ÿ”’: Manage user access for your dashboard.
  • AI Integration ๐Ÿค–: Enjoy automatic resource allocation recommendations powered by LLMs based on historical data.
  • And More ๐ŸŒฑ: Our feature set grows continuously based on community feedback.

๐Ÿš€ Getting Started ๐Ÿš€

๐Ÿ“ฆ Prerequisites ๐Ÿ“ฆ

  1. Docker Desktop
  1. Node.js
  1. Homebrew (for macOS)

๐Ÿ› ๏ธ Project Setup ๐Ÿ› ๏ธ

  1. Clone this repository In your terminal, run:
git clone https://github.com/oslabs-beta/BottleNetes.git
cd bottlenetes
  1. Create .env.production in the root directory
# Example fields (please update with your real values for each one)
OPENAI_API_KEY=sk-proj-123456789-...
SUPABASE_URI=postgresql://postgres.abcdefg:1233456789@aws-0-us-west-1.pooler.supabase.com:6543/postgres
SUPABASE_PASSWORD=123456789
SUPABASE_ANON_KEY=abcdefg.abcedfg.abcdefg123456789

SECRET_SESSION_KEY=abcdefg123456789

NODE_ENV=production

GITHUB_CLIENT_ID=abcdefg123456789
GITHUB_CLIENT_SECRET=abcdefg123456789
GITHUB_REDIRECT_URI=http://localhost:3000/oauth/github/callback

GOOGLE_CLIENT_ID=abcdefg123456789.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=abcdefg123456789
GOOGLE_REDIRECT_URI=http://localhost:3000/oauth/google/callback

FRONTEND_URL=http://localhost:4173/
  1. Run the Quickstart script

A quickstart script is provided for your convenience, automating much of the setup process (you can also follow the manual setup instructions here).

  • Make the quickstart script executable by running in your terminal:
chmod +x QUICKSTART.sh
  • Execute the script by running:
./QUICKSTART.sh

If you are running this script for the first time, select "n" when prompted about skipping dependency installations, so everything is installed correctly.

Towards the end, youโ€™ll be asked if you want to generate fake traffic to test latency for the demo app. Choose "y" if you want traffic logs, or "n" to skip.

  1. Access Bottlenetes

Once the script finishes, it will:

  • Install needed dependencies.
  • Spin up a local Kubernetes cluster.
  • Deploy a demo application.
  • Launch your default browser to open both the demo app and the Bottlenetes UI.

If your browser doesnโ€™t open automatically, navigate to http://localhost:4173/ to begin using Bottlenetes!

๐ŸŒ Environment Variables ๐ŸŒ

A quick overview of the fields in your .env.production file:

  • OPENAI_API_KEY For GPT-based services, if you leverage AI integrations.

  • SUPABASE_URI A PostgreSQL connection string provided by Supabase.

  • SUPABASE_PASSWORD The database password for your Supabase PostgreSQL instance.

  • SUPABASE_ANON_KEY The anon/public key from Supabase for client-side APIs.

  • SECRET_SESSION_KEY A secret key used to secure session data, cookies, tokens, etc.

  • NODE_ENV Typically set to "production" for a deployed environment.

  • GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET OAuth credentials for GitHub login and callbacks.

  • GITHUB_REDIRECT_URI URL to redirect to after successful GitHub authentication.

  • GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET OAuth credentials for Google login.

  • GOOGLE_REDIRECT_URI URL to redirect to after successful Google authentication.

  • FRONTEND_URL The URL hosting your frontend, e.g., http://localhost:4173/.

๐Ÿ› ๏ธManual Setup๐Ÿ› ๏ธ

If you prefer a manual setup or want to customize each step, please follow:

  • this page for the initial manual setup.
  • and this page for installing service mesh for latency tracking.

โ˜๏ธ AWS Integration โ˜๏ธ

If you want to make Bottlenetes work with your AWS EKS cluster, please follow the instructions in this page.

๐ŸŒŸ Roadmap Ahead ๐ŸŒŸ

Weโ€™re continuously evolving Bottlenetes. Some upcoming items on our to-do list include:

  • AI-Driven Auto-scaling ๐Ÿค–: Leverage historical resource usage to scale clusters automatically.
  • AI Agent Automation ๐Ÿค–: AI agent to implement customized recommendations for resource allocation.
  • Deeper EKS & Istio Integration โ˜๏ธ: Enhance multi-cloud and service mesh functionalities.
  • Ephemeral Pods ๐Ÿ› ๏ธ: Create and inspect ephemeral pods on-the-fly for enhanced debugging.
  • UI/UX Refresh ๐ŸŽจ: Redesign dashboards for better clarity and aesthetics.

๐Ÿ“ Contribution Guidelines ๐Ÿ“

We โค๏ธ contributions from the community! Hereโ€™s how to get involved:

  1. Fork the Repo Click the "Fork" button at the top-right corner of this page.

  2. Create a Feature Branch

    git checkout -b feature/yourNewFeatureName
    
  3. Implement Your Feature Add your code, tests, or documentation.

  4. Commit Your Changes

    git commit -m "Added [your-new-feature-description]"
  5. Push to Your Branch

    git push origin feature/yourNewFeatureName
  6. Create a Pull Request Open a PR to the dev branch (unless otherwise specified). Our team will review and, once approved, merge it in!

๐ŸŒฑ Contributors ๐ŸŒฑ

A huge ๐ŸŽ‰ thank you ๐ŸŽ‰ to all our contributors โ€” past, present, and future! ๐ŸŒป

๐Ÿ“„ License ๐Ÿ“„

Distributed under the MIT License. Please see LICENSE for more information.

If you enjoy Bottlenetes, please drop us a โญ on GitHub, share with your dev circle, and help our community grow! ๐Ÿ™Œ

๐Ÿค Connect with Us ๐Ÿค

LinkedIn

ProductHunt

About

A web-based Kubernetes dashboard that streamlines resource allocation, DevOps management, security monitoring, and pod diagnostics. Harness AI-driven insights, fleet-wide heatmaps, and real-time/historical data analysis to help teams optimize performance and scale effortlessly.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors