Example SLA crontool config

Hi all

The RT::Extension::SLA docs don’t include any example RT-crontool
commands for SLA alerting, so I thought I’d post what I’m using for
others’ later benefit.

These are in /etc/cron.d/rt4site, to run as the OS user
“requesttracker4”. I’ve created a user in the RT database with the gecos
(“unix username”) field set to “requesttracker4” that RT will run these
commands as.

Escalate priority on non-stalled tickets as they approach due

*/5 * * * * requesttracker4 rt-crontool --search
RT::Search::FromSQL --search-arg “(Status=‘new’ OR Status=‘open’) AND
FinalPriority > 0 AND Due > ‘Jan 1, 1970’” --action

Every minute check to see if an SLA alert is needed. Send SLA alerts

at 45 minutes to due, 30 minutes to due, and every minute from 10
minutes to due until due time.

This adds a comment (not customer visible) to the ticket using the

template ‘SLA Due’. That comment is then sent as a notification to
subscribers according to RT’s

normal rules. The ‘SLA Due’ template can be a normal global email

template and can be overridden per-queue.
*/1 * * * * requesttracker4 rt-crontool --transaction last
–search RT::Search::FromSQL --search-arg “(Status=‘new’ OR
Status=‘open’) AND (Due > ‘Jan 1, 1970’) AND ((Due < ‘45 minutes’ AND
Due >= ‘44 minutes’) OR (Due < ‘30 minutes’ AND Due >= ‘29 minutes’) OR
(Due < ‘10 minutes’ AND Due >= ‘now’))” --action
RT::Action::RecordComment --template ‘SLA Due’

If we miss an SLA deadline, alert all participants with the 'SLA

Overdue’ and keep yelling about it until they act on it.
*/5 * * * * requesttracker4 rt-crontool --transaction last
–search RT::Search::FromSQL --search-arg “(Due < ‘now’) AND (Due > ‘Jan
1, 1970’) AND (Status=‘new’ OR Status=‘open’)” --action
RT::Action::RecordComment --template ‘SLA Overdue’

I’m also doing SLA alerting via SMS, but haven’t packaged that into a
module yet.

It strikes me that it’d be really nice if rt-crontool could be driven
from a database table, so extensions could automatically add their
cronjobs and crontool could just be added to the system cron once during
RT system install.

Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services