An Apache Kafka prototyping and monitoring tool.

Overview


PRs Welcome Release: 0.0.1 License: MIT Contributions Welcome Github stars

Design and scale a real-time streaming data pipeline at the click of a button.


evaStudio (beta) is a web GUI and testing playground for quickly designing and scaling your event-driven data architecture with Kafka brokers and Zookeeper. Designed with data scientists in mind, EvaStudio makes it easier to develop, orchestrate, experiment, and monitor machine learning workflows at scale, so you can focus on analytical challenges instead of infrastructure.


Getting Started

To install our web application locally, you will need Docker, Node Package Manager, Java JDK 11 and Maven. Clone this repository, and run npm install at the root of the directory. Then run mvn spring-boot:run to start the "java_backend" microservice.

Features

  • Design your pipeline using a drag-and-drop tool for extracting, transforming, and loading data in and out of Kafka messaging brokers.
  • Source streaming data from a CSV, SQL database, or HTTP/API, to Apache Spark or Jupyter Notebook for analysis.
  • Manage topics and messages directly inside our web GUI.
  • Monitor cluster health, and check performance metrics for load, latency, throughput, disk usage, and messages and bytes in and out per second, in order to test and scale your data architecture before loading into production.

You can also connect your existing Kafka clusters on AWS, provided that you follow our setup instructions in our documentation for Prometheus, JMX, and Grafana installation.

Interface

1. Drag-and-drop data pipeline designer

2. Stream data via HTTP / API or by uploading a CSV to run through Kafka clusters

3. Monitor cluster health. Manage brokers, topics, partitions, and messages.

4. Monitor system metrics: fetch response latency, throughput (messages & bytes per second), CPU and JVM usage, Zookeeper failures.

Application Architecture and Logic

evaStudio is a browser-based application built using ReactJs and Node/Express, with a Java Spring Boot microservice to interface with Kafka servers and Zookeeper. In our beta version, we are exposing data endpoints on Kafka clusters using Prometheus and JMX, and displaying analytics with Grafana. In iteration, we plan to make loading and real-time updating of these panels faster using D3. We use React Flow for a drag-and-drop GUI for sketching out a data pipeline. We connect data sources and sinks to a user-selected number of Kafka servers locally, to be spun up with Docker.

Currently, we allow for data to be imported as a CSV and "mock-streamed" for real-time analytics. We also connect to the PostgreSQL database, and allow for data to be streamed from an HTTP or API endpoint. We provide the option of Jupyter Hub or Spark for analytics. Future iterations will allow for more data transformations, mapping/reducing/filtering, and connections to more microservices through the GUI tool that enable easier deployment of machine learning models and applications. We will also be making our application available on DockerHub.

Built With

  • Apache Kafka v3.2.0
  • Spring for Apache Kafka v2.8.9
  • Java Spring Boot v2.6.9 with Spring Web Services v3.1.1
  • Apache Maven v3.8.6 requiring Java SE Development Kit v11.0.16
  • ReactJS v17
  • Redux 4.1
  • React Router 6.3
  • React Flow 10.3.8
  • NodeJS with Express v4.16
  • Typescript 4.7
  • Tailwind.css v3.1
  • PostgreSQL v14
  • Docker 20.10
  • Prometheus & JMX Exporter v0.17.0
  • Grafana v9.0
  • Material UI v5.9 & v5.8
  • JUnit, Embedded Kafka & Mockito for unit & integration testing
  • Amazon Web Services & Github Actions for CI/CD

DOCUMENTATION:

  • Next.js with Vercel

Core Team


Andres Chaparro
GitHub
LinkedIn

Kaitlin Zhang
GitHub
LinkedIn

Maxwell Shick
GitHub
LinkedIn

Perla Royer
GitHub
LinkedIn

Sattwik Biswal
GitHub
LinkedIn

With Special Thanks To:

Our advisors Mia Zeng and Brandon McKallagat

You might also like...

A fancy self-hosted monitoring tool

A fancy self-hosted monitoring tool

Uptime Kuma It is a self-hosted monitoring tool like "Uptime Robot". Features Monitoring uptime for HTTP(s) / TCP / Ping. Fancy, Reactive, Fast UI/UX.

Jan 3, 2023

A modern uptime monitoring tool & status page based on Supabase.

A modern uptime monitoring tool & status page based on Supabase.

StatusBase (Supabase) Uptime monitoring tool & beautiful status pages Powered by Supabase! Free • Open Source • Notification View Demo · Report Bug ·

Dec 3, 2022

Apache ECharts Panel plugin for Grafana

Apache ECharts Panel plugin for Grafana

Apache ECharts Panel plugin for Grafana Introduction The ECharts Panel is a plugin for Grafana that allows to visualize Apache ECharts on your Grafana

Dec 23, 2022

Uptime monitoring RESTful API server that allows authenticated users to monitor URLs, and get detailed uptime reports about their availability, average response time, and total uptime/downtime.

Uptime Monitoring API Uptime monitoring RESTful API server that allows authenticated users to monitor URLs, and get detailed uptime reports about thei

