Crashguard is a self-hosted (LGPL3) canary-oriented monitoring system for asynchronous workflows — background jobs, cross-service pipelines, anything where "it should finish by X" matters more than any single log line. The model is simple: start a canary when a workflow kicks off, resolve it when the workflow finishes. If the canary doesn't resolve before its deadline, Crashguard fires an alert immediately — no log scraping, no complex alerting rules. Also comes with a stream deck XL+ plugin.
No reviews yetBe the first to leave a review for CrashGuard.io
Maker
📌
So I had a need to monitor some asynchronous cross-system workflows and got worn out doing this with OpenTelemetry and log analysis so I built a dedicated system for doing this - it works great for me so I thought it would be fun to make OSS and share.
Crashguard is a self-hosted (LGPL3) canary-oriented monitoring system for workflows that don't run on a clock you control — background jobs, cross-service pipelines, anything where "it should finish by X" matters more than any single log line.
The model is deliberately simple: start a canary when a workflow kicks off, resolve it when the workflow finishes. If the canary doesn't resolve before its deadline, Crashguard fires an alert immediately — no log scraping, no complex alerting rules.
A few things that differentiate it from "just set up a healthcheck":
- Custom verifiers — resolution doesn't have to mean "trust the caller." Attach a verifier URL to a canary type and Crashguard calls out to your own logic before accepting a resolve (did the payment actually clear for the right amount, did the file land where expected, etc).
- Conditional alert routing — rules evaluate against the metadata attached when a canary was created, so a high-value issue can go to PagerDuty while a lesser one just gets a Slack message, with no separate config to keep in sync.
- One canary per workflow instance — just reuse your own ID (order ID, job ID, etc.) as the reference, no tracing infrastructure to stand up.
- SDKs for C#, Go, and Rust, talking to a single self-hosted engine backed by SQLite. Runs as a single Docker image with an Admin App and Engine bundled together.
- Stream Deck XL+ integration — monitor canary status and drill into related details right from the deck, push a button to jump to the appropriate page in the admin portal.
Note: I haven't gotten the Stream Deck plugin published to the Elgato marketplace yet, but it's easy enough to build and side load from source, with instructions on how to do that on the site.
Note 2: Only the Slack, Email, and Webhook connectors work right now, but it's easy to add new ones.
I'd love to hear any feedback, suggestions or advice!