Cron-Sentry: error reporting to Sentry of commands run via cron
Cron-Sentry is a python command-line wrapper that reports errors to Sentry (using raven) if the called script exits with a status other than zero.
pip install cron-sentry
$ cron-sentry --help
usage: cron-sentry [-h] [--dsn SENTRY_DSN] [-M STRING_MAX_LENGTH] [--quiet] [--report-all] [--version] cmd [arg ...]
Wraps commands and reports those that fail to Sentry.
positional arguments:
cmd The command to run
optional arguments:
-h, --help show this help message and exit
--dsn SENTRY_DSN Sentry server address
-M STRING_MAX_LENGTH, --string-max-length STRING_MAX_LENGTH, --max-message-length STRING_MAX_LENGTH
The maximum characters of a string that should be sent
to Sentry (defaults to 4096)
-q, --quiet Suppress all command output
--version show program's version number and exit
--report-all Report to Sentry even if the task has succeeded
The Sentry server address can also be specified through the SENTRY_DSN
environment variable (and the --dsn option can be omitted).
It's possible to send extra information to Sentry via environment variables (prefix them with CRON_SENTRY_EXTRA_
), such as:
$ export CRON_SENTRY_EXTRA_env=production
$ cron-sentry my-program
$ crontab -e
SENTRY_DSN=https://<your_key>:<your_secret>@app.getsentry.com/<your_project_id>
0 4 * * * cron-sentry my-process --arg arg2
- If your command outputs Unicode, you may need to signal to python that stdin/stdout/stderr are UTF-8 encoded:
PYTHONIOENCODING=utf-8
SENTRY_DSN=https://<your_key>:<your_secret>@app.getsentry.com/<your_project_id>
0 4 * * * cron-sentry my-process --arg arg2
This project started life as raven-cron by MediaCore Technologies.
Original copyright 2013 to MediaCore Technologies (MIT license). Copyright 2015 to Yipit Inc. (MIT license).