Giter VIP home page Giter VIP logo

clusterwatch's Introduction

ClusterWatch

ClusterWatch is an open-source tool which simplifies and provides an all-in-one hub for Kubernetes cluster monitoring. It reduces the need for DevOps engineers to configure their own Kubernetes monitoring stacks, and automates the process so you can get vital cluster information from various different tools, all in one place, in just a few seconds.

ClusterWatch provides a clear visualization of Kubernetes cluster architecture with detailed descriptions and stats for components within your clusters. ClusterWatch also offers real time metrics data, presented via Grafana charts, and built-in support for Prometheus and alert managing.

Features

  • Cluster visualization : The app uses the Vis.js library to create an intuitive cluster visualiation tool, making it easy for users to understand their cluster's topology and access key details about each component without running a single kubectl command.

  • User-friendly interface : An intuitive and user-friendly interface makes it easy for users to digest relevant cluster data.

  • Prometheus: Built-in Prometheus integration allows users to execute queries and easily monitor cluster performance without any need for additional configuration.

  • Grafana integration: Zero-setup Grafana integration provides users access to insightful visualizations of valuable cluster data.

  • Redis: Fast in-memory caching stores API keys and other sensitive data enabling near instantaneous access times and increased security against session hijacking. This approach ensures only authorized users have access to the cluster data.

  • Alert Manager: Users can configure alerts directly from ClusterWatch in order to be notified of key cluster events.

  • One-click setup : You

Getting Started

  1. Clone the repo: git clone https://github.com/oslabs-beta/ClusterWatch.git

  2. Install dependencies: npm install

  3. Ensure that you install redis, if you don't already have it installed on your machine.

  4. Make sure you have your kubernetes cluster up and running. If you'd like to set up a cluster to test the application, install docker and minikube or kind to get started.

  5. Start the application: npm start

  6. Navigate to: http://localhost:3000

  7. Once launched, you'll be redirected to our setup page:

  • If you do not have the prometheus-kube-stack helm chart, (which inlcudes kube-state-metrics, node-exporter, and grafana), utilize the setup button to download, update, and install the repos. Note: this step can take a moment, don't worry.

  • If you have grafana, but have not used our application previously, hit the grafana setup button to apply our custom grafana configurations.

  • If you have used our application before, press the forward ports button and monitor away!

Keep in mind that the application utilizes local ports which must not be occupied on your machine:

  • 3000: server
  • 8080: application page
  • 3001: grafana
  • 9090: prometheus
  • 9093: alert manager
  • 6379: redis

Usage Guidelines

Overview

The first page of the application will provide a visual overview of your kubernetes cluster. The visualization will show the control plane, namespaces, pods, services, deployments and nodes. Hovering over the components will display a modal displaying information relevant to that specific object.

Metrics

The metrics section of the application provides grafana dashboards for various aspects of your kubernetes cluster. This includes:

  • Kubernetes API server: API server request rates/latency, etcd request cache hit rates/latency, and workqueue latencies.
  • Nodes: CPU usage, load average, memory usage, disk I/O, disk usage, network received, network transmitted.
  • Kubelet: Operation and error rates, pod start rates and durations, plus more.
  • USE methods: Utilization, saturation, and errors for the cluster and nodes.
  • CoreDNS: requests, responses, and cache sizes/hits for DNS server.

Prometheus Query

Here you can access the Prometheus console from within the app to run customized queries and create graphs based on the data.

Alert Manager

Here you can view all the active alerts that are set up for your cluster.

Custom Alerts

Configure your own alerts without having to create YAML files.

Open Source

This product is open source, being actively maintained, and open to contributions. Please inform us of any features or bugs you'd like to see addressed.

Testing:

This application utilizes, jest, supertest, react testing library, and cypress for testing.

To run unit and integration tests, execute the following command in your terminal: npm run test

To run end-to-end tests, execute: npm run cypress

Contributing: If you'd like to contribute to this project:

  1. Clone repo and create a new branch: git checkout https://github.com/ -b name_for_new_branch
  2. Make changes and test
  3. Submit a pull request with clear descriptions of changes

Roadmap: โœ… = Ready to use โณ = In progress ๐Ÿ™๐Ÿป = Looking for contributors

Feature Status
Add Prometheus integration โœ…
Add Grafana Integration โœ…
Add Cluster visualizer โœ…
Add alerts customization โœ…
Add Jest testing โœ…
Add End-to-End cypress testing โœ…
Transform codebase into typescript โœ…
Convert HTTP fetch requests to GraphQL requests โณ
Replace Prometheus with VictoriaMetrics ๐Ÿ™๐Ÿป
Add Authorization ๐Ÿ™๐Ÿป
Add persiting metrics logs ๐Ÿ™๐Ÿป

Contributors


Sheng li

Mushrath Choudhury

Kevin Hendrix

Jordy Gonzalez

Publications

Check out our medium article: https://medium.com/@shengli356/clusterwatch-official-launch-8c77885de58b

clusterwatch's People

Contributors

jordygonza avatar khendrix12 avatar mushrathc avatar shengli356 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.