Jun 14, 2022

A web watermark SDK, support: custom watermark content and style, watermark encryption and decryption, watermark anomaly monitoring, etc.

A web watermark SDK, support: custom watermark content and style, watermark encryption and decryption, watermark anomaly monitoring, etc.

English | 简体中文 1. What is l-watermark? l-watermark is a web watermark SDK based on TS, which contains: Can cover more than scene watermarking method A

Dec 10, 2022

Website that keeps monitoring status of WAX account and TLM balance from alienworlds

Website that keeps monitoring status of WAX account and TLM balance from alienworlds

✔️ Server is now live! [21-5-2021 10:30 GMT+7] 📃 Updates on Server ‼️ Bandwidth limit reaches on morning of 21 May 2021 (+7) I want to thank you to e

Nov 24, 2022

A Javascript based web application for monitoring, analytics and notifications

JELLYWATCH Jellywatch is a javascript web application for monitoring*, analytics** and notifications** inspired by tautulli for Jellyfin/Emby Media Se

Dec 28, 2022

1kb js library contains development debugging, error monitoring and reporting, user problem localization features

1kb js library contains development debugging, error monitoring and reporting, user problem localization features

1kb js library contains development debugging, error monitoring and reporting, user problem localization features

Dec 22, 2022

A dockerized uptime monitoring RESTful API server that allows authenticated users to monitor URLs

A dockerized uptime monitoring RESTful API server that allows authenticated users to monitor URLs, and get detailed uptime reports about their availability, average response time, and total uptime/downtime.

Oct 7, 2022
Comments
  • Kaitlin testing junit

    Kaitlin testing junit

    -- testing & error-handling --

    Provisioned default Kafka broker/zookeeper port setup in application.yml Separated config for dev and production environments in application.yml Added error handling methods Added integration test with JUnit and embeddedKafka

    Co-authored-by: Perla [email protected] Co-authored-by: Kaitlin [email protected]

    opened by kaizengrowth 0
Owner
OSLabs Beta
OSLabs Beta
Changd is a open source web monitoring application for monitoring visual site changes using screenshots, XPath's or API's.

Changd is a open source web monitoring application and a free alternative to ChangeTower.com, Hexowatch.com, and other SaaS-based solutions. Changd ca

Paul Aschmann 110 Jan 3, 2023
Use real-time computing technology and web technology to build a big data Kanban l to solve the problem. Among them, practical technologies include MySQL, Kafka, Flink, Redis, Flask and Echarts

实时计算(English Version) 运用实时计算技术、Web 技术构建一个大数据看板来解决问题。其中实用技术包括Mysql、Kafka、Flink、Redis、Flask和Echarts 目录 1.问题需求 2.方案分析 3.安装环境 4.环境启动命令和运行代码的方法 5.代码目录结构说明

Serendipity 2 Jan 8, 2022
🐚 Kafka on the Serverless Shore

?? Kafka on the Serverless Shore Experimenting the Upstash's Kafka Serverless. Read Kafka on the Serverless Shore: Building event-driven applications

Ibrahim Cesar 4 Nov 2, 2022
Kafka 0.8.0 broker implementation on top of Cloudflare Workers

Kafka Worker A Kafka 0.8.0 broker implementation on top of Cloudflare Workers and Durable Objects. This broker supports 4 client-facing APIs: Produce

Max Peterson 129 Dec 11, 2022
⚡⚙️ Fast prototyping with template engines and integrated frontend tools. Vituum is a small wrapper around Vite.

⚡ ⚙️ Vituum Still in early development. Fast prototyping with template engines and integrated frontend tools ⚡ Vite integrated ??️ Fast prototyping ??

Vituum 103 Jan 3, 2023
Concept Art/Prototyping faster with AIDA (AIDAdiffusion), "All-In-one" app for running Stable Diffusion on windows PC locally.

AIDAdiffusion Concept Art/Prototyping faster with ourbunka internal tool AIDA (AIDAdiffusion), "All-In-one" app for running Stable Diffusion on window

null 7 Nov 23, 2022
Palaemon is an open-source developer tool for monitoring health and resource metrics of Kubernetes clusters and analyzing Out of Memory (OOMKill) errors

Palaemon ?? ?? An Electron based developer tool for Kubernetes cluster monitoring and error analysis Palaemon is a Greek, child sea-god who came to ai

OSLabs Beta 99 Dec 28, 2022
An affordable and easy-to-use monitoring tool for your AWS serverless applications.

AWS Serverless Applications Monitoring Tool Table of Contents Motivation for Project Getting Started AWS End Users Installation and Setup Lambda Metri

OSLabs Beta 54 Sep 21, 2022
awsrun 189 Jan 3, 2023
A Kubernetes monitoring tool to visualize large-scale activity and real-time comprehensive metrics within your cluster.

Armada A light-weight Kubernetes health monitoring tool. Summary Armada is an open-source tool for monitoring the health of your Kubernetes cluster. I

OSLabs Beta 81 Nov 2, 2022