Git Product home page Git Product logo

gowtham1729 / stream-top Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 71 KB

Stream-Top is a real-time system resource monitoring tool that utilizes Apache Kafka to stream resource utilization data, enabling live visualization of resource usage from distributed systems. (Kafka Learning Project)

License: MIT License

Jupyter Notebook 97.41% Python 2.59%
apache-kafka confluent-kafka docker docker-compose jupyter-notebook learning-by-doing plotly-dash psutil python real-time-monitoring mini-project kafka-examples

stream-top's Introduction

Stream-Top

Stream-Top is a learning project primarily focused on understanding and utilizing Apache Kafka through a real-world mini project. The idea for this project was inspired by educative.io's projects. It serves as a real-time system resource monitoring tool that uses Apache Kafka for data streaming, with the current capability to monitor CPU usage.

Project Purpose and Scope

This project is intended for learning purposes, specifically for gaining a practical understanding of Apache Kafka. While the current iteration of the project supports CPU usage monitoring, there is potential to expand into other system resources in the future as part of the learning process.

By trying this project, you can gain hands-on experience with few of the important technologies and concepts such as Apache Kafka, Docker, Python, Plotly Dash, and Jupyter Notebooks. This project offers a tangible use-case to apply these technologies, making the learning process more engaging and effective.

Getting Started

Follow the steps below to set up the project for development and testing:

Prerequisites

Ensure you have the following installed on your local machine:

  • Docker
  • Python 3

Installing

  1. Clone the repository to your local machine.
git clone https://github.com/Gowtham1729/stream-top.git
cd stream-top
  1. Start the Kafka broker and create the Kafka topic.
docker compose up -d
docker exec broker kafka-topics --bootstrap-server broker:9092 --create --topic top-events
  1. Install Python dependencies.
pip install -r requirements.txt
  1. Start the producer which will start sending CPU usage information to the Kafka topic.
python producer.py
  1. Open the consumer.ipynb notebook in Jupyter and run it to start receiving and visualizing the CPU usage data.

Usage

Stream-Top can be used to monitor the CPU usage of each core in real-time. The producer can be run on any machine to send CPU usage data to the Kafka topic, and the consumer notebook can be run anywhere with access to the Kafka topic to visualize the data.

Future Scope

As part of the learning journey, future enhancements may include expanding the monitoring capabilities to other system resources such as memory usage, disk I/O, network traffic, etc.

Acknowledgments

This project idea was inspired by the projects on educative.io. Special thanks to:

  • The psutil library for providing system information
  • Apache Kafka for data streaming capabilities
  • Plotly Dash for visualization support

stream-top's People

Contributors

gowtham1729 avatar

Stargazers

 avatar

Watchers

 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.