Persistent watches. Durable alerts.
Ding watches an HTTP endpoint, runs an explicit local check, or accepts JSON from your software. It keeps condition state, records why an event happened, and retries notifications through a durable outbox. The Go daemon runs on your infrastructure.
Create your first watch Choose an installation
Start with a question
| You want to… | Start here |
|---|---|
| See a firing and recovery without an external service | First watch |
| Watch an API for repeated failures | HTTP monitoring |
| Notice a missing heartbeat | Missing data |
| Run a trusted local check | Command sources |
| Understand why an alert happened | Investigate an event |
| Operate a persistent daemon | Operating Ding |
| Use the forthcoming interface | Console availability |
| Keep or migrate an old installation | Legacy v0.14.0 |
One watch, four connected stages
Observe → evaluate → record → deliver. A source supplies an observation. The daemon evaluates the condition, commits state and evidence to SQLite, and records delivery work in the same transaction. Notification workers retry that committed work across restarts.
A running watch, an open incident, a source error, and a failed delivery are separate facts. Learn the state model before interpreting a status or changing a watch.
For people and agents
Use versioned YAML and the CLI/API today. An agent can help author and inspect the same declaration; the daemon does not call a model on each check. Consumer data such as flights or sports needs an actual provider feed and credentials.
Ding is self-hosted and Apache-2.0 licensed. Ding Console is being implemented as an interface bundled with the daemon.