GitHub

Project Description: Gatus

What is the project about?

Gatus is a developer-oriented health dashboard. It allows monitoring of services using various protocols (HTTP, ICMP, TCP, DNS) and evaluating the results based on configurable conditions.

What problem does it solve?

It solves the problem of proactive service monitoring. Unlike traditional monitoring solutions that rely on existing traffic, Gatus actively checks the health of services, potentially alerting users to issues before clients are impacted. It fills the gap where metric-based monitoring might fail (e.g., a load balancer outage where no traffic reaches the application).

What are the features of the project?

  • Flexible Health Checks: Conditions can be set on status codes, response times, response bodies, IP addresses, and certificate expiration.
  • User Acceptance Tests: Can be used to create automated user acceptance tests.
  • Easy Configuration: Simple and readable YAML configuration.
  • Alerting: Integrates with multiple alerting providers (Slack, Teams, PagerDuty, Discord, Twilio, and more) and supports custom alerting.
  • Metrics: Exposes Prometheus-compatible metrics.
  • Badges: Provides badges for uptime and response time.
  • Dark Mode: Offers a dark mode UI.
  • Low Resource Consumption

What are the technologies used in the project?

  • Go (Golang)
  • Docker (for containerization)
  • Helm (for Kubernetes deployment)
  • Terraform (for infrastructure as code)
  • SQLite, Postgres, or in-memory storage
  • YAML (for configuration)

What are the benefits of the project?

  • Proactive Monitoring: Detects issues before clients experience them.
  • Customizable: Highly flexible health check conditions and alerting options.
  • Easy to Use: Simple configuration and deployment.
  • Lightweight: Low resource consumption.
  • Extensible: Supports custom alerting providers.
  • Visual Dashboard: Provides a clear visual representation of service health.

What are the use cases of the project?

  • Monitoring the health of web applications and APIs.
  • Monitoring internal services within a private network.
  • Creating automated user acceptance tests.
  • Monitoring network devices using ICMP (ping).
  • Monitoring DNS servers.
  • Monitoring TCP-based services (databases, caches).
  • Monitoring domain and certificate expiration.
  • Centralized dashboard for multiple Gatus instances.
gatus screenshot