Kafka-powered ingestion. TimescaleDB + Redis metrics. Intelligent alerting. Live dashboards. One docker compose up.
Docs · Issues · Discussions · Quick Start
Every company that scales past a handful of services needs event monitoring. The options today are either expensive SaaS platforms where you hand over your data, or stitching together 5+ open-source tools yourself.
Eventara is a single, self-hosted platform that handles ingestion, streaming, real-time analytics, threshold alerting, and live dashboards out of the box. You keep your data. You control the pipeline. You deploy with one command.
Ingestion -- REST API accepts events from any service, language, or platform. Events flow into Kafka for ordered, durable, high-throughput delivery.
Real-time analytics -- Redis sliding-window aggregation for sub-second metrics. TimescaleDB hypertables for time-series storage with automatic compression and continuous aggregates. Metrics roll up from Redis to TimescaleDB every 60 seconds.
4 threshold rule types -- evaluated in real time by a Java handler engine:
| Rule Type | What it does |
|---|---|
| Simple Threshold | Fire when a metric crosses a boundary (error rate > 10%) |
| Composite | AND/OR logic across multiple conditions (error rate > 10% AND latency > 500ms) |
| Event Ratio | Track ratios between event types (payment.failed / payment.total > 0.05) |
| Rate of Change | Detect spikes and drops (throughput fell 30% in 5 minutes) |
Drools is used under the hood for DRL generation, syntax validation, and the rule-testing API -- but the hot-path evaluation is pure Java for maximum throughput.
Adaptive evaluation -- the engine adjusts its polling interval based on traffic volume. 30s at idle, 100ms during bursts. No wasted compute when things are quiet, instant sensitivity when they are not.
Live dashboard -- React 19 + Vite + Chart.js with WebSocket push updates every second. Rule editor with visual composite builder, ratio config, and source/event filters.
Webhook notifications -- alert channels with webhook delivery when rules fire.
git clone https://github.com/tusharkhatriofficial/eventara.git
cd eventara
docker compose up --build -dFor a VM-style deploy using a Docker image, see DEPLOYMENT.md.
| Service | URL |
|---|---|
| Dashboard | http://localhost:5173 |
| API | http://localhost:8080 |
| Swagger | http://localhost:8080/swagger-ui.html |
| Kafka UI | http://localhost:8090 |
curl -X POST http://localhost:8080/api/v1/events \
-H "Content-Type: application/json" \
-d '{
"eventType": "payment.failed",
"source": "payment-service",
"userId": "user_123",
"severity": "ERROR"
}'Open the dashboard. Events appear in real time.
Your Services --> REST API (Spring Boot) --> Kafka --> Redis (real-time metrics)
| |
v v
TimescaleDB Drools Engine
| |
v v
Flyway Schema WebSocket (STOMP)
|
v
Dashboard (React + Vite)
Core stack in one Docker Compose file. Full stack in 30 seconds.
| Layer | Technology |
|---|---|
| Runtime | Java 21, Spring Boot 3.5.7 |
| Messaging | Apache Kafka (KRaft mode; no Zookeeper) |
| Time-series | TimescaleDB (PostgreSQL 14) |
| Cache / Metrics | Redis 7 |
| Rule Engine | Java handler pattern (Drools for DRL validation) |
| Migrations | Flyway (7 migrations) |
| Frontend | React 19, Vite 7, Tailwind CSS, Chart.js |
| Real-time | WebSocket via STOMP + SockJS |
| API Docs | SpringDoc OpenAPI 2.7 |
| Deploy | Docker Compose |
# Ingest event
POST /api/v1/events
# Get metrics
GET /api/v1/metrics
# Query events by type
GET /api/v1/events/type/{type}?page=0&size=10
# Alert rules CRUD
POST /api/v1/rules
GET /api/v1/rules
PUT /api/v1/rules/{id}
DELETE /api/v1/rules/{id}
# Test rule evaluation
POST /api/v1/rules/{id}/testFull API docs at https://www.eventara.co/introduction.
- Event ingestion + Kafka pipeline
- Real-time dashboard with WebSocket
- TimescaleDB time-series storage
- Redis distributed metrics
- 4 threshold rule types (Simple, Composite, Ratio, Rate of Change)
- Adaptive evaluation engine
- Webhook notification channel
- Multi-channel alerts (Slack, PagerDuty, email)
- gRPC ingestion endpoint
- Anomaly detection and forecasting rules
- Kubernetes Helm chart
- Authentication and RBAC
Contributions welcome. Whether you are learning Spring Boot and Kafka, or you want a self-hosted monitoring platform for your team.
# Backend
mvn spring-boot:run
# Frontend
cd eventara-dashboard && npm install && npm run dev- Fork and create a branch
- Make your changes
- Open a Pull Request
Look for issues tagged good first issue to get started.
Apache 2.0. See LICENSE.
Documentation · Issues · Discussions
Built by Tushar Khatri
