twin/gatus

Automated developer-oriented status page with alerting and incident support

10,541 stars Go 11 components 21 connections

Developer-focused health monitoring dashboard with alerting and incident support

Configuration drives endpoint monitoring which triggers alerts and persists results to storage

Under the hood, the system uses 3 feedback loops, 2 data pools, 4 control points to manage its runtime behavior.

Structural Verdict

A 11-component dashboard with 21 connections. 235 files analyzed. Highly interconnected — components depend on each other heavily.

How Data Flows Through the System

Configuration drives endpoint monitoring which triggers alerts and persists results to storage

  1. Load Configuration — Parse YAML config defining endpoints and alert providers (config: endpoints)
  2. Initialize Monitoring — Start watchdog to periodically check configured endpoints (config: endpoints)
  3. Execute Health Checks — HTTP/ICMP/TCP/DNS requests to validate service health (config: endpoints)
  4. Evaluate Conditions — Check response against configured success/failure conditions (config: endpoints)
  5. Trigger Alerts — Send notifications via configured providers when thresholds exceeded (config: endpoints)
  6. Persist Results — Store check results and alert history in database
  7. Serve Dashboard — Present real-time status and historical data via web interface

System Behavior

How the system actually operates at runtime — where data accumulates, what loops, what waits, and what controls what.

Data Pools

Results Database (database)
Health check results, alert history, and endpoint status
Configuration Cache (in-memory)
Parsed endpoint definitions and alert provider configurations

Feedback Loops

Delays & Async Processing

Control Points

Technology Stack

Go (framework)
Core application runtime
Fiber v2 (framework)
HTTP web framework
SQLite (database)
Default database storage
PostgreSQL (database)
Alternative database backend
Prometheus (library)
Metrics collection and exposure
WebSockets (library)
Real-time dashboard updates
YAML (library)
Configuration file format
Docker (infra)
Container deployment

Key Components

Configuration

config.yaml (yaml)

Explore the interactive analysis

See the full architecture map, data flow, and code patterns visualization.

Analyze on CodeSea

Related Dashboard Repositories

Frequently Asked Questions

What is gatus used for?

Developer-focused health monitoring dashboard with alerting and incident support twin/gatus is a 11-component dashboard written in Go. Highly interconnected — components depend on each other heavily. The codebase contains 235 files.

How is gatus architected?

gatus is organized into 5 architecture layers: Configuration & Bootstrap, Monitoring Engine, Alerting System, Storage & Persistence, and 1 more. Highly interconnected — components depend on each other heavily. This layered structure enables tight integration between components.

How does data flow through gatus?

Data moves through 7 stages: Load Configuration → Initialize Monitoring → Execute Health Checks → Evaluate Conditions → Trigger Alerts → .... Configuration drives endpoint monitoring which triggers alerts and persists results to storage This pipeline design reflects a complex multi-stage processing system.

What technologies does gatus use?

The core stack includes Go (Core application runtime), Fiber v2 (HTTP web framework), SQLite (Default database storage), PostgreSQL (Alternative database backend), Prometheus (Metrics collection and exposure), WebSockets (Real-time dashboard updates), and 2 more. A focused set of dependencies that keeps the build manageable.

What system dynamics does gatus have?

gatus exhibits 2 data pools (Results Database, Configuration Cache), 3 feedback loops, 4 control points, 3 delays. The feedback loops handle polling and circuit-breaker. These runtime behaviors shape how the system responds to load, failures, and configuration changes.

What design patterns does gatus use?

5 design patterns detected: Provider Pattern, Configuration Validation, Override System, Graceful Shutdown, Test Mocking.

Analyzed on March 31, 2026 by CodeSea. Written by .