A highly customizable monitoring solution that provides automated status pages, extensive alerting options, and detailed testing capabilities for your services and infrastructure

At a Glance:

Gatus is a developer-oriented health dashboard for monitoring services via HTTP, ICMP, TCP, and DNS queries, evaluating results with configurable conditions on status codes, response times, certificate expiration, and body content, with support for Slack, PagerDuty, Discord, and many other alerting integrations.

Overview:

Gatus is a health dashboard designed for developers to actively monitor the status of applications and services. Unlike passive monitoring tools that rely on incoming traffic, Gatus proactively runs configurable health checks on HTTP, ICMP, TCP, DNS, SSH, and STARTTLS endpoints at defined intervals. It then evaluates the results against a flexible set of conditions, such as expected status codes, response times, or certificate validity. When a check fails, it can trigger alerts to a wide array of services including Slack, PagerDuty, Discord, and Telegram, allowing developers to be notified of problems before clients are impacted. It is deployable as a single binary or via Docker and can be run in a Kubernetes cluster.

Key Decision Points:

  • Proactive health monitoring: Gatus actively sends requests to your endpoints rather than depending on incoming client traffic, which means problems can be detected before any users are affected.

  • Configurable conditions and checks: Health is determined by user-defined conditions based on HTTP status codes, response time, body content, JSONPath evaluations, and certificate/domain expiration dates.

  • Multi-protocol support: Supports monitoring for HTTP, ICMP (ping), TCP, DNS queries, SSH, STARTTLS, and WebSocket endpoints.

  • Extensive alerting integrations: Notifications can be sent through over 30 providers, including Slack, PagerDuty, Teams, Discord, Twilio, and a custom alerting provider for hooking into any other system.

  • Flexible configuration management: The YAML configuration can be split across multiple files and directories, all of which are deep-merged, simplifying management for large numbers of endpoints.

  • SSH tunneling support: Gatus can monitor internal services not directly accessible from its network by tunneling checks through a configured SSH jump host.

Core Features:

  • Flexible health check conditions: Evaluate endpoint health based on status codes, response time, DNS query results, certificate expiration, and response body content, including JSONPath evaluation.

  • Endpoint suites: Execute a sequence of dependent checks in a shared context to test multi-step workflows like API authentication flows.

  • External endpoints: Accept health status pushes from other systems, enabling Gatus to serve as a single dashboard for services that it cannot reach directly over a network.

  • Prometheus metrics: Expose health check results as metrics for integration with monitoring tools like Grafana.

  • SSH tunneling: Monitor private services by tunneling health checks through a bastion host or jump server.

  • Connectivity checker: Optionally validate the instance's own internet connectivity to prevent false alerts during a general network outage.

Use Cases:

  • Monitoring internal and external services: Developers can monitor core applications, websites, APIs, and databases to ensure they are healthy and responsive.

  • Validating certificates and domains: System administrators can configure checks to alert on TLS certificate and domain expiry before they cause an outage.

  • Automating user acceptance tests: Testers can use suites to validate multi-step workflows, such as a login flow, by chaining requests and evaluating conditions.

  • Centralizing health status from private networks: Operators can push health data from private subnets to a publicly hosted Gatus instance, using external endpoints to create a unified status dashboard.

Open-Source Alternative Value:

Gatus provides a self-contained, open-source approach to active service health monitoring, implemented as a single Go binary that can run in various environments like Docker or Kubernetes. Its value as an alternative to passive metrics-based solutions is its ability to proactively check services from the outside, designed for developers who need to know about failures before their users do. The tool differentiates itself with highly detailed condition evaluation, the ability to orchestrate multi-step health checks through suites, and a pragmatic method for monitoring inaccessible networks via SSH tunneling or external status pushes.

TeilenXLinkedInReddit

Ähnliche Tools

Projektstatistiken

Sterne

10,814

Forks

728

Lizenz

Apache-2.0

Metadaten

Alternative zu
Opsgenie