A reactive health monitoring platform
Glenn is a reactive health monitoring platform that continuously checks the availability and performance of your applications. Named after the dedicated healer from the light novel "Monster Girl Doctor," Glenn watches over your digital ecosystem with the same care and attention.
Glenn is built with a modern reactive stack:
Clone the repository
git clone https://github.com/AZIRARM/Glenn.git
cd glenn
Configure the database
Create a PostgreSQL database:
CREATE DATABASE glenn;
Configure environment variables
Create a .env file at the project root:
POSTGRES_URL=jdbc:postgresql://localhost:5432/glenn
POSTGRES_REACTIVE_URL=r2dbc:postgresql://localhost:5432/glenn
POSTGRES_USERNAME=postgres
POSTGRES_PWD=yourpassword
Build the application
mvn clean package
Run the application
mvn spring-boot:run
Or with environment variables:
set -a; source .env; set +a; mvn spring-boot:run
Access the dashboard
Open your browser and navigate to http://localhost:1080
Click the "Details" button on any application card to access:
Click the pencil icon (āļø) on an application card or in the details view to:
| Property | Description | Default |
|---|---|---|
monitoring.interval | Interval between health checks (ms) | 30000 |
monitoring.timeout | HTTP request timeout (ms) | 5000 |
server.port | Web server port | 1080 |
The monitoring service automatically:
| Component | Technology | Purpose |
|---|---|---|
| Core Framework | Spring Boot 3.3.2 | Application foundation |
| Reactive Web | Spring WebFlux | Non-blocking HTTP requests |
| Database | PostgreSQL | Data persistence |
| Reactive DB | R2DBC | Non-blocking database access |
| Migrations | Liquibase | Database version control |
| Template Engine | Thymeleaf | Server-side HTML rendering |
| Frontend | Bootstrap 5 + Chart.js | UI components and charts |
| Real-time | SSE (Server-Sent Events) | Live dashboard updates |
| Build Tool | Maven | Dependency management |
glenn/
āāā src/
ā āāā main/
ā ā āāā java/org/azirar/glenn/
ā ā ā āāā endpoints/ # Web controllers
ā ā ā āāā handlers/ # Business logic
ā ā ā āāā models/ # Domain entities
ā ā ā āāā repositories/ # Data access
ā ā āāā resources/
ā ā āāā db/changelog/ # Liquibase migrations
ā ā āāā static/ # CSS, JS, images
ā ā āāā templates/ # Thymeleaf templates
ā ā āāā application.yml # Application config
ā āāā test/ # Unit tests
āāā pom.xml # Maven configuration
āāā README.md # This file
Glenn is named after the compassionate healer from the light novel and anime "Monster Girl Doctor." Just as Glenn treats and cares for monster girls with dedication and expertise, this platform monitors and cares for your applications, ensuring they stay healthy and performant.
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)This project is licensed under the GNU GENERAL PUBLIC LICENSE - see the LICENSE file for details.
| Feature | Glenn | Uptime Kuma | Gatus | UptimeRobot |
|---|---|---|---|---|
| Modern Tech Stack | ā Spring WebFlux/R2DBC (Reactive) | ā Node.js (Blocking) | ā Go (Efficient) | ā Legacy PHP |
| Reactive Architecture | ā Non-blocking, High Concurrency | ā Synchronous I/O | ā Lightweight | ā Traditional |
| Database | ā PostgreSQL (Enterprise-grade) | ā SQLite (File-based) | ā No persistence | ā Cloud |
| Stream Monitoring | ā PostgreSQL, MySQL, MongoDB, SSH, Redis, RabbitMQ | ā HTTP/HTTPS only | ā HTTP/HTTPS only | ā HTTP/HTTPS only |
| Real-time Updates | ā SSE (Server-Sent Events) | ā WebSockets | ā Polling | ā Polling |
| History Retention | ā Full SQL database (years) | ā File-based (limited) | ā In-memory only | ā ļø Limited (paid) |
| Self-hosted | ā Docker, easy setup | ā Docker | ā Single binary | ā SaaS only |
| Category Filtering | ā Yes | ā Yes | ā No | ā Yes |
| Response Time Tracking | ā Detailed per check | ā Basic | ā Basic | ā Basic |
| Aspect | Glenn | Others |
|---|---|---|
| Tech Stack Familiarity | ā Java 21, Spring Ecosystem | ā Node.js, Go, PHP |
| Code Customization | ā Full Java control | ā Limited by design |
| Integration | ā Easy with Java services | ā ļø Requires adapters |
| Learning Curve | ā Natural for Java devs | ā ļø New languages/frameworks |
| Metric | Glenn | Uptime Kuma | Gatus | UptimeRobot |
|---|---|---|---|---|
| Architecture | Reactive, non-blocking | Event-loop (Node.js) | Concurrent (Go) | Traditional |
| Database | PostgreSQL connection pool | SQLite (single-threaded) | None | Cloud |
| Concurrent checks | ā” Excellent | ā ļø Moderate | ā Good | ā Excellent |
| Memory usage | ~150-250MB | ~50-100MB | ~10-20MB | N/A |
Unlike competitors limited to HTTP/HTTPS, Glenn monitors:
| Scenario | Glenn | Other Solutions |
|---|---|---|
| Java/Spring ecosystem | ā Perfect fit | ā ļø Foreign stack |
| Mixed protocols (HTTP + DB) | ā One tool for everything | ā Need multiple tools |
| Long-term historical analysis | ā SQL-powered | ā ļø Limited retention |
| High-frequency checks | ā Reactive architecture | ā ļø May struggle |
| Self-hosted with PostgreSQL | ā Native support | ā ļø SQLite limitations |
| Aspect | Glenn's Advantage |
|---|---|
| Technology | Most modern stack (Spring WebFlux + R2DBC) |
| Protocol Support | Widest (HTTP + Databases + SSH + Message queues) |
| Data Persistence | Enterprise-grade (PostgreSQL) |
| Developer Experience | Best for Java/Spring developers |
| Architecture | Truly reactive, non-blocking |
| Customization | Full control via Java code |
| Coming Soon | Status |
|---|---|
| Notifications (Slack, Discord, Email) | š§ Planned |
| Public Status Pages | š§ Planned |
| SSL Certificate Monitoring | š§ Planned |
| REST API | š§ Planned |
| Authentication & Multi-user | š§ Planned |
Glenn isn't just another uptime monitor. It's a modern, reactive health monitoring platform built for Java developers who need more than just HTTP checks.
Project Link: Glenn on Githubā
Content type
Image
Digest
sha256:1b369b4f4ā¦
Size
133.5 MB
Last updated
8 months ago
docker pull azirar/glenn