We’re open-sourcing Pagerbot, a tool we developed to make it easy to interact with PagerDuty through your internal chat system. (At the very least, we hope it'll help other companies respond to incidents like Shellshock or the ongoing AWS reboot cycle.)

Background

Like many tech companies, Stripe uses PagerDuty to help coordinate on-call schedules and incident response. The service is super reliable, does a great job of handling our normal rotations, and we appreciate being able to individually set preferences for how we want to get notified.

Fairly frequently, though, people will trade on-call shifts, whether because of travel, vacation, or even just making sure someone is keeping an eye on things while they’re out watching a movie.
The communication about the trades mainly happens in one of our Slack channels.

Inspired by GitHub’s idea of chat-driven ops, we wanted PagerDuty schedule changes to happen in the same place as the rest of our communication.

We’ve tried to make Pagerbot easily handle our previous scheduling woes. For instance, with Stripes scattered all around the world, juggling timezones is very confusing, but if you don’t specify a timezone in your queries, Pagerbot automatically uses the timezone you configured in your PagerDuty profile.

Over time, we’ve added more commands to Pagerbot. For instance, based on Heroku’s incident response blog post, we added support for explicitly paging an individual:

Deploying to Heroku

Pagerbot supports both Slack and IRC and although you can always run Pagerbot on your own infrastructure, we’ve also made Pagerbot compatible with the new Heroku Button:

(Note: Heroku requires you to
provide a credit card
to enable the Heroku MongoDB addon, though you won’t actually be charged anything).

Once you’ve deployed Pagerbot to Heroku, there’s a built-in admin panel you can use to get things set up. You’ll need to tell Pagerbot about your PagerDuty subdomain, your chat credentials, and any aliases you want for either people or schedules.

We’ve also tried to make it easy to add new commands to Pagerbot by building a simple plugin architecture. Feel free to fork Pagerbot and add your own plugins.

We’ve been using Pagerbot as our main interface to PagerDuty for over two years now. If you use PagerDuty and either Slack or IRC, we hope you’ll find it useful — check it out, and let us know what you think!