Cuckoo

Sentry Crons alternative

Keep your Sentry cron code. Change one DSN.

Cuckoo understands Sentry's check-in protocol. The @monitor decorator, capture_checkin, sentry.CaptureCheckIn and Sentry.withMonitor keep working. They report to a monitoring service that does only cron jobs, with flat pricing.

Get your DSN, freeProtocol details

How the switch works

  1. 1

    Sign up

    Your organization gets a DSN under Settings.

  2. 2

    Init a second client in your job runner

    Use the Cuckoo DSN where your cron jobs run. Errors keep going to Sentry from your app.

  3. 3

    Run your jobs

    The first check-in with a monitor_config creates the monitor. Late and failed jobs alert by email, Slack, Discord or webhook.

Python

import sentry_sdk
from sentry_sdk.crons import monitor

sentry_sdk.init(dsn="https://<key>@cuckoo.metastic.ch/<project>")

@monitor(monitor_slug="nightly-backup", monitor_config={
    "schedule": {"type": "crontab", "value": "30 2 * * *"},
    "timezone": "Europe/Zurich",
    "checkin_margin": 10,   # minutes
    "max_runtime": 60,      # minutes
})
def backup(): ...

Go

sentry.Init(sentry.ClientOptions{
    Dsn: "https://<key>@cuckoo.metastic.ch/<project>",
})
cfg := &sentry.MonitorConfig{
    Schedule:      sentry.CrontabSchedule("30 2 * * *"),
    CheckInMargin: 10, MaxRuntime: 60, Timezone: "Europe/Zurich",
}
id := sentry.CaptureCheckIn(&sentry.CheckIn{
    MonitorSlug: "nightly-backup", Status: sentry.CheckInStatusInProgress}, cfg)
// ... run the job ...
sentry.CaptureCheckIn(&sentry.CheckIn{ID: *id,
    MonitorSlug: "nightly-backup", Status: sentry.CheckInStatusOK}, cfg)

What is the same, what is different

Sentry CronsCuckoo
Check-ins from Sentry SDKsYesYes (envelope check_in items, gzip or deflate)
Monitor upsert from monitor_configYesYes: crontab with time zone, interval, margin, max runtime
Plain HTTP pings (curl, wget)YesYes, plus /start, /fail, exit codes and 10 KB of output
Error tracking, tracing, replaysYesNo. Cuckoo only does job monitoring.
PricingPer monitor, on top of a Sentry plan*Flat: 20 free, 200 for CHF 12/month, 1,000 for CHF 39/month
HostingUS or EUEU (Germany), Swiss company

* Check Sentry's pricing page for current numbers. Sentry is a trademark of Functional Software, Inc.; Cuckoo is not affiliated with Sentry.

Guides: sentry-python · @sentry/node · Cuckoo vs Sentry Crons in detail

Try it with your existing jobs

Free for 20 monitors. No card, no sales call.

Start free
Send feedback

Ideas, bugs, questions: we read every message. Or write to hello@metastic.ch.